Changeset 462

Show
Ignore:
Timestamp:
01/11/12 12:40:26 (4 months ago)
Author:
Carsten
Message:

Model code:
Reordered methods in AnimExpressionT class hierarchy.

This is just a cosmetic change for improved consistency.

Location:
cafu/trunk/Libs/Models
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • cafu/trunk/Libs/Models/AnimExpr.cpp

    r461 r462  
    4141{ 
    4242    NormalizeInput(); 
    43 } 
    44  
    45  
    46 void AnimExprStandardT::NormalizeInput() 
    47 { 
    48     const ArrayT<CafuModelT::AnimT>& Anims=GetModel().GetAnims(); 
    49  
    50     // m_SequNr==-1 means "use the bind pose from the model file only (no anim)". 
    51     if (m_SequNr < -1) m_SequNr = -1; 
    52     if (m_SequNr >= int(Anims.Size())) m_SequNr = -1; 
    53     if (m_SequNr != -1 && (Anims[m_SequNr].FPS<0.0 || Anims[m_SequNr].Frames.Size()==0)) m_SequNr = -1; 
    54  
    55     m_FrameNr=std::max(m_FrameNr, 0.0f); 
    56     m_FrameNr=(m_SequNr==-1) ? 0.0f : fmod(m_FrameNr, float(Anims[m_SequNr].Frames.Size())); 
    5743} 
    5844 
     
    176162 
    177163 
     164void AnimExprStandardT::NormalizeInput() 
     165{ 
     166    const ArrayT<CafuModelT::AnimT>& Anims=GetModel().GetAnims(); 
     167 
     168    // m_SequNr==-1 means "use the bind pose from the model file only (no anim)". 
     169    if (m_SequNr < -1) m_SequNr = -1; 
     170    if (m_SequNr >= int(Anims.Size())) m_SequNr = -1; 
     171    if (m_SequNr != -1 && (Anims[m_SequNr].FPS<0.0 || Anims[m_SequNr].Frames.Size()==0)) m_SequNr = -1; 
     172 
     173    m_FrameNr=std::max(m_FrameNr, 0.0f); 
     174    m_FrameNr=(m_SequNr==-1) ? 0.0f : fmod(m_FrameNr, float(Anims[m_SequNr].Frames.Size())); 
     175} 
     176 
     177 
    178178/***********************/ 
    179179/*** AnimExprFilterT ***/ 
  • cafu/trunk/Libs/Models/AnimExpr.hpp

    r461 r462  
    139139    AnimExprFilterT(const CafuModelT& Model, AnimExpressionPtrT SubExpr, const std::string& ChannelName); 
    140140 
     141    // Implementations and overrides for base class methods. 
     142    virtual void GetData(unsigned int JointNr, float& Weight, Vector3fT& Pos, cf::math::QuaternionfT& Quat, Vector3fT& Scale) const; 
     143    virtual void AdvanceTime(float Time, bool ForceLoop=false) { m_SubExpr->AdvanceTime(Time, ForceLoop); } 
     144    virtual AnimExpressionPtrT Clone() const;   // Unfortunately, the proper covariant return type cannot be used with smart pointers. 
     145    virtual bool IsEqual(const AnimExpressionPtrT& AE) const; 
     146 
    141147    /// Re-initializes this anim expression, so that it can be re-used with different parameters (on the same model). 
    142148    void ReInit(AnimExpressionPtrT SubExpr, unsigned int ChannelNr); 
    143149 
    144     // Implementations and overrides for base class methods. 
    145     virtual void GetData(unsigned int JointNr, float& Weight, Vector3fT& Pos, cf::math::QuaternionfT& Quat, Vector3fT& Scale) const; 
    146     virtual void AdvanceTime(float Time, bool ForceLoop=false) { m_SubExpr->AdvanceTime(Time, ForceLoop); } 
    147     virtual AnimExpressionPtrT Clone() const;   // Unfortunately, the proper covariant return type cannot be used with smart pointers. 
    148     virtual bool IsEqual(const AnimExpressionPtrT& AE) const; 
    149  
    150150 
    151151    private: 
     
    162162    AnimExprCombineT(const CafuModelT& Model, AnimExpressionPtrT A, AnimExpressionPtrT B); 
    163163 
     164    // Implementations and overrides for base class methods. 
     165    virtual void GetData(unsigned int JointNr, float& Weight, Vector3fT& Pos, cf::math::QuaternionfT& Quat, Vector3fT& Scale) const; 
     166    virtual void AdvanceTime(float Time, bool ForceLoop=false); 
     167    virtual AnimExpressionPtrT Clone() const;   // Unfortunately, the proper covariant return type cannot be used with smart pointers. 
     168    virtual bool IsEqual(const AnimExpressionPtrT& AE) const; 
     169 
    164170    /// Re-initializes this anim expression, so that it can be re-used with different parameters (on the same model). 
    165171    void ReInit(AnimExpressionPtrT A, AnimExpressionPtrT B); 
    166172 
    167     // Implementations and overrides for base class methods. 
    168     virtual void GetData(unsigned int JointNr, float& Weight, Vector3fT& Pos, cf::math::QuaternionfT& Quat, Vector3fT& Scale) const; 
    169     virtual void AdvanceTime(float Time, bool ForceLoop=false); 
    170     virtual AnimExpressionPtrT Clone() const;   // Unfortunately, the proper covariant return type cannot be used with smart pointers. 
    171     virtual bool IsEqual(const AnimExpressionPtrT& AE) const; 
    172  
    173173 
    174174    private: 
     
    184184 
    185185    AnimExprBlendT(const CafuModelT& Model, AnimExpressionPtrT A, AnimExpressionPtrT B, float Duration); 
     186 
     187    // Implementations and overrides for base class methods. 
     188    virtual void GetData(unsigned int JointNr, float& Weight, Vector3fT& Pos, cf::math::QuaternionfT& Quat, Vector3fT& Scale) const; 
     189    virtual void AdvanceTime(float Time, bool ForceLoop=false); 
     190    virtual AnimExpressionPtrT Clone() const;   // Unfortunately, the proper covariant return type cannot be used with smart pointers. 
     191    virtual bool IsEqual(const AnimExpressionPtrT& AE) const; 
    186192 
    187193    /// Re-initializes this anim expression, so that it can be re-used with different parameters (on the same model). 
     
    198204    /// Returns how far the blend has advanced. 
    199205    float GetFrac() const { return m_Frac; } 
    200  
    201     // Implementations and overrides for base class methods. 
    202     virtual void GetData(unsigned int JointNr, float& Weight, Vector3fT& Pos, cf::math::QuaternionfT& Quat, Vector3fT& Scale) const; 
    203     virtual void AdvanceTime(float Time, bool ForceLoop=false); 
    204     virtual AnimExpressionPtrT Clone() const;   // Unfortunately, the proper covariant return type cannot be used with smart pointers. 
    205     virtual bool IsEqual(const AnimExpressionPtrT& AE) const; 
    206206 
    207207