cocos 2 d-xノード(b 2 chainShape.h)API


この文書はhttp://blog.csdn.net/runaying ,引用は出典を明記しなければならない!
cocos 2 d-xノード(b 2 chainShape.h)API
皆さんがもっと勉強できるように、私のブログを見ることを強くお勧めします. Cocos 2 d-X権威ガイドノート
 チェーン形状、チェーン形状は自由形式のシーケンスの線分で、チェーンは両面衝突を持っているので、内部または外部衝突を使用することができます.//チェーン形状は、複数のエッジを同時に接続し、ゲームのために静的なゲーム世界を創造する効率的な方法を提供します.チェーン形状は、チェーンとリングを作成する方法を提供し、//希望の形状を提供します.チェーン形状ボックス2 dでは、チェーン形状はb 2 chainShapeによって実現される.
///cocos2d-x-3.0alpha0/external/Box2D/Collision/Shapes
//     ,                ,       ,              。
//                      ,              。                ,
//             。         ,             。 Box2d ,      b2ChainShape   。


#ifndef B2_CHAIN_SHAPE_H
#define B2_CHAIN_SHAPE_H

#include <Box2D/Collision/Shapes/b2Shape.h>
//  
class b2EdgeShape;

//                 ,       ,             
//   ,            。         ,        b2Alloc   。
//               
//   :         ,            
//               ,         
class b2ChainShape : public b2Shape
{
public:
    b2ChainShape();     //       
    
    ///     , b2Free     
    ~b2ChainShape();
    
    //      。      
    // *     : vertices :     ,    
    //              count    :      
    void CreateLoop(const b2Vec2* vertices, int32 count);
    
    //           
    //  *     : vertices :     ,    
    //               count    :      
    void CreateChain(const b2Vec2* vertices, int32 count);
    
    //                  
    //                      【     CreateLoop            】
    //  *     : prevVertex :      
    void SetPrevVertex(const b2Vec2& prevVertex);
    
    //                  
    //                     【     CreateLoop            】
    // *     : vertices :      
    void SetNextVertex(const b2Vec2& nextVertex);
    
    // *     :  b2Alloc      
    //                     【     CreateLoop            】
    // *     : allocator : soa    
    // *      :       
    b2Shape* Clone(b2BlockAllocator* allocator) const;
    //             
    /// @see b2Shape::GetChildCount
    int32 GetChildCount() const;
    // :                 
    // *     : edge :b2EdgeShape    
    //              index:   
    /// Get a child edge.
    void GetChildEdge(b2EdgeShape* edge, int32 index) const;
    //                ,         
    //     *     : xf :      
    //                  p  : world       
    //     *      : true :   
    //                  false:  
    //                      false
    /// This always return false.
    /// @see b2Shape::TestPoint
    bool TestPoint(const b2Transform& transform, const b2Vec2& p) const;
    // *     :            
    //   *     : output      :         
    //                input       :      
    //                transform   :         
    //                childeIndex :      
    //   *      : true :   
    //                false:  
    /// Implement b2Shape.
    bool RayCast(b2RayCastOutput* output, const b2RayCastInput& input,
                 const b2Transform& transform, int32 childIndex) const;
    // *     :      ,               (aabb)
    //                     【     CreateLoop            】
    //  *     : aabb       :      aabb  
    //               xf         :        
    //               childIndex :       
    /// @see b2Shape::ComputeAABB
    void ComputeAABB(b2AABB* aabb, const b2Transform& transform, int32 childIndex) const;
    // :               
    //                 Chains    0
    //                        【     CreateLoop            】
    //     *     : massData   :        
    //                  density    :   
    /// Chains have zero mass.
    /// @see b2Shape::ComputeMass
    void ComputeMass(b2MassData* massData, float32 density) const;
    //     
    /// The vertices. Owned by this class.
    b2Vec2* m_vertices;
    
    ///    
    int32 m_count;
    
    b2Vec2 m_prevVertex, m_nextVertex;          //   ,   
    bool m_hasPrevVertex, m_hasNextVertex;      //       ,   
};
//    
inline b2ChainShape::b2ChainShape()
{
    m_type = e_chain;
    m_radius = b2_polygonRadius;
    m_vertices = NULL;
    m_count = 0;
    m_hasPrevVertex = false;
    m_hasNextVertex = false;
}

#endif