CModelNode: Make use of in-class initializers

Same behavior, less code.
This commit is contained in:
Lioncash 2020-06-19 02:56:50 -04:00
parent 73d010e6d1
commit 9a2580ad03
2 changed files with 20 additions and 16 deletions

View File

@ -6,10 +6,6 @@
CModelNode::CModelNode(CScene *pScene, uint32 NodeID, CSceneNode *pParent, CModel *pModel)
: CSceneNode(pScene, NodeID, pParent)
, mWorldModel(false)
, mForceAlphaOn(false)
, mEnableScanOverlay(false)
, mTintColor(CColor::White())
{
mScale = CVector3f::One();
SetModel(pModel);
@ -31,9 +27,14 @@ void CModelNode::PostLoad()
void CModelNode::AddToRenderer(CRenderer *pRenderer, const SViewInfo& rkViewInfo)
{
if (!mpModel) return;
if (!rkViewInfo.ViewFrustum.BoxInFrustum(AABox())) return;
if (rkViewInfo.GameMode) return;
if (!mpModel)
return;
if (!rkViewInfo.ViewFrustum.BoxInFrustum(AABox()))
return;
if (rkViewInfo.GameMode)
return;
// Transparent world models should have each surface processed separately
if (mWorldModel && mpModel->HasTransparency(mActiveMatSet))
@ -46,10 +47,10 @@ void CModelNode::AddToRenderer(CRenderer *pRenderer, const SViewInfo& rkViewInfo
pRenderer->AddMesh(this, iSurf, mpModel->GetSurfaceAABox(iSurf).Transformed(Transform()), true, ERenderCommand::DrawTransparentParts);
}
}
// Other models should just draw all transparent surfaces sequentially
else
else // Other models should just draw all transparent surfaces sequentially
{
AddModelToRenderer(pRenderer, mpModel, mActiveMatSet);
}
if (mSelected)
pRenderer->AddMesh(this, -1, AABox(), false, ERenderCommand::DrawSelection);
@ -118,14 +119,17 @@ void CModelNode::Draw(FRenderOptions Options, int ComponentIndex, ERenderCommand
void CModelNode::DrawSelection()
{
if (!mpModel) return;
if (!mpModel)
return;
LoadModelMatrix();
mpModel->DrawWireframe(ERenderOption::None, WireframeColor());
}
void CModelNode::RayAABoxIntersectTest(CRayCollisionTester& rTester, const SViewInfo& /*rkViewInfo*/)
{
if (!mpModel) return;
if (!mpModel)
return;
const CRay& rkRay = rTester.Ray();
std::pair<bool,float> BoxResult = AABox().IntersectsRay(rkRay);

View File

@ -8,10 +8,10 @@ class CModelNode : public CSceneNode
{
TResPtr<CModel> mpModel;
uint32 mActiveMatSet;
bool mWorldModel;
bool mForceAlphaOn;
CColor mTintColor;
bool mEnableScanOverlay;
bool mWorldModel = false;
bool mForceAlphaOn = false;
CColor mTintColor{CColor::White()};
bool mEnableScanOverlay = false;
CColor mScanOverlayColor;
public: