// // ToyDraggableBrushSprite.h // SteveMaggieCpp // // Created by Katarzyna Kalinowska-Górska on 17.05.2017. // // #ifndef ToyDraggableBrushSprite_h #define ToyDraggableBrushSprite_h #include "ToyPlainSprite.h" #include "ToyGeometryUtils.h" class ToyDraggableBrushSprite : public ToyPlainSprite { public: enum BrushMode { NONE, HORIZONTAL }; const float BRUSH_DEMO_VELOCITY = 160; static ToyDraggableBrushSprite* create(const std::string& filepath); virtual bool initWithFile(const std::string& filepath) override; virtual void loadPropertiesFromJSON(const rapidjson::Value& jsonValue, ToyLayoutViewInterface* scene = NULL, const std::string resFolder = "", const std::string altResFolder = "") override; virtual cocos2d::Rect paintingRect(); virtual ToyGeometryUtils::ThickSegment getSegmentToPaintInRect(cocos2d::Rect rect); virtual std::vector getSegmentsToPaint(cocos2d::Rect previousRect, cocos2d::Rect currentRect); protected: BrushMode _brushMode; float _brushThickness; float _brushWidth; cocos2d::Point _brushPosition; std::vector _demoRoute; friend class ToyColourableSprite; }; #endif /* ToyDraggableBrushSprite_h */