CSceneNode: Make NodeType() const

These don't modify member state.
This commit is contained in:
Lioncache
2025-12-09 15:14:10 -05:00
parent c662ef6266
commit da5197b6c4
23 changed files with 76 additions and 70 deletions

View File

@@ -10,7 +10,7 @@ CCharacterNode::CCharacterNode(CScene *pScene, uint32 NodeID, CAnimSet *pChar /*
SetCharSet(pChar); SetCharSet(pChar);
} }
ENodeType CCharacterNode::NodeType() ENodeType CCharacterNode::NodeType() const
{ {
return ENodeType::Character; return ENodeType::Character;
} }

View File

@@ -19,7 +19,7 @@ class CCharacterNode : public CSceneNode
public: public:
explicit CCharacterNode(CScene *pScene, uint32 NodeID, CAnimSet *pChar = nullptr, CSceneNode *pParent = nullptr); explicit CCharacterNode(CScene *pScene, uint32 NodeID, CAnimSet *pChar = nullptr, CSceneNode *pParent = nullptr);
ENodeType NodeType() override; ENodeType NodeType() const override;
void PostLoad() override; void PostLoad() override;
void AddToRenderer(CRenderer *pRenderer, const SViewInfo& rkViewInfo) override; void AddToRenderer(CRenderer *pRenderer, const SViewInfo& rkViewInfo) override;
void Draw(FRenderOptions Options, int ComponentIndex, ERenderCommand Command, const SViewInfo& rkViewInfo) override; void Draw(FRenderOptions Options, int ComponentIndex, ERenderCommand Command, const SViewInfo& rkViewInfo) override;

View File

@@ -11,7 +11,7 @@ CCollisionNode::CCollisionNode(CScene *pScene, uint32 NodeID, CSceneNode *pParen
SetName("Collision"); SetName("Collision");
} }
ENodeType CCollisionNode::NodeType() ENodeType CCollisionNode::NodeType() const
{ {
return ENodeType::Collision; return ENodeType::Collision;
} }

View File

@@ -10,7 +10,7 @@ class CCollisionNode : public CSceneNode
public: public:
CCollisionNode(CScene *pScene, uint32 NodeID, CSceneNode *pParent = nullptr, CCollisionMeshGroup *pCollision = nullptr); CCollisionNode(CScene *pScene, uint32 NodeID, CSceneNode *pParent = nullptr, CCollisionMeshGroup *pCollision = nullptr);
ENodeType NodeType() override; ENodeType NodeType() const override;
void AddToRenderer(CRenderer *pRenderer, const SViewInfo& rkViewInfo) override; void AddToRenderer(CRenderer *pRenderer, const SViewInfo& rkViewInfo) override;
void Draw(FRenderOptions Options, int ComponentIndex, ERenderCommand Command, const SViewInfo& rkViewInfo) override; void Draw(FRenderOptions Options, int ComponentIndex, ERenderCommand Command, const SViewInfo& rkViewInfo) override;
void RayAABoxIntersectTest(CRayCollisionTester& rTester, const SViewInfo& rkViewInfo) override; void RayAABoxIntersectTest(CRayCollisionTester& rTester, const SViewInfo& rkViewInfo) override;

View File

@@ -20,7 +20,7 @@ CLightNode::CLightNode(CScene *pScene, uint32 NodeID, CSceneNode *pParent, CLigh
} }
} }
ENodeType CLightNode::NodeType() ENodeType CLightNode::NodeType() const
{ {
return ENodeType::Light; return ENodeType::Light;
} }

View File

@@ -9,7 +9,7 @@ class CLightNode : public CSceneNode
CLight *mpLight; CLight *mpLight;
public: public:
CLightNode(CScene *pScene, uint32 NodeID, CSceneNode *pParent = nullptr, CLight *Light = nullptr); CLightNode(CScene *pScene, uint32 NodeID, CSceneNode *pParent = nullptr, CLight *Light = nullptr);
ENodeType NodeType() override; ENodeType NodeType() const override;
void AddToRenderer(CRenderer* pRenderer, const SViewInfo& ViewInfo) override; void AddToRenderer(CRenderer* pRenderer, const SViewInfo& ViewInfo) override;
void Draw(FRenderOptions Options, int ComponentIndex, ERenderCommand Command, const SViewInfo& ViewInfo) override; void Draw(FRenderOptions Options, int ComponentIndex, ERenderCommand Command, const SViewInfo& ViewInfo) override;
void DrawSelection() override; void DrawSelection() override;

View File

@@ -11,7 +11,7 @@ CModelNode::CModelNode(CScene *pScene, uint32 NodeID, CSceneNode *pParent, CMode
SetModel(pModel); SetModel(pModel);
} }
ENodeType CModelNode::NodeType() ENodeType CModelNode::NodeType() const
{ {
return ENodeType::Model; return ENodeType::Model;
} }

View File

@@ -17,7 +17,7 @@ class CModelNode : public CSceneNode
public: public:
explicit CModelNode(CScene *pScene, uint32 NodeID, CSceneNode *pParent = nullptr, CModel *pModel = nullptr); explicit CModelNode(CScene *pScene, uint32 NodeID, CSceneNode *pParent = nullptr, CModel *pModel = nullptr);
ENodeType NodeType() override; ENodeType NodeType() const override;
void PostLoad() override; void PostLoad() override;
void AddToRenderer(CRenderer* pRenderer, const SViewInfo& rkViewInfo) override; void AddToRenderer(CRenderer* pRenderer, const SViewInfo& rkViewInfo) override;
void Draw(FRenderOptions Options, int ComponentIndex, ERenderCommand Command, const SViewInfo& rkViewInfo) override; void Draw(FRenderOptions Options, int ComponentIndex, ERenderCommand Command, const SViewInfo& rkViewInfo) override;

View File

@@ -11,7 +11,7 @@ public:
: CSceneNode(pScene, NodeID, pParent) {} : CSceneNode(pScene, NodeID, pParent) {}
~CRootNode() override = default; ~CRootNode() override = default;
ENodeType NodeType() override ENodeType NodeType() const override
{ {
return ENodeType::Root; return ENodeType::Root;
} }

View File

@@ -104,7 +104,7 @@ protected:
public: public:
explicit CSceneNode(CScene *pScene, uint32 NodeID, CSceneNode *pParent = nullptr); explicit CSceneNode(CScene *pScene, uint32 NodeID, CSceneNode *pParent = nullptr);
~CSceneNode() override; ~CSceneNode() override;
virtual ENodeType NodeType() = 0; virtual ENodeType NodeType() const = 0;
virtual void PostLoad() {} virtual void PostLoad() {}
virtual void OnTransformed() {} virtual void OnTransformed() {}
void AddToRenderer(CRenderer* /*pRenderer*/, const SViewInfo& /*rkViewInfo*/) override {} void AddToRenderer(CRenderer* /*pRenderer*/, const SViewInfo& /*rkViewInfo*/) override {}

View File

@@ -26,7 +26,7 @@ public:
void ParentDisplayAssetChanged(CResource *pNewDisplayAsset); void ParentDisplayAssetChanged(CResource *pNewDisplayAsset);
CModel* Model() const; CModel* Model() const;
ENodeType NodeType() override { return ENodeType::ScriptAttach; } ENodeType NodeType() const override { return ENodeType::ScriptAttach; }
void AddToRenderer(CRenderer* pRenderer, const SViewInfo& rkViewInfo) override; void AddToRenderer(CRenderer* pRenderer, const SViewInfo& rkViewInfo) override;
void Draw(FRenderOptions Options, int ComponentIndex, ERenderCommand Command, const SViewInfo& rkViewInfo) override; void Draw(FRenderOptions Options, int ComponentIndex, ERenderCommand Command, const SViewInfo& rkViewInfo) override;
void DrawSelection() override; void DrawSelection() override;

View File

@@ -73,7 +73,7 @@ CScriptNode::CScriptNode(CScene *pScene, uint32 NodeID, CSceneNode *pParent, CSc
mpExtra = CScriptExtra::CreateExtra(this); mpExtra = CScriptExtra::CreateExtra(this);
} }
ENodeType CScriptNode::NodeType() ENodeType CScriptNode::NodeType() const
{ {
return ENodeType::Script; return ENodeType::Script;
} }

View File

@@ -37,7 +37,7 @@ public:
EGameModeVisibility mGameModeVisibility{EGameModeVisibility::Untested}; EGameModeVisibility mGameModeVisibility{EGameModeVisibility::Untested};
CScriptNode(CScene *pScene, uint32 NodeID, CSceneNode *pParent = nullptr, CScriptObject *pObject = nullptr); CScriptNode(CScene *pScene, uint32 NodeID, CSceneNode *pParent = nullptr, CScriptObject *pObject = nullptr);
ENodeType NodeType() override; ENodeType NodeType() const override;
void PostLoad() override; void PostLoad() override;
void OnTransformed() override; void OnTransformed() override;
void AddToRenderer(CRenderer* pRenderer, const SViewInfo& rkViewInfo) override; void AddToRenderer(CRenderer* pRenderer, const SViewInfo& rkViewInfo) override;

View File

@@ -13,7 +13,7 @@ CStaticNode::CStaticNode(CScene *pScene, uint32 NodeID, CSceneNode *pParent, CSt
SetName("Static Node"); SetName("Static Node");
} }
ENodeType CStaticNode::NodeType() ENodeType CStaticNode::NodeType() const
{ {
return ENodeType::Static; return ENodeType::Static;
} }

View File

@@ -10,7 +10,7 @@ class CStaticNode : public CSceneNode
public: public:
CStaticNode(CScene *pScene, uint32 NodeID, CSceneNode *pParent = nullptr, CStaticModel *pModel = nullptr); CStaticNode(CScene *pScene, uint32 NodeID, CSceneNode *pParent = nullptr, CStaticModel *pModel = nullptr);
ENodeType NodeType() override; ENodeType NodeType() const override;
void PostLoad() override; void PostLoad() override;
void AddToRenderer(CRenderer* pRenderer, const SViewInfo& rkViewInfo) override; void AddToRenderer(CRenderer* pRenderer, const SViewInfo& rkViewInfo) override;
void Draw(FRenderOptions Options, int ComponentIndex, ERenderCommand Command, const SViewInfo& rkViewInfo) override; void Draw(FRenderOptions Options, int ComponentIndex, ERenderCommand Command, const SViewInfo& rkViewInfo) override;

View File

@@ -39,7 +39,7 @@ public:
EGame Game() const { return mGame; } EGame Game() const { return mGame; }
// Default implementations for CSceneNode // Default implementations for CSceneNode
ENodeType NodeType() override { return ENodeType::ScriptExtra; } ENodeType NodeType() const override { return ENodeType::ScriptExtra; }
void RayAABoxIntersectTest(CRayCollisionTester& /*rTester*/, const SViewInfo& /*rkViewInfo*/) override {} void RayAABoxIntersectTest(CRayCollisionTester& /*rTester*/, const SViewInfo& /*rkViewInfo*/) override {}
SRayIntersection RayNodeIntersectTest(const CRay& /*rkRay*/, uint32 /*AssetID*/, const SViewInfo& /*rkViewInfo*/) override SRayIntersection RayNodeIntersectTest(const CRay& /*rkRay*/, uint32 /*AssetID*/, const SViewInfo& /*rkViewInfo*/) override
{ {

View File

@@ -118,7 +118,7 @@ public:
void UpdateBounds() { mBoundsDirty = true; } void UpdateBounds() { mBoundsDirty = true; }
void SetAllowedNodeTypes(FNodeFlags Types) { mAllowedNodes = Types; } void SetAllowedNodeTypes(FNodeFlags Types) { mAllowedNodes = Types; }
bool IsAllowedType(ENodeType Type) const { return (mAllowedNodes & Type) != 0; } bool IsAllowedType(ENodeType Type) const { return (mAllowedNodes & Type) != 0; }
bool IsAllowedType(CSceneNode *pNode) const { return (mAllowedNodes & pNode->NodeType()) != 0; } bool IsAllowedType(const CSceneNode *pNode) const { return (mAllowedNodes & pNode->NodeType()) != 0; }
const QList<CSceneNode*>& SelectedNodeList() const { return mSelectedNodes; } const QList<CSceneNode*>& SelectedNodeList() const { return mSelectedNodes; }
signals: signals:

View File

@@ -86,15 +86,17 @@ void CSceneViewport::CheckGizmoInput(const CRay& rkRay)
else else
mGizmoHovering = false; mGizmoHovering = false;
} }
// Gizmo transforming: Run gizmo input with ray/mouse coords // Gizmo transforming: Run gizmo input with ray/mouse coords
else if (mGizmoTransforming) else if (mGizmoTransforming)
{ {
bool transformed = pGizmo->TransformFromInput(rkRay, mCamera); const bool transformed = pGizmo->TransformFromInput(rkRay, mCamera);
if (transformed) emit GizmoMoved(); if (transformed)
emit GizmoMoved();
}
else
{
mGizmoHovering = false;
} }
else mGizmoHovering = false;
} }
SRayIntersection CSceneViewport::SceneRayCast(const CRay& rkRay) SRayIntersection CSceneViewport::SceneRayCast(const CRay& rkRay)
@@ -105,8 +107,7 @@ SRayIntersection CSceneViewport::SceneRayCast(const CRay& rkRay)
return SRayIntersection(); return SRayIntersection();
} }
SRayIntersection Intersect = mpScene->SceneRayCast(rkRay, mViewInfo); const SRayIntersection Intersect = mpScene->SceneRayCast(rkRay, mViewInfo);
if (Intersect.Hit) if (Intersect.Hit)
{ {
if (mpHoverNode) if (mpHoverNode)
@@ -116,7 +117,6 @@ SRayIntersection CSceneViewport::SceneRayCast(const CRay& rkRay)
mpHoverNode->SetMouseHovering(true); mpHoverNode->SetMouseHovering(true);
mHoverPoint = rkRay.PointOnRay(Intersect.Distance); mHoverPoint = rkRay.PointOnRay(Intersect.Distance);
} }
else else
{ {
mHoverPoint = rkRay.PointOnRay(10.f); mHoverPoint = rkRay.PointOnRay(10.f);
@@ -128,7 +128,9 @@ SRayIntersection CSceneViewport::SceneRayCast(const CRay& rkRay)
void CSceneViewport::ResetHover() void CSceneViewport::ResetHover()
{ {
if (mpHoverNode) mpHoverNode->SetMouseHovering(false); if (mpHoverNode)
mpHoverNode->SetMouseHovering(false);
mpHoverNode = nullptr; mpHoverNode = nullptr;
} }
@@ -243,17 +245,18 @@ QMouseEvent CSceneViewport::CreateMouseEvent()
void CSceneViewport::FindConnectedObjects(uint32 InstanceID, bool SearchOutgoing, bool SearchIncoming, QList<uint32>& rIDList) void CSceneViewport::FindConnectedObjects(uint32 InstanceID, bool SearchOutgoing, bool SearchIncoming, QList<uint32>& rIDList)
{ {
CScriptNode *pScript = mpScene->NodeForInstanceID(InstanceID); const CScriptNode* pScript = mpScene->NodeForInstanceID(InstanceID);
if (!pScript) return; if (!pScript)
return;
CScriptObject *pInst = pScript->Instance(); const CScriptObject* pInst = pScript->Instance();
rIDList.push_back(InstanceID); rIDList.push_back(InstanceID);
if (SearchOutgoing) if (SearchOutgoing)
{ {
for (size_t iLink = 0; iLink < pInst->NumLinks(ELinkType::Outgoing); iLink++) for (size_t iLink = 0; iLink < pInst->NumLinks(ELinkType::Outgoing); iLink++)
{ {
CLink *pLink = pInst->Link(ELinkType::Outgoing, iLink); const CLink* pLink = pInst->Link(ELinkType::Outgoing, iLink);
if (!rIDList.contains(pLink->ReceiverID())) if (!rIDList.contains(pLink->ReceiverID()))
FindConnectedObjects(pLink->ReceiverID(), SearchOutgoing, SearchIncoming, rIDList); FindConnectedObjects(pLink->ReceiverID(), SearchOutgoing, SearchIncoming, rIDList);
@@ -264,7 +267,7 @@ void CSceneViewport::FindConnectedObjects(uint32 InstanceID, bool SearchOutgoing
{ {
for (size_t iLink = 0; iLink < pInst->NumLinks(ELinkType::Incoming); iLink++) for (size_t iLink = 0; iLink < pInst->NumLinks(ELinkType::Incoming); iLink++)
{ {
CLink *pLink = pInst->Link(ELinkType::Incoming, iLink); const CLink* pLink = pInst->Link(ELinkType::Incoming, iLink);
if (!rIDList.contains(pLink->SenderID())) if (!rIDList.contains(pLink->SenderID()))
FindConnectedObjects(pLink->SenderID(), SearchOutgoing, SearchIncoming, rIDList); FindConnectedObjects(pLink->SenderID(), SearchOutgoing, SearchIncoming, rIDList);
@@ -293,9 +296,10 @@ void CSceneViewport::CheckUserInput()
if (!mpEditor->Gizmo()->IsTransforming()) if (!mpEditor->Gizmo()->IsTransforming())
mRayIntersection = SceneRayCast(Ray); mRayIntersection = SceneRayCast(Ray);
} }
else else
{
mRayIntersection = SRayIntersection(); mRayIntersection = SRayIntersection();
}
QMouseEvent Event = CreateMouseEvent(); QMouseEvent Event = CreateMouseEvent();
emit InputProcessed(mRayIntersection, &Event); emit InputProcessed(mRayIntersection, &Event);
@@ -309,10 +313,10 @@ void CSceneViewport::Paint()
mpRenderer->BeginFrame(); mpRenderer->BeginFrame();
// todo: The sky should really just be a regular node in the background depth group instead of having special rendering code here // todo: The sky should really just be a regular node in the background depth group instead of having special rendering code here
if ((mViewInfo.ShowFlags & EShowFlag::Sky) || mViewInfo.GameMode) if ((mViewInfo.ShowFlags & EShowFlag::Sky) != 0 || mViewInfo.GameMode)
{ {
CModel *pSky = mpScene->ActiveSkybox(); if (CModel* pSky = mpScene->ActiveSkybox())
if (pSky) mpRenderer->RenderSky(pSky, mViewInfo); mpRenderer->RenderSky(pSky, mViewInfo);
} }
mCamera.LoadMatrices(); mCamera.LoadMatrices();
@@ -331,7 +335,8 @@ void CSceneViewport::Paint()
mGrid.AddToRenderer(mpRenderer.get(), mViewInfo); mGrid.AddToRenderer(mpRenderer.get(), mViewInfo);
// Draw the line for the link the user is editing. // Draw the line for the link the user is editing.
if (mLinkLineEnabled) mLinkLine.AddToRenderer(mpRenderer.get(), mViewInfo); if (mLinkLineEnabled)
mLinkLine.AddToRenderer(mpRenderer.get(), mViewInfo);
mpRenderer->RenderBuckets(mViewInfo); mpRenderer->RenderBuckets(mViewInfo);
mpRenderer->EndFrame(); mpRenderer->EndFrame();
@@ -344,12 +349,12 @@ void CSceneViewport::ContextMenu(QContextMenuEvent *pEvent)
// Set up actions // Set up actions
TString NodeName; TString NodeName;
bool HasHoverNode = (mpHoverNode && (mpHoverNode->NodeType() != ENodeType::Static) && (mpHoverNode->NodeType() != ENodeType::Model)); const bool HasHoverNode = (mpHoverNode && (mpHoverNode->NodeType() != ENodeType::Static) && (mpHoverNode->NodeType() != ENodeType::Model));
bool HasSelection = mpEditor->HasSelection(); const bool HasSelection = mpEditor->HasSelection();
bool IsScriptNode = (mpHoverNode && mpHoverNode->NodeType() == ENodeType::Script); const bool IsScriptNode = (mpHoverNode && mpHoverNode->NodeType() == ENodeType::Script);
CWorldEditor* pOwnerWorldEd = qobject_cast<CWorldEditor*>(mpEditor); const auto* pOwnerWorldEd = qobject_cast<const CWorldEditor*>(mpEditor);
bool QuickplayEnabled = (pOwnerWorldEd && pOwnerWorldEd->IsQuickplayEnabled()); const bool QuickplayEnabled = (pOwnerWorldEd && pOwnerWorldEd->IsQuickplayEnabled());
mpToggleSelectAction->setVisible(HasHoverNode); mpToggleSelectAction->setVisible(HasHoverNode);
mpSelectConnectedMenu->menuAction()->setVisible(IsScriptNode); mpSelectConnectedMenu->menuAction()->setVisible(IsScriptNode);
@@ -381,10 +386,10 @@ void CSceneViewport::ContextMenu(QContextMenuEvent *pEvent)
mpHideHoverTypeAction->setText(tr("Hide all %1 objects").arg(TO_QSTRING(pScript->Template()->Name()))); mpHideHoverTypeAction->setText(tr("Hide all %1 objects").arg(TO_QSTRING(pScript->Template()->Name())));
mpHideHoverLayerAction->setText(tr("Hide layer %1").arg(TO_QSTRING(pScript->Instance()->Layer()->Name()))); mpHideHoverLayerAction->setText(tr("Hide layer %1").arg(TO_QSTRING(pScript->Instance()->Layer()->Name())));
} }
else if (HasHoverNode) else if (HasHoverNode)
{
NodeName = mpHoverNode->Name(); NodeName = mpHoverNode->Name();
}
mpHideHoverNodeAction->setText(tr("Hide %1").arg(TO_QSTRING(NodeName))); mpHideHoverNodeAction->setText(tr("Hide %1").arg(TO_QSTRING(NodeName)));
// Show menu // Show menu
@@ -424,10 +429,10 @@ void CSceneViewport::OnMouseRelease(QMouseEvent *pEvent)
mpEditor->EndGizmoTransform(); mpEditor->EndGizmoTransform();
mGizmoTransforming = false; mGizmoTransforming = false;
} }
else // Object selection/deselection
// Object selection/deselection {
else
emit ViewportClick(mRayIntersection, pEvent); emit ViewportClick(mRayIntersection, pEvent);
}
} }
} }

View File

@@ -86,28 +86,30 @@ void CPasteNodesCommand::redo()
// 1. If the link receiver has also been copied then redirect to the copied version. // 1. If the link receiver has also been copied then redirect to the copied version.
// 2. If we're pasting into the same area that this data was copied from and the receiver still exists, connect to original receiver. // 2. If we're pasting into the same area that this data was copied from and the receiver still exists, connect to original receiver.
// 3. If neither of those things is true, then delete the link. // 3. If neither of those things is true, then delete the link.
for (CSceneNode *pNode : PastedNodes) for (const CSceneNode* pNode : PastedNodes)
{ {
if (pNode && pNode->NodeType() == ENodeType::Script) if (pNode && pNode->NodeType() == ENodeType::Script)
{ {
CScriptObject *pInstance = static_cast<CScriptNode*>(pNode)->Instance(); const auto* pInstance = static_cast<const CScriptNode*>(pNode)->Instance();
for (size_t iLink = 0; iLink < pInstance->NumLinks(ELinkType::Outgoing); iLink++) for (size_t iLink = 0; iLink < pInstance->NumLinks(ELinkType::Outgoing); iLink++)
{ {
CLink *pLink = pInstance->Link(ELinkType::Outgoing, iLink); CLink* pLink = pInstance->Link(ELinkType::Outgoing, iLink);
int Index = mpMimeData->IndexOfInstanceID(pLink->ReceiverID()); const int Index = mpMimeData->IndexOfInstanceID(pLink->ReceiverID());
if (Index != -1) if (Index != -1)
{ {
CScriptObject *pNewTarget = static_cast<CScriptNode*>(PastedNodes[Index])->Instance(); const auto* pNewTarget = static_cast<CScriptNode*>(PastedNodes[Index])->Instance();
pLink->SetReceiver(pNewTarget->InstanceID()); pLink->SetReceiver(pNewTarget->InstanceID());
} }
else if (mpMimeData->AreaID() != pArea->ID() || pArea->InstanceByID(pLink->ReceiverID()) == nullptr) else if (mpMimeData->AreaID() != pArea->ID() || pArea->InstanceByID(pLink->ReceiverID()) == nullptr)
{ {
CScriptObject *pSender = pLink->Sender(); CScriptObject* pSender = pLink->Sender();
CScriptObject *pReceiver = pLink->Receiver(); CScriptObject* pReceiver = pLink->Receiver();
if (pSender) pSender->RemoveLink(ELinkType::Outgoing, pLink); if (pSender)
if (pReceiver) pReceiver->RemoveLink(ELinkType::Incoming, pLink); pSender->RemoveLink(ELinkType::Outgoing, pLink);
if (pReceiver)
pReceiver->RemoveLink(ELinkType::Incoming, pLink);
delete pLink; delete pLink;
iLink--; iLink--;

View File

@@ -411,7 +411,7 @@ void CInstancesModel::NodeCreated(CSceneNode *pNode)
{ {
if (pNode->NodeType() == ENodeType::Script) if (pNode->NodeType() == ENodeType::Script)
{ {
CScriptNode *pScript = static_cast<CScriptNode*>(pNode); const auto* pScript = static_cast<const CScriptNode*>(pNode);
CScriptObject *pObj = pScript->Instance(); CScriptObject *pObj = pScript->Instance();
pObj->Template()->SortObjects(); pObj->Template()->SortObjects();
@@ -441,8 +441,8 @@ void CInstancesModel::NodeAboutToBeDeleted(CSceneNode *pNode)
if (mModelType == EInstanceModelType::Types) if (mModelType == EInstanceModelType::Types)
{ {
const auto *pScript = static_cast<CScriptNode*>(pNode); const auto* pScript = static_cast<const CScriptNode*>(pNode);
const CScriptObject *pObj = pScript->Instance(); const CScriptObject* pObj = pScript->Instance();
if (pObj->Template()->NumObjects() <= 1) if (pObj->Template()->NumObjects() <= 1)
{ {

View File

@@ -800,7 +800,7 @@ void CWorldEditor::UpdateStatusBar()
{ {
if (ui->MainViewport->underMouse()) if (ui->MainViewport->underMouse())
{ {
CSceneNode *pHoverNode = ui->MainViewport->HoverNode(); const CSceneNode* pHoverNode = ui->MainViewport->HoverNode();
if (pHoverNode && mpSelection->IsAllowedType(pHoverNode)) if (pHoverNode && mpSelection->IsAllowedType(pHoverNode))
StatusText = TO_QSTRING(pHoverNode->Name()); StatusText = TO_QSTRING(pHoverNode->Name());
@@ -895,11 +895,11 @@ void CWorldEditor::UpdateCursor()
{ {
if (ui->MainViewport->IsCursorVisible() && !mPickMode) if (ui->MainViewport->IsCursorVisible() && !mPickMode)
{ {
CSceneNode *pHoverNode = ui->MainViewport->HoverNode(); const CSceneNode* pHoverNode = ui->MainViewport->HoverNode();
if (ui->MainViewport->IsHoveringGizmo()) if (ui->MainViewport->IsHoveringGizmo())
ui->MainViewport->SetCursorState(Qt::SizeAllCursor); ui->MainViewport->SetCursorState(Qt::SizeAllCursor);
else if ((pHoverNode) && mpSelection->IsAllowedType(pHoverNode)) else if (pHoverNode && mpSelection->IsAllowedType(pHoverNode))
ui->MainViewport->SetCursorState(Qt::PointingHandCursor); ui->MainViewport->SetCursorState(Qt::PointingHandCursor);
else else
ui->MainViewport->SetCursorState(Qt::ArrowCursor); ui->MainViewport->SetCursorState(Qt::ArrowCursor);
@@ -955,7 +955,7 @@ void CWorldEditor::UpdateNewLinkLine()
if (ui->MainViewport->underMouse() && !ui->MainViewport->IsMouseInputActive() && IsPicking) if (ui->MainViewport->underMouse() && !ui->MainViewport->IsMouseInputActive() && IsPicking)
{ {
CSceneNode* pHoverNode = ui->MainViewport->HoverNode(); const CSceneNode* pHoverNode = ui->MainViewport->HoverNode();
const CScriptObject* pInst = (pSender ? pSender : pReceiver); const CScriptObject* pInst = (pSender ? pSender : pReceiver);
CVector3f Start = mScene.NodeForInstance(pInst)->CenterPoint(); CVector3f Start = mScene.NodeForInstance(pInst)->CenterPoint();

View File

@@ -74,8 +74,8 @@ void WEditorProperties::SetLayerComboBox()
if (mpDisplayNode && mpDisplayNode->NodeType() == ENodeType::Script) if (mpDisplayNode && mpDisplayNode->NodeType() == ENodeType::Script)
{ {
CScriptNode *pScript = static_cast<CScriptNode*>(mpDisplayNode); const auto* pScript = static_cast<const CScriptNode*>(mpDisplayNode);
CScriptLayer *pLayer = pScript->Instance()->Layer(); const auto* pLayer = pScript->Instance()->Layer();
for (size_t iLyr = 0; iLyr < mpEditor->ActiveArea()->NumScriptLayers(); iLyr++) for (size_t iLyr = 0; iLyr < mpEditor->ActiveArea()->NumScriptLayers(); iLyr++)
{ {
if (mpEditor->ActiveArea()->ScriptLayer(iLyr) == pLayer) if (mpEditor->ActiveArea()->ScriptLayer(iLyr) == pLayer)
@@ -98,7 +98,7 @@ void WEditorProperties::SetLayerComboBox()
// ************ PUBLIC SLOTS ************ // ************ PUBLIC SLOTS ************
void WEditorProperties::OnSelectionModified() void WEditorProperties::OnSelectionModified()
{ {
CNodeSelection *pSelection = mpEditor->Selection(); const CNodeSelection* pSelection = mpEditor->Selection();
mpDisplayNode = (pSelection->Size() == 1 ? pSelection->Front() : nullptr); mpDisplayNode = (pSelection->Size() == 1 ? pSelection->Front() : nullptr);
if (pSelection->IsEmpty() || pSelection->Size() != 1 || mpDisplayNode->NodeType() != ENodeType::Script) if (pSelection->IsEmpty() || pSelection->Size() != 1 || mpDisplayNode->NodeType() != ENodeType::Script)
@@ -125,7 +125,6 @@ void WEditorProperties::OnSelectionModified()
mpInstanceInfoLabel->setToolTip({}); mpInstanceInfoLabel->setToolTip({});
} }
else else
{ {
CScriptNode *pScript = static_cast<CScriptNode*>(mpDisplayNode); CScriptNode *pScript = static_cast<CScriptNode*>(mpDisplayNode);

View File

@@ -81,8 +81,8 @@ void WModifyTab::GenerateUI()
if (mpSelectedNode->NodeType() == ENodeType::Script) if (mpSelectedNode->NodeType() == ENodeType::Script)
{ {
CScriptNode *pScriptNode = static_cast<CScriptNode*>(mpSelectedNode); const auto* pScriptNode = static_cast<const CScriptNode*>(mpSelectedNode);
CScriptObject *pObj = pScriptNode->Instance(); CScriptObject* pObj = pScriptNode->Instance();
// Set up UI // Set up UI
ui->ObjectsTabWidget->show(); ui->ObjectsTabWidget->show();
@@ -118,7 +118,7 @@ void WModifyTab::OnInstanceLinksModified(const QList<CScriptObject*>& rkInstance
{ {
if (mpSelectedNode && mpSelectedNode->NodeType() == ENodeType::Script) if (mpSelectedNode && mpSelectedNode->NodeType() == ENodeType::Script)
{ {
CScriptObject *pInstance = static_cast<CScriptNode*>(mpSelectedNode)->Instance(); const auto* pInstance = static_cast<const CScriptNode*>(mpSelectedNode)->Instance();
if (pInstance && rkInstances.contains(pInstance)) if (pInstance && rkInstances.contains(pInstance))
{ {
@@ -247,7 +247,7 @@ void WModifyTab::OnEditLinkClicked()
if (SelectedIndices.size() == 1) if (SelectedIndices.size() == 1)
{ {
CScriptObject *pInst = static_cast<CScriptNode*>(mpSelectedNode)->Instance(); const auto* pInst = static_cast<const CScriptNode*>(mpSelectedNode)->Instance();
CLinkDialog *pDialog = mpWorldEditor->LinkDialog(); CLinkDialog *pDialog = mpWorldEditor->LinkDialog();
pDialog->EditLink(pInst->Link(Type, SelectedIndices.front().row())); pDialog->EditLink(pInst->Link(Type, SelectedIndices.front().row()));
pDialog->show(); pDialog->show();