mirror of
https://github.com/AxioDL/PrimeWorldEditor.git
synced 2025-07-05 20:55:59 +00:00
CModelNode: Make use of in-class initializers
Same behavior, less code.
This commit is contained in:
parent
73d010e6d1
commit
9a2580ad03
@ -6,10 +6,6 @@
|
|||||||
|
|
||||||
CModelNode::CModelNode(CScene *pScene, uint32 NodeID, CSceneNode *pParent, CModel *pModel)
|
CModelNode::CModelNode(CScene *pScene, uint32 NodeID, CSceneNode *pParent, CModel *pModel)
|
||||||
: CSceneNode(pScene, NodeID, pParent)
|
: CSceneNode(pScene, NodeID, pParent)
|
||||||
, mWorldModel(false)
|
|
||||||
, mForceAlphaOn(false)
|
|
||||||
, mEnableScanOverlay(false)
|
|
||||||
, mTintColor(CColor::White())
|
|
||||||
{
|
{
|
||||||
mScale = CVector3f::One();
|
mScale = CVector3f::One();
|
||||||
SetModel(pModel);
|
SetModel(pModel);
|
||||||
@ -31,9 +27,14 @@ void CModelNode::PostLoad()
|
|||||||
|
|
||||||
void CModelNode::AddToRenderer(CRenderer *pRenderer, const SViewInfo& rkViewInfo)
|
void CModelNode::AddToRenderer(CRenderer *pRenderer, const SViewInfo& rkViewInfo)
|
||||||
{
|
{
|
||||||
if (!mpModel) return;
|
if (!mpModel)
|
||||||
if (!rkViewInfo.ViewFrustum.BoxInFrustum(AABox())) return;
|
return;
|
||||||
if (rkViewInfo.GameMode) return;
|
|
||||||
|
if (!rkViewInfo.ViewFrustum.BoxInFrustum(AABox()))
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (rkViewInfo.GameMode)
|
||||||
|
return;
|
||||||
|
|
||||||
// Transparent world models should have each surface processed separately
|
// Transparent world models should have each surface processed separately
|
||||||
if (mWorldModel && mpModel->HasTransparency(mActiveMatSet))
|
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);
|
pRenderer->AddMesh(this, iSurf, mpModel->GetSurfaceAABox(iSurf).Transformed(Transform()), true, ERenderCommand::DrawTransparentParts);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else // Other models should just draw all transparent surfaces sequentially
|
||||||
// Other models should just draw all transparent surfaces sequentially
|
{
|
||||||
else
|
|
||||||
AddModelToRenderer(pRenderer, mpModel, mActiveMatSet);
|
AddModelToRenderer(pRenderer, mpModel, mActiveMatSet);
|
||||||
|
}
|
||||||
|
|
||||||
if (mSelected)
|
if (mSelected)
|
||||||
pRenderer->AddMesh(this, -1, AABox(), false, ERenderCommand::DrawSelection);
|
pRenderer->AddMesh(this, -1, AABox(), false, ERenderCommand::DrawSelection);
|
||||||
@ -118,14 +119,17 @@ void CModelNode::Draw(FRenderOptions Options, int ComponentIndex, ERenderCommand
|
|||||||
|
|
||||||
void CModelNode::DrawSelection()
|
void CModelNode::DrawSelection()
|
||||||
{
|
{
|
||||||
if (!mpModel) return;
|
if (!mpModel)
|
||||||
|
return;
|
||||||
|
|
||||||
LoadModelMatrix();
|
LoadModelMatrix();
|
||||||
mpModel->DrawWireframe(ERenderOption::None, WireframeColor());
|
mpModel->DrawWireframe(ERenderOption::None, WireframeColor());
|
||||||
}
|
}
|
||||||
|
|
||||||
void CModelNode::RayAABoxIntersectTest(CRayCollisionTester& rTester, const SViewInfo& /*rkViewInfo*/)
|
void CModelNode::RayAABoxIntersectTest(CRayCollisionTester& rTester, const SViewInfo& /*rkViewInfo*/)
|
||||||
{
|
{
|
||||||
if (!mpModel) return;
|
if (!mpModel)
|
||||||
|
return;
|
||||||
|
|
||||||
const CRay& rkRay = rTester.Ray();
|
const CRay& rkRay = rTester.Ray();
|
||||||
std::pair<bool,float> BoxResult = AABox().IntersectsRay(rkRay);
|
std::pair<bool,float> BoxResult = AABox().IntersectsRay(rkRay);
|
||||||
|
@ -8,10 +8,10 @@ class CModelNode : public CSceneNode
|
|||||||
{
|
{
|
||||||
TResPtr<CModel> mpModel;
|
TResPtr<CModel> mpModel;
|
||||||
uint32 mActiveMatSet;
|
uint32 mActiveMatSet;
|
||||||
bool mWorldModel;
|
bool mWorldModel = false;
|
||||||
bool mForceAlphaOn;
|
bool mForceAlphaOn = false;
|
||||||
CColor mTintColor;
|
CColor mTintColor{CColor::White()};
|
||||||
bool mEnableScanOverlay;
|
bool mEnableScanOverlay = false;
|
||||||
CColor mScanOverlayColor;
|
CColor mScanOverlayColor;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user