Changeset 461

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

Model code:
Replaced the use of IntrusivePtrT<AnimExpressionT> with much shorter typedef AnimExpressionPtrT in the AnimExpressionT-related classes.
(It was not done in AnimPoseT, as the full type seems to keep the (Doxygen-)documentation is bit clearer. (I did not verify this though.))

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

Legend:

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

    r460 r461  
    143143 
    144144 
    145 IntrusivePtrT<AnimExpressionT> AnimExprStandardT::Clone() const 
     145AnimExpressionPtrT AnimExprStandardT::Clone() const 
    146146{ 
    147147    return GetModel().GetAnimExprPool().GetStandard(m_SequNr, m_FrameNr); 
     
    149149 
    150150 
    151 bool AnimExprStandardT::IsEqual(const IntrusivePtrT<AnimExpressionT>& AE) const 
     151bool AnimExprStandardT::IsEqual(const AnimExpressionPtrT& AE) const 
    152152{ 
    153153    AnimExprStandardT* Other=dynamic_cast<AnimExprStandardT*>(AE.get()); 
     
    195195 
    196196 
    197 AnimExprFilterT::AnimExprFilterT(const CafuModelT& Model, IntrusivePtrT<AnimExpressionT> SubExpr, unsigned int ChannelNr) 
     197AnimExprFilterT::AnimExprFilterT(const CafuModelT& Model, AnimExpressionPtrT SubExpr, unsigned int ChannelNr) 
    198198    : AnimExpressionT(Model), 
    199199      m_SubExpr(SubExpr), 
     
    203203 
    204204 
    205 AnimExprFilterT::AnimExprFilterT(const CafuModelT& Model, IntrusivePtrT<AnimExpressionT> SubExpr, const std::string& ChannelName) 
     205AnimExprFilterT::AnimExprFilterT(const CafuModelT& Model, AnimExpressionPtrT SubExpr, const std::string& ChannelName) 
    206206    : AnimExpressionT(Model), 
    207207      m_SubExpr(SubExpr), 
     
    211211 
    212212 
    213 void AnimExprFilterT::ReInit(IntrusivePtrT<AnimExpressionT> SubExpr, unsigned int ChannelNr) 
     213void AnimExprFilterT::ReInit(AnimExpressionPtrT SubExpr, unsigned int ChannelNr) 
    214214{ 
    215215    if (m_SubExpr==SubExpr && m_ChannelNr==ChannelNr) return; 
     
    231231 
    232232 
    233 IntrusivePtrT<AnimExpressionT> AnimExprFilterT::Clone() const 
     233AnimExpressionPtrT AnimExprFilterT::Clone() const 
    234234{ 
    235235    return GetModel().GetAnimExprPool().GetFilter(m_SubExpr->Clone(), m_ChannelNr); 
     
    237237 
    238238 
    239 bool AnimExprFilterT::IsEqual(const IntrusivePtrT<AnimExpressionT>& AE) const 
     239bool AnimExprFilterT::IsEqual(const AnimExpressionPtrT& AE) const 
    240240{ 
    241241    AnimExprFilterT* Other=dynamic_cast<AnimExprFilterT*>(AE.get()); 
     
    250250/************************/ 
    251251 
    252 AnimExprCombineT::AnimExprCombineT(const CafuModelT& Model, IntrusivePtrT<AnimExpressionT> A, IntrusivePtrT<AnimExpressionT> B) 
     252AnimExprCombineT::AnimExprCombineT(const CafuModelT& Model, AnimExpressionPtrT A, AnimExpressionPtrT B) 
    253253    : AnimExpressionT(Model), 
    254254      m_A(A), 
     
    258258 
    259259 
    260 void AnimExprCombineT::ReInit(IntrusivePtrT<AnimExpressionT> A, IntrusivePtrT<AnimExpressionT> B) 
     260void AnimExprCombineT::ReInit(AnimExpressionPtrT A, AnimExpressionPtrT B) 
    261261{ 
    262262    if (m_A==A && m_B==B) return; 
     
    296296 
    297297 
    298 IntrusivePtrT<AnimExpressionT> AnimExprCombineT::Clone() const 
     298AnimExpressionPtrT AnimExprCombineT::Clone() const 
    299299{ 
    300300    return GetModel().GetAnimExprPool().GetCombine(m_A->Clone(), m_B->Clone()); 
     
    302302 
    303303 
    304 bool AnimExprCombineT::IsEqual(const IntrusivePtrT<AnimExpressionT>& AE) const 
     304bool AnimExprCombineT::IsEqual(const AnimExpressionPtrT& AE) const 
    305305{ 
    306306    AnimExprCombineT* Other=dynamic_cast<AnimExprCombineT*>(AE.get()); 
     
    315315/**********************/ 
    316316 
    317 AnimExprBlendT::AnimExprBlendT(const CafuModelT& Model, IntrusivePtrT<AnimExpressionT> A, IntrusivePtrT<AnimExpressionT> B, float Duration) 
     317AnimExprBlendT::AnimExprBlendT(const CafuModelT& Model, AnimExpressionPtrT A, AnimExpressionPtrT B, float Duration) 
    318318    : AnimExpressionT(Model), 
    319319      m_A(A), 
     
    325325 
    326326 
    327 void AnimExprBlendT::ReInit(IntrusivePtrT<AnimExpressionT> A, IntrusivePtrT<AnimExpressionT> B, float Duration) 
     327void AnimExprBlendT::ReInit(AnimExpressionPtrT A, AnimExpressionPtrT B, float Duration) 
    328328{ 
    329329    m_A=A; 
     
    395395 
    396396 
    397 IntrusivePtrT<AnimExpressionT> AnimExprBlendT::Clone() const 
     397AnimExpressionPtrT AnimExprBlendT::Clone() const 
    398398{ 
    399399    IntrusivePtrT<AnimExprBlendT> Blend=GetModel().GetAnimExprPool().GetBlend(m_A->Clone(), m_B->Clone(), m_Duration); 
     
    404404 
    405405 
    406 bool AnimExprBlendT::IsEqual(const IntrusivePtrT<AnimExpressionT>& AE) const 
     406bool AnimExprBlendT::IsEqual(const AnimExpressionPtrT& AE) const 
    407407{ 
    408408    AnimExprBlendT* Other=dynamic_cast<AnimExprBlendT*>(AE.get()); 
     
    457457 
    458458 
    459 IntrusivePtrT<AnimExprFilterT> AnimExprPoolT::GetFilter(IntrusivePtrT<AnimExpressionT> SubExpr, unsigned int ChannelNr) 
     459IntrusivePtrT<AnimExprFilterT> AnimExprPoolT::GetFilter(AnimExpressionPtrT SubExpr, unsigned int ChannelNr) 
    460460{ 
    461461    FlattenUnused(); 
     
    478478 
    479479 
    480 IntrusivePtrT<AnimExprFilterT> AnimExprPoolT::GetFilter(IntrusivePtrT<AnimExpressionT> SubExpr, const std::string& ChannelName) 
     480IntrusivePtrT<AnimExprFilterT> AnimExprPoolT::GetFilter(AnimExpressionPtrT SubExpr, const std::string& ChannelName) 
    481481{ 
    482482    return GetFilter(SubExpr, FindChannelByName(m_Model, ChannelName)); 
     
    484484 
    485485 
    486 IntrusivePtrT<AnimExprCombineT> AnimExprPoolT::GetCombine(IntrusivePtrT<AnimExpressionT> A, IntrusivePtrT<AnimExpressionT> B) 
     486IntrusivePtrT<AnimExprCombineT> AnimExprPoolT::GetCombine(AnimExpressionPtrT A, AnimExpressionPtrT B) 
    487487{ 
    488488    FlattenUnused(); 
     
    505505 
    506506 
    507 IntrusivePtrT<AnimExprBlendT> AnimExprPoolT::GetBlend(IntrusivePtrT<AnimExpressionT> A, IntrusivePtrT<AnimExpressionT> B, float Duration) 
     507IntrusivePtrT<AnimExprBlendT> AnimExprPoolT::GetBlend(AnimExpressionPtrT A, AnimExpressionPtrT B, float Duration) 
    508508{ 
    509509    FlattenUnused(); 
  • cafu/trunk/Libs/Models/AnimExpr.hpp

    r460 r461  
    7676    /// Creates a new anim expression that is an exact copy of this, even when called 
    7777    /// via the base class pointer (the caller doesn't need to know the exact derived class). 
    78     virtual IntrusivePtrT<AnimExpressionT> Clone() const=0; 
     78    virtual AnimExpressionPtrT Clone() const=0; 
    7979 
    8080    /// Returns whether this anim expression is equal to \c A. 
    8181    /// Two anim expressions are equal if their GetData() methods return the same data. 
    82     virtual bool IsEqual(const IntrusivePtrT<AnimExpressionT>& AE) const=0; 
     82    virtual bool IsEqual(const AnimExpressionPtrT& AE) const=0; 
    8383 
    8484 
     
    104104    virtual void GetData(unsigned int JointNr, float& Weight, Vector3fT& Pos, cf::math::QuaternionfT& Quat, Vector3fT& Scale) const; 
    105105    virtual void AdvanceTime(float Time, bool ForceLoop=false); 
    106     virtual IntrusivePtrT<AnimExpressionT> Clone() const;   // Unfortunately, the proper covariant return type cannot be used with smart pointers. 
    107     virtual bool IsEqual(const IntrusivePtrT<AnimExpressionT>& AE) const; 
     106    virtual AnimExpressionPtrT Clone() const;   // Unfortunately, the proper covariant return type cannot be used with smart pointers. 
     107    virtual bool IsEqual(const AnimExpressionPtrT& AE) const; 
    108108 
    109109    /// Returns the sequence number that is currently set in this expression. 
     
    136136    public: 
    137137 
    138     AnimExprFilterT(const CafuModelT& Model, IntrusivePtrT<AnimExpressionT> SubExpr, unsigned int ChannelNr); 
    139     AnimExprFilterT(const CafuModelT& Model, IntrusivePtrT<AnimExpressionT> SubExpr, const std::string& ChannelName); 
     138    AnimExprFilterT(const CafuModelT& Model, AnimExpressionPtrT SubExpr, unsigned int ChannelNr); 
     139    AnimExprFilterT(const CafuModelT& Model, AnimExpressionPtrT SubExpr, const std::string& ChannelName); 
    140140 
    141141    /// Re-initializes this anim expression, so that it can be re-used with different parameters (on the same model). 
    142     void ReInit(IntrusivePtrT<AnimExpressionT> SubExpr, unsigned int ChannelNr); 
     142    void ReInit(AnimExpressionPtrT SubExpr, unsigned int ChannelNr); 
    143143 
    144144    // Implementations and overrides for base class methods. 
    145145    virtual void GetData(unsigned int JointNr, float& Weight, Vector3fT& Pos, cf::math::QuaternionfT& Quat, Vector3fT& Scale) const; 
    146146    virtual void AdvanceTime(float Time, bool ForceLoop=false) { m_SubExpr->AdvanceTime(Time, ForceLoop); } 
    147     virtual IntrusivePtrT<AnimExpressionT> Clone() const;   // Unfortunately, the proper covariant return type cannot be used with smart pointers. 
    148     virtual bool IsEqual(const IntrusivePtrT<AnimExpressionT>& AE) const; 
    149  
    150  
    151     private: 
    152  
    153     IntrusivePtrT<AnimExpressionT> m_SubExpr; 
    154     unsigned int                   m_ChannelNr; 
     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 
     150 
     151    private: 
     152 
     153    AnimExpressionPtrT m_SubExpr; 
     154    unsigned int       m_ChannelNr; 
    155155}; 
    156156 
     
    160160    public: 
    161161 
    162     AnimExprCombineT(const CafuModelT& Model, IntrusivePtrT<AnimExpressionT> A, IntrusivePtrT<AnimExpressionT> B); 
     162    AnimExprCombineT(const CafuModelT& Model, AnimExpressionPtrT A, AnimExpressionPtrT B); 
    163163 
    164164    /// Re-initializes this anim expression, so that it can be re-used with different parameters (on the same model). 
    165     void ReInit(IntrusivePtrT<AnimExpressionT> A, IntrusivePtrT<AnimExpressionT> B); 
     165    void ReInit(AnimExpressionPtrT A, AnimExpressionPtrT B); 
    166166 
    167167    // Implementations and overrides for base class methods. 
    168168    virtual void GetData(unsigned int JointNr, float& Weight, Vector3fT& Pos, cf::math::QuaternionfT& Quat, Vector3fT& Scale) const; 
    169169    virtual void AdvanceTime(float Time, bool ForceLoop=false); 
    170     virtual IntrusivePtrT<AnimExpressionT> Clone() const;   // Unfortunately, the proper covariant return type cannot be used with smart pointers. 
    171     virtual bool IsEqual(const IntrusivePtrT<AnimExpressionT>& AE) const; 
    172  
    173  
    174     private: 
    175  
    176     IntrusivePtrT<AnimExpressionT> m_A; 
    177     IntrusivePtrT<AnimExpressionT> m_B; 
     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 
     173 
     174    private: 
     175 
     176    AnimExpressionPtrT m_A; 
     177    AnimExpressionPtrT m_B; 
    178178}; 
    179179 
     
    183183    public: 
    184184 
    185     AnimExprBlendT(const CafuModelT& Model, IntrusivePtrT<AnimExpressionT> A, IntrusivePtrT<AnimExpressionT> B, float Duration); 
     185    AnimExprBlendT(const CafuModelT& Model, AnimExpressionPtrT A, AnimExpressionPtrT B, float Duration); 
    186186 
    187187    /// Re-initializes this anim expression, so that it can be re-used with different parameters (on the same model). 
    188188    /// Note that resetting \c A, \c B or \c Duration individually is not possible, because the implementation 
    189189    /// may prune and drop \c A when the blend is complete. 
    190     void ReInit(IntrusivePtrT<AnimExpressionT> A, IntrusivePtrT<AnimExpressionT> B, float Duration); 
     190    void ReInit(AnimExpressionPtrT A, AnimExpressionPtrT B, float Duration); 
    191191 
    192192    /// Returns the "blend from" sub-expression. 
    193     IntrusivePtrT<AnimExpressionT> GetA() const { return m_A; } 
     193    AnimExpressionPtrT GetA() const { return m_A; } 
    194194 
    195195    /// Returns the "blend to" sub-expression. 
    196     IntrusivePtrT<AnimExpressionT> GetB() const { return m_B; } 
     196    AnimExpressionPtrT GetB() const { return m_B; } 
    197197 
    198198    /// Returns how far the blend has advanced. 
     
    202202    virtual void GetData(unsigned int JointNr, float& Weight, Vector3fT& Pos, cf::math::QuaternionfT& Quat, Vector3fT& Scale) const; 
    203203    virtual void AdvanceTime(float Time, bool ForceLoop=false); 
    204     virtual IntrusivePtrT<AnimExpressionT> Clone() const;   // Unfortunately, the proper covariant return type cannot be used with smart pointers. 
    205     virtual bool IsEqual(const IntrusivePtrT<AnimExpressionT>& AE) const; 
    206  
    207  
    208     private: 
    209  
    210     IntrusivePtrT<AnimExpressionT> m_A; 
    211     IntrusivePtrT<AnimExpressionT> m_B; 
    212     float                          m_Duration; 
    213     float                          m_Frac; 
     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; 
     206 
     207 
     208    private: 
     209 
     210    AnimExpressionPtrT m_A; 
     211    AnimExpressionPtrT m_B; 
     212    float              m_Duration; 
     213    float              m_Frac; 
    214214}; 
    215215 
     
    223223    // These methods mimic the ctors of the anim expression classes. 
    224224    IntrusivePtrT<AnimExprStandardT> GetStandard(int SequNr, float FrameNr); 
    225     IntrusivePtrT<AnimExprFilterT>   GetFilter(IntrusivePtrT<AnimExpressionT> SubExpr, unsigned int ChannelNr); 
    226     IntrusivePtrT<AnimExprFilterT>   GetFilter(IntrusivePtrT<AnimExpressionT> SubExpr, const std::string& ChannelName); 
    227     IntrusivePtrT<AnimExprCombineT>  GetCombine(IntrusivePtrT<AnimExpressionT> A, IntrusivePtrT<AnimExpressionT> B); 
    228     IntrusivePtrT<AnimExprBlendT>    GetBlend(IntrusivePtrT<AnimExpressionT> A, IntrusivePtrT<AnimExpressionT> B, float Duration); 
     225    IntrusivePtrT<AnimExprFilterT>   GetFilter(AnimExpressionPtrT SubExpr, unsigned int ChannelNr); 
     226    IntrusivePtrT<AnimExprFilterT>   GetFilter(AnimExpressionPtrT SubExpr, const std::string& ChannelName); 
     227    IntrusivePtrT<AnimExprCombineT>  GetCombine(AnimExpressionPtrT A, AnimExpressionPtrT B); 
     228    IntrusivePtrT<AnimExprBlendT>    GetBlend(AnimExpressionPtrT A, AnimExpressionPtrT B, float Duration); 
    229229 
    230230