mPosition( TRANSFORM_PROPERTY_POSITION ), // Zero initialized by default
mOrientation(), // Initialized to identity by default
mScale( TRANSFORM_PROPERTY_SCALE ),
- mUpdateSizeHint( TRANSFORM_PROPERTY_UPDATE_SIZE_HINT ),
mVisible( true ),
mCulled( false ),
mColor( Color::WHITE ),
mClippingMode( ClippingMode::DISABLED ),
mIsRoot( false ),
mIsLayer( false ),
- mPositionUsesAnchorPoint( true ),
- mPartialUpdateAvailable( false )
+ mPositionUsesAnchorPoint( true )
{
mUniformMapChanged[0] = 0u;
mUniformMapChanged[1] = 0u;
- mPropertyDirty = true;
#ifdef DEBUG_ENABLED
gNodeCount++;
//Initialize all the animatable properties
mPosition.Initialize( transformManager, mTransformId );
mScale.Initialize( transformManager, mTransformId );
- mUpdateSizeHint.Initialize( transformManager, mTransformId );
mOrientation.Initialize( transformManager, mTransformId );
mSize.Initialize( transformManager, mTransformId );
mParentOrigin.Initialize( transformManager, mTransformId );
}
mRenderer.PushBack( renderer );
- SetPropertyDirty( true );
}
-
void Node::RemoveRenderer( const Renderer* renderer )
{
- Node *parent = mIsRoot ? NULL : GetParent();
RendererContainer::SizeType rendererCount( mRenderer.Size() );
for( RendererContainer::SizeType i = 0; i < rendererCount; ++i )
{
if( mRenderer[i] == renderer )
{
- if( parent != NULL )
- {
- parent->mPropertyDirty = true;
- }
- SetPropertyDirty( true );
mRenderer.Erase( mRenderer.Begin()+i);
return;
}
void Node::ResetDirtyFlags( BufferIndex updateBufferIndex )
{
mDirtyFlags = NodePropertyFlags::NOTHING;
-
- SetPropertyDirty( false );
-
}
void Node::SetParent( Node& parentNode )
mTransformManager->SetParent( mTransformId, INVALID_TRANSFORM_ID );
}
}
-void Node::SetPartialUpdateAvailable( bool value )
-{
- mPartialUpdateAvailable = value;
-}
-
-bool Node::IsPartialUpdateAvailable() const
-{
- return mPartialUpdateAvailable;
-}
-
-void Node::SetPropertyDirty( bool value )
-{
- if( mPartialUpdateAvailable )
- {
- mPropertyDirty = value;
-
- const NodeIter endIter = mChildren.End();
- for ( NodeIter iter = mChildren.Begin(); iter != endIter; ++iter )
- {
- Node* current = *iter;
- current->SetPropertyDirty( value );
- }
- }
-}
-
-bool Node::IsPropertyDirty() const
-{
- if( mPartialUpdateAvailable )
- {
- if( !mPropertyDirty )
- {
- for( auto&& existingRenderer : mRenderer )
- {
- if( existingRenderer->IsDirty() )
- {
- return true;
- }
- }
- }
- }
- return mPropertyDirty;
-}
} // namespace SceneGraph