44 #ifndef __CU_PATH_EXTRUDER_H__
45 #define __CU_PATH_EXTRUDER_H__
47 #include "../CUPoly2.h"
48 #include "../CUVec2.h"
133 std::vector<Vec2> _input;
138 std::vector<Vec2> _outverts;
140 std::vector<unsigned short> _outindx;
145 #pragma mark Constructors
161 PathExtruder(
const std::vector<Vec2>& points,
bool closed) : _calculated(false) {
162 _input = points; _closed = closed;
185 #pragma mark Initialization
215 void set(
const std::vector<Vec2>& points,
bool closed) {
226 _outverts.clear(); _outindx.clear();
237 _input.clear(); _outverts.clear(); _outindx.clear();
241 #pragma mark Calculation
269 #pragma mark Materialization
301 #pragma mark Internal Data Generation
318 unsigned int computeSize(
PathJoint joint,
PathCap cap,
unsigned int* vcount,
unsigned int* icount);
330 void makeSegment(
const Vec2& a,
const Vec2& b, KivyData* data);
343 bool makeJoint(
const Vec2& a, KivyData* data);
357 bool makeMitreJoint(
const Vec2& a,
float jangle, KivyData* data);
371 bool makeBevelJoint(
const Vec2& a,
float jangle, KivyData* data);
385 bool makeRoundJoint(
const Vec2& a,
float jangle, KivyData* data);
396 void makeCaps(
int count, KivyData* data);
407 void makeSquareCaps(
int count, KivyData* data);
418 void makeRoundCaps(
int count, KivyData* data);
430 bool makeLastJoint(KivyData* data);
PathExtruder(const std::vector< Vec2 > &points, bool closed)
Definition: CUPathExtruder.h:161
void set(const std::vector< Vec2 > &points, bool closed)
Definition: CUPathExtruder.h:215
PathJoint
Definition: CUPathExtruder.h:65
Definition: CUPoly2.h:115
void reset()
Definition: CUPathExtruder.h:224
~PathExtruder()
Definition: CUPathExtruder.h:182
void calculate(float stroke, PathJoint joint=PathJoint::ROUND, PathCap cap=PathCap::ROUND)
PathExtruder()
Definition: CUPathExtruder.h:150
void clear()
Definition: CUPathExtruder.h:235
PathCap
Definition: CUPathExtruder.h:85
Definition: CUPathExtruder.h:129
void set(const Poly2 &poly)
PathExtruder(const Poly2 &poly)
Definition: CUPathExtruder.h:177
Definition: CUAnimationNode.h:52