23 #ifndef __CU_POLY2_H__
24 #define __CU_POLY2_H__
27 #include <math/CCGeometry.h>
55 #pragma mark Renderer Enums
88 vector<Vec2> _vertices;
90 vector<unsigned short> _indices;
102 void computeBounds();
106 #pragma mark Constructors
122 Poly2(
const vector<Vec2>& vertices) { set(vertices); }
134 Poly2(
const vector<Vec2>& vertices,
const vector<unsigned short>& indices) {
135 set(vertices, indices);
145 Poly2(
const vector<float>& vertices) { set(vertices); }
156 Poly2(
const vector<float>& vertices,
const vector<unsigned short>& indices) {
157 set(vertices, indices);
169 Poly2(Vec2* vertices,
int vertsize,
int voffset=0) {
170 set(vertices, vertsize, voffset);
182 Poly2(
float* vertices,
int vertsize,
int voffset=0) {
183 set(vertices, vertsize, voffset);
199 Poly2(Vec2* vertices,
int vertsize,
unsigned short* indices,
int indxsize,
200 int voffset=0,
int ioffset=0) {
201 set(vertices, vertsize, indices, indxsize, voffset, ioffset);
217 Poly2(
float* vertices,
int vertsize,
unsigned short* indices,
int indxsize,
218 int voffset=0,
int ioffset=0) {
219 set(vertices, vertsize, indices, indxsize, voffset, ioffset);
242 Poly2(
const Rect& rect,
bool index=
true) { set(rect,index); }
250 #pragma mark Initializers
262 Poly2& set(
const vector<Vec2>& vertices);
278 Poly2& set(
const vector<Vec2>& vertices,
const vector<unsigned short>& indices);
291 Poly2& set(
const vector<float>& vertices);
306 Poly2& set(
const vector<float>& vertices,
const vector<unsigned short>& indices);
321 Poly2& set(Vec2* vertices,
int vertsize,
int voffset=0);
336 Poly2&
set(
float* vertices,
int vertsize,
int voffset=0) {
337 return set((Vec2*)vertices, vertsize/2, voffset/2);
357 Poly2& set(Vec2* vertices,
int vertsize,
unsigned short* indices,
int indxsize,
358 int voffset=0,
int ioffset=0);
379 Poly2&
set(
float* vertices,
int vertsize,
unsigned short* indices,
int indxsize,
380 int voffset=0,
int ioffset=0) {
381 return set((Vec2*)vertices, vertsize/2, indices, indxsize, voffset/2, ioffset);
413 Poly2& set(
const Rect& rect,
bool index=
true);
425 Poly2& setLine(
const Vec2& origin,
const Vec2& dest);
438 Poly2& setEllipse(
const Vec2& center,
const Size& size,
unsigned int segments);
441 #pragma mark Index Generation
453 Poly2& setIndices(
const vector<unsigned short>& indices);
471 Poly2& setIndices(
unsigned short* indices,
int indxsize,
int ioffset=0);
483 Poly2& triangulate();
505 Poly2& traverse(Traversal traversal=Traversal::CLOSED);
542 Poly2* extrude(
Poly2& poly,
float stroke,
bool closed=
true, Joint joint=Joint::NONE, Cap cap=Cap::NONE);
545 #pragma mark Accessors
564 const vector<unsigned short>&
getIndices()
const {
return _indices; }
577 #pragma mark Operators
602 Poly2& operator*=(
float scale);
615 Poly2& operator*=(
const Vec2& scale);
627 Poly2& operator*=(
const Mat4& transform);
640 Poly2& operator/=(
float scale);
653 Poly2& operator/=(
const Vec2& scale);
666 Poly2& operator+=(
float offset);
679 Poly2& operator+=(
const Vec2& offset);
692 Poly2& operator-=(
float offset);
705 Poly2& operator-=(
const Vec2& offset);
const vector< Vec2 > & getVertices() const
Definition: CUPoly2.h:554
const Rect & getBounds() const
Definition: CUPoly2.h:574
~Poly2()
Definition: CUPoly2.h:247
Poly2 operator+(const Vec2 &offset) const
Definition: CUPoly2.h:795
Poly2(Vec2 *vertices, int vertsize, unsigned short *indices, int indxsize, int voffset=0, int ioffset=0)
Definition: CUPoly2.h:199
Poly2(const vector< float > &vertices, const vector< unsigned short > &indices)
Definition: CUPoly2.h:156
Poly2 operator/(const Vec2 &scale) const
Definition: CUPoly2.h:769
Poly2(const vector< Vec2 > &vertices)
Definition: CUPoly2.h:122
Poly2 & set(float *vertices, int vertsize, unsigned short *indices, int indxsize, int voffset=0, int ioffset=0)
Definition: CUPoly2.h:379
Poly2(float *vertices, int vertsize, unsigned short *indices, int indxsize, int voffset=0, int ioffset=0)
Definition: CUPoly2.h:217
const vector< unsigned short > & getIndices() const
Definition: CUPoly2.h:564
Poly2 operator-(float offset)
Definition: CUPoly2.h:808
Poly2 & set(float *vertices, int vertsize, int voffset=0)
Definition: CUPoly2.h:336
friend Poly2 operator+(const Vec2 &offset, const Poly2 &poly)
Definition: CUPoly2.h:873
Poly2()
Definition: CUPoly2.h:113
Poly2(float *vertices, int vertsize, int voffset=0)
Definition: CUPoly2.h:182
Poly2 operator*(const Mat4 &transform) const
Definition: CUPoly2.h:743
Poly2 operator-(const Vec2 &offset)
Definition: CUPoly2.h:821
Poly2(Vec2 *vertices, int vertsize, int voffset=0)
Definition: CUPoly2.h:169
Poly2(const Rect &rect, bool index=true)
Definition: CUPoly2.h:242
Poly2 operator+(float offset) const
Definition: CUPoly2.h:782
friend Poly2 operator+(float offset, const Poly2 &poly)
Definition: CUPoly2.h:860
Cap
Definition: CUPoly2.h:77
Joint
Definition: CUPoly2.h:66
Poly2 operator*(const Vec2 &scale) const
Definition: CUPoly2.h:731
Poly2 operator/(float scale) const
Definition: CUPoly2.h:756
Traversal
Definition: CUPoly2.h:57
friend Poly2 operator*(float scale, const Poly2 &poly)
Definition: CUPoly2.h:834
friend Poly2 operator*(const Vec2 &scale, const Poly2 &poly)
Definition: CUPoly2.h:847
Poly2 operator*(float scale) const
Definition: CUPoly2.h:718
Poly2(const vector< float > &vertices)
Definition: CUPoly2.h:145
Poly2(const Poly2 &poly)
Definition: CUPoly2.h:229
Poly2(const vector< Vec2 > &vertices, const vector< unsigned short > &indices)
Definition: CUPoly2.h:134