mirror of
https://github.com/AxioDL/PrimeWorldEditor.git
synced 2025-12-15 16:16:14 +00:00
Disable gizmo mode actions when the selected nodes don't allow them
This commit is contained in:
@@ -15,6 +15,7 @@ public:
|
||||
void DrawSelection();
|
||||
void RayAABoxIntersectTest(CRayCollisionTester& Tester, const SViewInfo& ViewInfo);
|
||||
SRayIntersection RayNodeIntersectTest(const CRay &Ray, u32 AssetID, const SViewInfo& ViewInfo);
|
||||
bool AllowsRotate() const { return false; }
|
||||
CLight* Light();
|
||||
CVector2f BillboardScale();
|
||||
|
||||
|
||||
@@ -58,6 +58,9 @@ public:
|
||||
virtual void DrawSelection();
|
||||
virtual void RayAABoxIntersectTest(CRayCollisionTester& Tester, const SViewInfo& ViewInfo);
|
||||
virtual SRayIntersection RayNodeIntersectTest(const CRay& Ray, u32 AssetID, const SViewInfo& ViewInfo) = 0;
|
||||
virtual bool AllowsTranslate() const { return true; }
|
||||
virtual bool AllowsRotate() const { return true; }
|
||||
virtual bool AllowsScale() const { return true; }
|
||||
virtual bool IsVisible() const;
|
||||
virtual CColor TintColor(const SViewInfo& ViewInfo) const;
|
||||
virtual CColor WireframeColor() const;
|
||||
|
||||
@@ -363,6 +363,18 @@ SRayIntersection CScriptNode::RayNodeIntersectTest(const CRay& Ray, u32 AssetID,
|
||||
return out;
|
||||
}
|
||||
|
||||
bool CScriptNode::AllowsRotate() const
|
||||
{
|
||||
CScriptTemplate *pTemp = mpInstance->Template();
|
||||
return (pTemp->RotationType() == CScriptTemplate::eRotationEnabled);
|
||||
}
|
||||
|
||||
bool CScriptNode::AllowsScale() const
|
||||
{
|
||||
CScriptTemplate *pTemp = mpInstance->Template();
|
||||
return (pTemp->ScaleType() != CScriptTemplate::eScaleDisabled);
|
||||
}
|
||||
|
||||
bool CScriptNode::IsVisible() const
|
||||
{
|
||||
// Reimplementation of CSceneNode::IsVisible() to allow for layer and template visiblity to be taken into account
|
||||
|
||||
@@ -33,6 +33,8 @@ public:
|
||||
void DrawSelection();
|
||||
void RayAABoxIntersectTest(CRayCollisionTester& Tester, const SViewInfo& ViewInfo);
|
||||
SRayIntersection RayNodeIntersectTest(const CRay &Ray, u32 AssetID, const SViewInfo& ViewInfo);
|
||||
bool AllowsRotate() const;
|
||||
bool AllowsScale() const;
|
||||
bool IsVisible() const;
|
||||
CColor TintColor(const SViewInfo &ViewInfo) const;
|
||||
CColor WireframeColor() const;
|
||||
|
||||
Reference in New Issue
Block a user