/**
* Constructor
*/
- TransformManagerPropertyHandler()
- :mTxManager(nullptr),
- mId( INVALID_TRANSFORM_ID )
- {}
+ TransformManagerPropertyHandler() = default;
/**
* @copydoc Dali::Internal::SceneGraph::PropertyBase::GetType()
* @param[in] transformManager Pointer to the transform manager
* @param[in] Id of the transformation the property is associated with
*/
- void Initialize( TransformManager* transformManager, TransformId id )
+ void Initialize( TransformManagerData* data)
{
- mTxManager = transformManager;
- mId = id;
+ DALI_ASSERT_ALWAYS( data != nullptr && data->Manager() != nullptr);
+ mTxManagerData = data;
}
/**
return true;
}
- TransformManager* mTxManager;
- TransformId mId;
+ TransformManagerData* mTxManagerData{nullptr};
};
-struct TransformManagerPropertyVector3 : public TransformManagerPropertyHandler<Vector3>
+template<TransformManagerProperty PropertyT>
+struct TransformManagerPropertyVector3 final : public TransformManagerPropertyHandler<Vector3>
{
- TransformManagerPropertyVector3(TransformManagerProperty property)
- :TransformManagerPropertyHandler(),
- mProperty( property )
- {}
+ TransformManagerPropertyVector3() = default;
Dali::Property::Type GetType() const override
{
Vector3& Get( BufferIndex bufferIndex ) override
{
- return mTxManager->GetVector3PropertyValue( mId, mProperty );
+ return mTxManagerData->Manager()->GetVector3PropertyValue( mTxManagerData->Id(), PropertyT );
}
const Vector3& Get( BufferIndex bufferIndex ) const override
{
- const TransformManager* txManager = mTxManager;
- return txManager->GetVector3PropertyValue( mId, mProperty );
+ return mTxManagerData->Manager()->GetVector3PropertyValue( mTxManagerData->Id(), PropertyT );
}
const Vector3& GetVector3( BufferIndex bufferIndex ) const override
const float& GetFloatComponent( uint32_t component ) const override
{
- const TransformManager* txManager = mTxManager;
- return txManager->GetVector3PropertyComponentValue( mId, mProperty, component );
+ return mTxManagerData->Manager()->GetVector3PropertyComponentValue( mTxManagerData->Id(), PropertyT, component );
}
void Set(BufferIndex bufferIndex, const Vector3& value) override
{
- mTxManager->SetVector3PropertyValue( mId, mProperty, value );
+ mTxManagerData->Manager()->SetVector3PropertyValue( mTxManagerData->Id(), PropertyT, value );
}
void SetComponent(BufferIndex bufferIndex, float value, uint32_t component)
{
- mTxManager->SetVector3PropertyComponentValue( mId, mProperty, value, component);
+ mTxManagerData->Manager()->SetVector3PropertyComponentValue( mTxManagerData->Id(), PropertyT, value, component);
}
void BakeComponent(BufferIndex bufferIndex, float value, uint32_t component)
{
- mTxManager->BakeVector3PropertyComponentValue( mId, mProperty, value, component);
+ mTxManagerData->Manager()->BakeVector3PropertyComponentValue( mTxManagerData->Id(), PropertyT, value, component);
}
void Bake(BufferIndex bufferIndex, const Vector3& value) override
{
- mTxManager->BakeVector3PropertyValue(mId, mProperty, value );
+ mTxManagerData->Manager()->BakeVector3PropertyValue(mTxManagerData->Id(), PropertyT, value );
}
void BakeX(BufferIndex bufferIndex, float value) override
{
- mTxManager->BakeXVector3PropertyValue(mId, mProperty, value );
+ mTxManagerData->Manager()->BakeXVector3PropertyValue(mTxManagerData->Id(), PropertyT, value );
}
void BakeY(BufferIndex bufferIndex, float value) override
{
- mTxManager->BakeYVector3PropertyValue(mId, mProperty, value );
+ mTxManagerData->Manager()->BakeYVector3PropertyValue(mTxManagerData->Id(), PropertyT, value );
}
void BakeZ(BufferIndex bufferIndex, float value) override
{
- mTxManager->BakeZVector3PropertyValue(mId, mProperty, value );
+ mTxManagerData->Manager()->BakeZVector3PropertyValue(mTxManagerData->Id(), PropertyT, value );
}
void SetFloatComponent( float value, uint32_t component) override
{
- mTxManager->SetVector3PropertyComponentValue( mId, mProperty, value, component);
+ mTxManagerData->Manager()->SetVector3PropertyComponentValue( mTxManagerData->Id(), PropertyT, value, component);
}
void BakeFloatComponent( float value, uint32_t component ) override
{
- mTxManager->BakeVector3PropertyComponentValue( mId, mProperty, value, component);
+ mTxManagerData->Manager()->BakeVector3PropertyComponentValue( mTxManagerData->Id(), PropertyT, value, component);
}
void BakeRelative(BufferIndex bufferIndex, const Vector3& value) override
{
- mTxManager->BakeRelativeVector3PropertyValue(mId, mProperty, value );
+ mTxManagerData->Manager()->BakeRelativeVector3PropertyValue(mTxManagerData->Id(), PropertyT, value );
}
void BakeRelativeMultiply(BufferIndex bufferIndex, const Vector3& value) override
{
- mTxManager->BakeMultiplyVector3PropertyValue(mId, mProperty, value );
+ mTxManagerData->Manager()->BakeMultiplyVector3PropertyValue(mTxManagerData->Id(), PropertyT, value );
}
-
- TransformManagerProperty mProperty;
};
-class TransformManagerPropertyQuaternion : public TransformManagerPropertyHandler<Quaternion>
+class TransformManagerPropertyQuaternion final : public TransformManagerPropertyHandler<Quaternion>
{
public:
- TransformManagerPropertyQuaternion()
- :TransformManagerPropertyHandler()
- {}
+ TransformManagerPropertyQuaternion() = default;
Dali::Property::Type GetType() const override
{
Quaternion& Get( BufferIndex bufferIndex ) override
{
- return mTxManager->GetQuaternionPropertyValue( mId );
+ return mTxManagerData->Manager()->GetQuaternionPropertyValue( mTxManagerData->Id() );
}
const Quaternion& Get( BufferIndex bufferIndex ) const override
{
- const TransformManager* txManager = mTxManager;
- return txManager->GetQuaternionPropertyValue( mId );
+ return mTxManagerData->Manager()->GetQuaternionPropertyValue( mTxManagerData->Id() );
}
void Set(BufferIndex bufferIndex, const Quaternion& value) override
{
- return mTxManager->SetQuaternionPropertyValue( mId, value );
+ return mTxManagerData->Manager()->SetQuaternionPropertyValue( mTxManagerData->Id(), value );
}
void Bake(BufferIndex bufferIndex, const Quaternion& value) override
{
- return mTxManager->BakeQuaternionPropertyValue( mId, value );
+ return mTxManagerData->Manager()->BakeQuaternionPropertyValue( mTxManagerData->Id(), value );
}
void BakeRelative(BufferIndex bufferIndex, const Quaternion& value) override
{
- return mTxManager->BakeRelativeQuaternionPropertyValue( mId, value );
+ return mTxManagerData->Manager()->BakeRelativeQuaternionPropertyValue( mTxManagerData->Id(), value );
}
const Quaternion& GetQuaternion( BufferIndex bufferIndex ) const override
* Create an TransformManagerVector3Input
*/
TransformManagerVector3Input( TransformManagerProperty property, const Vector3& initialValue )
- :mTxManager(nullptr),
- mId(INVALID_TRANSFORM_ID),
- mProperty(property),
+ :mProperty(property),
mValue(initialValue)
{}
*/
void ComputeTransformComponent() const
{
- const TransformManager* txManager = mTxManager;
- if( txManager )
+ if( mTxManagerData )
{
- const Matrix& worldMatrix = txManager->GetWorldMatrix(mId);
+ const Matrix& worldMatrix = mTxManagerData->Manager()->GetWorldMatrix(mTxManagerData->Id());
if( mProperty == TRANSFORM_PROPERTY_WORLD_POSITION )
{
* @param[in] transformManager Pointer to the transform manager
* @param[in] Id of the transformation the property is associated with
*/
- void Initialize( TransformManager* transformManager, TransformId id )
+ void Initialize( TransformManagerData* data)
{
- mTxManager = transformManager;
- mId = id;
+ DALI_ASSERT_ALWAYS( data != nullptr && data->Manager() != nullptr);
+ mTxManagerData = data;
}
/**
public:
- TransformManager* mTxManager;
- TransformId mId;
+ TransformManagerData* mTxManagerData{nullptr};
TransformManagerProperty mProperty;
mutable Vector3 mValue;
};
/**
* A Quaternion property used as input.
*/
-class TransformManagerQuaternionInput : public PropertyInputImpl
+class TransformManagerQuaternionInput final : public PropertyInputImpl
{
public:
/**
* Constructor
*/
- TransformManagerQuaternionInput()
- :mTxManager(nullptr),
- mId(INVALID_TRANSFORM_ID),
- mValue(1.0f,0.0f,0.0f,0.0f)
- {
- }
-
- /**
- * Virtual destructor.
- */
- ~TransformManagerQuaternionInput() override = default;
+ TransformManagerQuaternionInput() = default;
/**
* @copydoc Dali::Internal::SceneGraph::PropertyBase::GetType()
*/
void ComputeTransformComponent() const
{
- const TransformManager* txManager = mTxManager;
- if( txManager )
+ if( mTxManagerData )
{
- const Matrix& worldMatrix = txManager->GetWorldMatrix(mId);
+ const Matrix& worldMatrix = mTxManagerData->Manager()->GetWorldMatrix(mTxManagerData->Id());
Vector3 position, scale;
worldMatrix.GetTransformComponents(position, mValue, scale);
}
* @param[in] transformManager Pointer to the transform manager
* @param[in] Id of the transformation the property is associated with
*/
- void Initialize( TransformManager* transformManager, TransformId id )
+ void Initialize( TransformManagerData* data)
{
- mTxManager = transformManager;
- mId = id;
+ DALI_ASSERT_ALWAYS( data != nullptr && data->Manager() != nullptr);
+ mTxManagerData = data;
}
/**
public:
- TransformManager* mTxManager;
- TransformId mId;
+ TransformManagerData* mTxManagerData{nullptr};
mutable Quaternion mValue;
};
/**
* A Matrix property used as input.
*/
-class TransformManagerMatrixInput : public PropertyInputImpl
+class TransformManagerMatrixInput final: public PropertyInputImpl
{
public:
/**
* Constructor
*/
- TransformManagerMatrixInput()
- :mTxManager(nullptr),
- mId(INVALID_TRANSFORM_ID)
- {
- }
+ TransformManagerMatrixInput() = default;
- /**
- * Virtual destructor.
- */
- ~TransformManagerMatrixInput() override = default;
/**
* @copydoc Dali::Internal::SceneGraph::PropertyBase::GetType()
*/
const Matrix& GetMatrix( BufferIndex bufferIndex ) const override
{
- const TransformManager* txManager = mTxManager;
- if( txManager )
+ if( mTxManagerData )
{
- return txManager->GetWorldMatrix(mId);
+ return mTxManagerData->Manager()->GetWorldMatrix(mTxManagerData->Id());
}
return Matrix::IDENTITY;
*/
const Matrix& GetConstraintInputMatrix( BufferIndex bufferIndex ) const override
{
- const TransformManager* txManager = mTxManager;
- if( txManager )
+ if( mTxManagerData )
{
- return txManager->GetWorldMatrix(mId);
+ return mTxManagerData->Manager()->GetWorldMatrix(mTxManagerData->Id());
}
return Matrix::IDENTITY;
*/
Matrix& Get( BufferIndex bufferIndex )
{
- DALI_ASSERT_ALWAYS( mTxManager != nullptr );
- return mTxManager->GetWorldMatrix(mId);
+ DALI_ASSERT_ALWAYS( mTxManagerData != nullptr );
+ return mTxManagerData->Manager()->GetWorldMatrix(mTxManagerData->Id());
}
/**
return GetMatrix( bufferIndex );
}
- void Initialize( TransformManager* transformManager, TransformId id )
+ void Initialize( TransformManagerData* data)
{
- mTxManager = transformManager;
- mId = id;
+ DALI_ASSERT_ALWAYS( data != nullptr && data->Manager() != nullptr);
+ mTxManagerData = data;
}
/**
public:
- TransformManager* mTxManager;
- TransformId mId;
+ TransformManagerData* mTxManagerData{nullptr};
};
using TransformId = uint32_t; // 4,294,967,295 transforms supported
static const TransformId INVALID_TRANSFORM_ID = -1;
+class TransformManager;
+
+struct TransformManagerData
+{
+
+ TransformManager* Manager() const { return mManager; }
+
+ TransformId Id() const { return mId; }
+
+ TransformManager* mManager{nullptr};
+ TransformId mId{INVALID_TRANSFORM_ID};
+};
+
} //SceneGraph
} //Internal
if( node )
{
const SceneGraph::TransformManager& transformManager = mTransformManager; // To ensure we call the const getter
- position = transformManager.GetVector3PropertyValue( node->mTransformId, SceneGraph::TRANSFORM_PROPERTY_POSITION );
+ position = transformManager.GetVector3PropertyValue( node->GetTransformId(), SceneGraph::TRANSFORM_PROPERTY_POSITION );
success = true;
}
return success;
SceneGraph::Node* node = GetNodeWithId( id );
if( node )
{
- mTransformManager.SetVector3PropertyValue( node->mTransformId, SceneGraph::TRANSFORM_PROPERTY_POSITION, position );
+ mTransformManager.SetVector3PropertyValue( node->GetTransformId(), SceneGraph::TRANSFORM_PROPERTY_POSITION, position );
success = true;
}
return success;
SceneGraph::Node* node = GetNodeWithId( id );
if( node )
{
- mTransformManager.BakeVector3PropertyValue( node->mTransformId, SceneGraph::TRANSFORM_PROPERTY_POSITION, position );
+ mTransformManager.BakeVector3PropertyValue( node->GetTransformId(), SceneGraph::TRANSFORM_PROPERTY_POSITION, position );
success = true;
}
return success;
if( node )
{
const SceneGraph::TransformManager& transformManager = mTransformManager; // To ensure we call the const getter
- size = transformManager.GetVector3PropertyValue( node->mTransformId, SceneGraph::TRANSFORM_PROPERTY_SIZE );
+ size = transformManager.GetVector3PropertyValue( node->GetTransformId(), SceneGraph::TRANSFORM_PROPERTY_SIZE );
success = true;
}
return success;
SceneGraph::Node* node = GetNodeWithId( id );
if( node )
{
- mTransformManager.SetVector3PropertyValue( node->mTransformId, SceneGraph::TRANSFORM_PROPERTY_SIZE, size );
+ mTransformManager.SetVector3PropertyValue( node->GetTransformId(), SceneGraph::TRANSFORM_PROPERTY_SIZE, size );
success = true;
}
return success;
SceneGraph::Node* node = GetNodeWithId( id );
if( node )
{
- mTransformManager.BakeVector3PropertyValue( node->mTransformId, SceneGraph::TRANSFORM_PROPERTY_SIZE, size );
+ mTransformManager.BakeVector3PropertyValue( node->GetTransformId(), SceneGraph::TRANSFORM_PROPERTY_SIZE, size );
success = true;
}
return success;
if( node )
{
const SceneGraph::TransformManager& transformManager = mTransformManager; // To ensure we call the const getter
- position = transformManager.GetVector3PropertyValue( node->mTransformId, SceneGraph::TRANSFORM_PROPERTY_POSITION );
- size = transformManager.GetVector3PropertyValue( node->mTransformId, SceneGraph::TRANSFORM_PROPERTY_SIZE );
+ position = transformManager.GetVector3PropertyValue( node->GetTransformId(), SceneGraph::TRANSFORM_PROPERTY_POSITION );
+ size = transformManager.GetVector3PropertyValue( node->GetTransformId(), SceneGraph::TRANSFORM_PROPERTY_SIZE );
success = true;
}
return success;
if( node )
{
const SceneGraph::TransformManager& transformManager = mTransformManager; // To ensure we call the const getter
- scale = transformManager.GetVector3PropertyValue( node->mTransformId, SceneGraph::TRANSFORM_PROPERTY_SCALE );
+ scale = transformManager.GetVector3PropertyValue( node->GetTransformId(), SceneGraph::TRANSFORM_PROPERTY_SCALE );
success = true;
}
SceneGraph::Node* node = GetNodeWithId( id );
if( node )
{
- mTransformManager.SetVector3PropertyValue( node->mTransformId, SceneGraph::TRANSFORM_PROPERTY_SCALE, scale );
+ mTransformManager.SetVector3PropertyValue( node->GetTransformId(), SceneGraph::TRANSFORM_PROPERTY_SCALE, scale );
success = true;
}
return success;
SceneGraph::Node* node = GetNodeWithId( id );
if( node )
{
- mTransformManager.BakeVector3PropertyValue( node->mTransformId, SceneGraph::TRANSFORM_PROPERTY_SCALE, scale );
+ mTransformManager.BakeVector3PropertyValue( node->GetTransformId(), SceneGraph::TRANSFORM_PROPERTY_SCALE, scale );
success = true;
}
return success;
}
Node::Node()
-: mTransformManager( nullptr ),
- mTransformId( INVALID_TRANSFORM_ID ),
- mParentOrigin( TRANSFORM_PROPERTY_PARENT_ORIGIN ),
- mAnchorPoint( TRANSFORM_PROPERTY_ANCHOR_POINT ),
- mSize( TRANSFORM_PROPERTY_SIZE ), // Zero initialized by default
- mPosition( TRANSFORM_PROPERTY_POSITION ), // Zero initialized by default
- mOrientation(), // Initialized to identity by default
- mScale( TRANSFORM_PROPERTY_SCALE ),
+: mOrientation(), // Initialized to identity by default
mVisible( true ),
mCulled( false ),
mColor( Color::WHITE ),
#ifdef DEBUG_ENABLED
gNodeCount++;
#endif
-
}
Node::~Node()
{
- if( mTransformId != INVALID_TRANSFORM_ID )
+ if( mTransformManagerData.Id() != INVALID_TRANSFORM_ID )
{
- mTransformManager->RemoveTransform(mTransformId);
+ mTransformManagerData.Manager()->RemoveTransform(mTransformManagerData.Id());
}
#ifdef DEBUG_ENABLED
void Node::CreateTransform( SceneGraph::TransformManager* transformManager )
{
//Create a new transform
- mTransformManager = transformManager;
- mTransformId = transformManager->CreateTransform();
+ mTransformManagerData.mManager = transformManager;
+ mTransformManagerData.mId = transformManager->CreateTransform();
//Initialize all the animatable properties
- mPosition.Initialize( transformManager, mTransformId );
- mScale.Initialize( transformManager, mTransformId );
- mOrientation.Initialize( transformManager, mTransformId );
- mSize.Initialize( transformManager, mTransformId );
- mParentOrigin.Initialize( transformManager, mTransformId );
- mAnchorPoint.Initialize( transformManager, mTransformId );
+ mPosition.Initialize( &mTransformManagerData );
+ mScale.Initialize( &mTransformManagerData );
+ mOrientation.Initialize( &mTransformManagerData );
+ mSize.Initialize( &mTransformManagerData );
+ mParentOrigin.Initialize( &mTransformManagerData );
+ mAnchorPoint.Initialize( &mTransformManagerData );
//Initialize all the input properties
- mWorldPosition.Initialize( transformManager, mTransformId );
- mWorldScale.Initialize( transformManager, mTransformId );
- mWorldOrientation.Initialize( transformManager, mTransformId );
- mWorldMatrix.Initialize( transformManager, mTransformId );
+ mWorldPosition.Initialize( &mTransformManagerData );
+ mWorldScale.Initialize( &mTransformManagerData );
+ mWorldOrientation.Initialize( &mTransformManagerData );
+ mWorldMatrix.Initialize( &mTransformManagerData);
//Set whether the position should use the anchor point
- transformManager->SetPositionUsesAnchorPoint( mTransformId, mPositionUsesAnchorPoint );
+ transformManager->SetPositionUsesAnchorPoint( mTransformManagerData.Id(), mPositionUsesAnchorPoint );
}
void Node::SetRoot(bool isRoot)
mParent = &parentNode;
- if( mTransformId != INVALID_TRANSFORM_ID )
+ if( mTransformManagerData.Id() != INVALID_TRANSFORM_ID )
{
- mTransformManager->SetParent( mTransformId, parentNode.GetTransformId() );
+ mTransformManagerData.Manager()->SetParent( mTransformManagerData.Id(), parentNode.GetTransformId() );
}
}
// Remove all child pointers
mChildren.Clear();
- if( mTransformId != INVALID_TRANSFORM_ID )
+ if( mTransformManagerData.Id() != INVALID_TRANSFORM_ID )
{
- mTransformManager->SetParent( mTransformId, INVALID_TRANSFORM_ID );
+ mTransformManagerData.Manager()->SetParent( mTransformManagerData.Id(), INVALID_TRANSFORM_ID );
}
}
*/
const Vector3& GetPosition(BufferIndex bufferIndex) const
{
- if( mTransformId != INVALID_TRANSFORM_ID )
+ if( mTransformManagerData.Id() != INVALID_TRANSFORM_ID )
{
return mPosition.Get(bufferIndex);
}
*/
void SetInheritPosition(bool inherit)
{
- if( mTransformId != INVALID_TRANSFORM_ID )
+ if( mTransformManagerData.Id() != INVALID_TRANSFORM_ID )
{
- mTransformManager->SetInheritPosition( mTransformId, inherit );
+ mTransformManagerData.Manager()->SetInheritPosition( mTransformManagerData.Id(), inherit );
}
}
*/
const Quaternion& GetOrientation(BufferIndex bufferIndex) const
{
- if( mTransformId != INVALID_TRANSFORM_ID )
+ if( mTransformManagerData.Id() != INVALID_TRANSFORM_ID )
{
return mOrientation.Get(0);
}
*/
void SetInheritOrientation(bool inherit)
{
- if( mTransformId != INVALID_TRANSFORM_ID )
+ if( mTransformManagerData.Id() != INVALID_TRANSFORM_ID )
{
- mTransformManager->SetInheritOrientation(mTransformId, inherit );
+ mTransformManagerData.Manager()->SetInheritOrientation(mTransformManagerData.Id(), inherit );
}
}
*/
const Vector3& GetScale(BufferIndex bufferIndex) const
{
- if( mTransformId != INVALID_TRANSFORM_ID )
+ if( mTransformManagerData.Id() != INVALID_TRANSFORM_ID )
{
return mScale.Get(0);
}
*/
void SetInheritScale( bool inherit )
{
- if( mTransformId != INVALID_TRANSFORM_ID )
+ if( mTransformManagerData.Id() != INVALID_TRANSFORM_ID )
{
- mTransformManager->SetInheritScale(mTransformId, inherit );
+ mTransformManagerData.Manager()->SetInheritScale(mTransformManagerData.Id(), inherit );
}
}
*/
const Vector3& GetSize(BufferIndex bufferIndex) const
{
- if( mTransformId != INVALID_TRANSFORM_ID )
+ if( mTransformManagerData.Id() != INVALID_TRANSFORM_ID )
{
return mSize.Get(0);
}
*/
const Vector3& GetUpdateSizeHint() const
{
- if( mTransformId != INVALID_TRANSFORM_ID )
+ if( mTransformManagerData.Id() != INVALID_TRANSFORM_ID )
{
return mUpdateSizeHint.Get(0);
}
*/
const Vector4& GetBoundingSphere() const
{
- if( mTransformId != INVALID_TRANSFORM_ID )
+ if( mTransformManagerData.Id() != INVALID_TRANSFORM_ID )
{
- return mTransformManager->GetBoundingSphere( mTransformId );
+ return mTransformManagerData.Manager()->GetBoundingSphere( mTransformManagerData.Id() );
}
return Vector4::ZERO;
*/
void GetWorldMatrixAndSize( Matrix& worldMatrix, Vector3& size ) const
{
- if( mTransformId != INVALID_TRANSFORM_ID )
+ if( mTransformManagerData.Id() != INVALID_TRANSFORM_ID )
{
- mTransformManager->GetWorldMatrixAndSize( mTransformId, worldMatrix, size );
+ mTransformManagerData.Manager()->GetWorldMatrixAndSize( mTransformManagerData.Id(), worldMatrix, size );
}
}
*/
bool IsLocalMatrixDirty() const
{
- return (mTransformId != INVALID_TRANSFORM_ID) &&
- (mTransformManager->IsLocalMatrixDirty( mTransformId ));
+ return (mTransformManagerData.Id() != INVALID_TRANSFORM_ID) &&
+ (mTransformManagerData.Manager()->IsLocalMatrixDirty( mTransformManagerData.Id() ));
}
/**
*/
TransformId GetTransformId() const
{
- return mTransformId;
+ return mTransformManagerData.Id();
}
/**
*/
void SetPositionUsesAnchorPoint( bool positionUsesAnchorPoint )
{
- if( mTransformId != INVALID_TRANSFORM_ID && mPositionUsesAnchorPoint != positionUsesAnchorPoint )
+ if( mTransformManagerData.Id() != INVALID_TRANSFORM_ID && mPositionUsesAnchorPoint != positionUsesAnchorPoint )
{
mPositionUsesAnchorPoint = positionUsesAnchorPoint;
- mTransformManager->SetPositionUsesAnchorPoint( mTransformId, mPositionUsesAnchorPoint );
+ mTransformManagerData.Manager()->SetPositionUsesAnchorPoint( mTransformManagerData.Id(), mPositionUsesAnchorPoint );
}
}
void RecursiveDisconnectFromSceneGraph( BufferIndex updateBufferIndex );
public: // Default properties
-
- TransformManager* mTransformManager;
- TransformId mTransformId;
- TransformManagerPropertyVector3 mParentOrigin; ///< Local transform; the position is relative to this. Sets the Transform flag dirty when changed
- TransformManagerPropertyVector3 mAnchorPoint; ///< Local transform; local center of rotation. Sets the Transform flag dirty when changed
- TransformManagerPropertyVector3 mSize; ///< Size is provided for layouting
- TransformManagerPropertyVector3 mPosition; ///< Local transform; distance between parent-origin & anchor-point
+ using TransformManagerParentsOrigin = TransformManagerPropertyVector3<TRANSFORM_PROPERTY_PARENT_ORIGIN>;
+ using TransformManagerAnchorPoint = TransformManagerPropertyVector3<TRANSFORM_PROPERTY_ANCHOR_POINT>;
+ using TransformManagerSize = TransformManagerPropertyVector3<TRANSFORM_PROPERTY_SIZE>;
+ using TransformManagerPosition = TransformManagerPropertyVector3<TRANSFORM_PROPERTY_POSITION>;
+ using TransformManagerScale = TransformManagerPropertyVector3<TRANSFORM_PROPERTY_SCALE>;
+
+
+ TransformManagerData mTransformManagerData;
+ TransformManagerParentsOrigin mParentOrigin; ///< Local transform; the position is relative to this. Sets the Transform flag dirty when changed
+ TransformManagerAnchorPoint mAnchorPoint; ///< Local transform; local center of rotation. Sets the Transform flag dirty when changed
+ TransformManagerSize mSize; ///< Size is provided for layouting
+ TransformManagerPosition mPosition; ///< Local transform; distance between parent-origin & anchor-point
+ TransformManagerScale mScale; ///< Local transform; scale relative to parent node
TransformManagerPropertyQuaternion mOrientation; ///< Local transform; rotation relative to parent node
- TransformManagerPropertyVector3 mScale; ///< Local transform; scale relative to parent node
AnimatableProperty<bool> mVisible; ///< Visibility can be inherited from the Node hierachy
AnimatableProperty<bool> mCulled; ///< True if the node is culled. This is not animatable. It is just double-buffered.