123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284 |
-
- #ifndef __CCARMATURE_H__
- #define __CCARMATURE_H__
- #include "editor-support/cocostudio/CCArmatureDefine.h"
- #include "editor-support/cocostudio/CCBone.h"
- #include "editor-support/cocostudio/CCBatchNode.h"
- #include "editor-support/cocostudio/CCArmatureAnimation.h"
- #include "editor-support/cocostudio/CCSpriteFrameCacheHelper.h"
- #include "editor-support/cocostudio/CCArmatureDataManager.h"
- #include "editor-support/cocostudio/CocosStudioExport.h"
- #include "math/CCMath.h"
- class b2Body;
- struct cpBody;
- namespace cocostudio {
- CC_DEPRECATED_ATTRIBUTE typedef ProcessBase CCProcessBase;
- CC_DEPRECATED_ATTRIBUTE typedef BaseData CCBaseData;
- CC_DEPRECATED_ATTRIBUTE typedef DisplayData CCDisplayData;
- CC_DEPRECATED_ATTRIBUTE typedef SpriteDisplayData CCSpriteDisplayData;
- CC_DEPRECATED_ATTRIBUTE typedef ArmatureDisplayData CCArmatureDisplayData;
- CC_DEPRECATED_ATTRIBUTE typedef ParticleDisplayData CCParticleDisplayData;
- CC_DEPRECATED_ATTRIBUTE typedef BoneData CCBoneData;
- CC_DEPRECATED_ATTRIBUTE typedef FrameData CCFrameData;
- CC_DEPRECATED_ATTRIBUTE typedef MovementBoneData CCMovementBoneData;
- CC_DEPRECATED_ATTRIBUTE typedef MovementData CCMovementData;
- CC_DEPRECATED_ATTRIBUTE typedef AnimationData CCAnimationData;
- CC_DEPRECATED_ATTRIBUTE typedef ContourData CCContourData;
- CC_DEPRECATED_ATTRIBUTE typedef TextureData CCTextureData;
- CC_DEPRECATED_ATTRIBUTE typedef DecorativeDisplay CCDecorativeDisplay;
- CC_DEPRECATED_ATTRIBUTE typedef DisplayData CCDisplayData;
- CC_DEPRECATED_ATTRIBUTE typedef DisplayFactory CCDisplayFactory;
- CC_DEPRECATED_ATTRIBUTE typedef BatchNode CCBatchNode;
- CC_DEPRECATED_ATTRIBUTE typedef DecorativeDisplay CCDecorativeDisplay;
- CC_DEPRECATED_ATTRIBUTE typedef DisplayManager CCDisplayManager;
- CC_DEPRECATED_ATTRIBUTE typedef ColliderBody CCColliderBody;
- CC_DEPRECATED_ATTRIBUTE typedef ColliderDetector CCColliderDetector;
- CC_DEPRECATED_ATTRIBUTE typedef SpriteFrameCacheHelper CCSpriteFrameCacheHelper;
- CC_DEPRECATED_ATTRIBUTE typedef ArmatureData CCArmatureData;
- CC_DEPRECATED_ATTRIBUTE typedef Bone CCBone;
- CC_DEPRECATED_ATTRIBUTE typedef ArmatureAnimation CCArmatureAnimation;
- CC_DEPRECATED_ATTRIBUTE typedef Armature CCArmature;
- CC_DEPRECATED_ATTRIBUTE typedef ArmatureDataManager CCArmatureDataManager;
- CC_DEPRECATED_ATTRIBUTE typedef cocos2d::tweenfunc::TweenType CCTweenType;
- class CC_STUDIO_DLL Armature : public cocos2d::Node, public cocos2d::BlendProtocol
- {
- public:
-
- static Armature *create();
-
- static Armature *create(const std::string& name);
- static Armature *create(const std::string& name, Bone *parentBone);
- public:
-
- Armature();
-
- virtual ~Armature(void);
-
- virtual bool init() override;
-
- virtual bool init(const std::string& name);
- virtual bool init(const std::string& name, Bone *parentBone);
-
- virtual void addBone(Bone *bone, const std::string& parentName);
-
- virtual Bone *getBone(const std::string& name) const;
-
- virtual void changeBoneParent(Bone *bone, const std::string& parentName);
-
- virtual void removeBone(Bone *bone, bool recursion);
-
- const cocos2d::Map<std::string, Bone*>& getBoneDic() const;
-
- virtual cocos2d::Rect getBoundingBox() const override;
- Bone *getBoneAtPoint(float x, float y) const;
-
-
- virtual void visit(cocos2d::Renderer *renderer, const cocos2d::Mat4 &parentTransform, uint32_t parentFlags) override;
- virtual void draw(cocos2d::Renderer *renderer, const cocos2d::Mat4 &transform, uint32_t flags) override;
- virtual void update(float dt) override;
- virtual void onEnter() override;
- virtual void onExit() override;
- virtual const cocos2d::Mat4& getNodeToParentTransform() const override;
-
- inline void setBlendFunc(const cocos2d::BlendFunc &blendFunc) override { _blendFunc = blendFunc; }
-
- inline const cocos2d::BlendFunc &getBlendFunc(void) const override{ return _blendFunc; }
-
-
- virtual void updateOffsetPoint();
- virtual void setAnchorPoint(const cocos2d::Vec2& point) override;
- virtual const cocos2d::Vec2& getAnchorPointInPoints() const override;
- virtual const cocos2d::Vec2& getOffsetPoints() const;
- virtual void setAnimation(ArmatureAnimation *animation);
- virtual ArmatureAnimation *getAnimation() const;
-
- virtual bool getArmatureTransformDirty() const;
- #if ENABLE_PHYSICS_BOX2D_DETECT || ENABLE_PHYSICS_CHIPMUNK_DETECT
- virtual void setColliderFilter(ColliderFilter *filter);
- #elif ENABLE_PHYSICS_SAVE_CALCULATED_VERTEX
- CC_DEPRECATED_ATTRIBUTE virtual void drawContour();
- #endif
- virtual void setArmatureData(ArmatureData *armatureData) { _armatureData = armatureData; }
- virtual ArmatureData *getArmatureData() const { return _armatureData; }
- virtual void setParentBone(Bone *parentBone);
- virtual Bone *getParentBone() const;
- virtual void setVersion(float version) { _version = version; }
- virtual float getVersion() const { return _version; }
- virtual void setBatchNode(BatchNode *batchNode) { _batchNode = batchNode; }
- virtual BatchNode *getBatchNode() const { return _batchNode; }
- #if ENABLE_PHYSICS_BOX2D_DETECT
- virtual b2Fixture *getShapeList();
-
- virtual void setBody(b2Body *body);
-
- virtual b2Body *getBody() const;
- #elif ENABLE_PHYSICS_CHIPMUNK_DETECT
-
- virtual cpShape *getShapeList();
-
- virtual void setBody(cpBody *body);
-
- virtual cpBody *getBody() const;
- #endif
- protected:
-
- Bone *createBone(const std::string& boneName );
- protected:
- ArmatureData *_armatureData;
- BatchNode *_batchNode;
- Bone *_parentBone;
- float _version;
- mutable bool _armatureTransformDirty;
- cocos2d::Map<std::string, Bone*> _boneDic;
- cocos2d::Vector<Bone*> _topBoneList;
- cocos2d::BlendFunc _blendFunc;
- cocos2d::Vec2 _offsetPoint;
- cocos2d::Vec2 _realAnchorPointInPoints;
- ArmatureAnimation *_animation;
- #if ENABLE_PHYSICS_BOX2D_DETECT
- b2Body *_body;
- #elif ENABLE_PHYSICS_CHIPMUNK_DETECT
- cpBody *_body;
- #endif
- };
- }
- #endif
|