Example #1
0
void Skin::Initialize()
{
    Base::Initialize();

    m_Mesh = Reflect::SafeCast< Mesh > ( m_Owner->FindNode( m_MeshID ) );

    if ( m_Mesh )
    {
        // Make this a dependency of the mesh
        m_Mesh->CreateDependency( this );

        // Dereference influence objects
        std::vector<TUID>::const_iterator infItr = m_InfluenceObjectIDs.begin();
        std::vector<TUID>::const_iterator infEnd = m_InfluenceObjectIDs.end();
        for ( ; infItr != infEnd; ++infItr )
        {
            SceneNode* obj = m_Owner->FindNode( *infItr );
            Transform* transform = Reflect::SafeCast< Transform >( obj );
            HELIUM_ASSERT( transform );
            if ( transform )
            {
                m_InfluenceObjects.push_back( transform );
                CreateDependency( transform );
                transform->Dirty();
            }
        }
    }
}