00001
00026 #ifndef __BODYBUILDER__
00027 #define __BODYBUILDER__
00028
00029 #include <Bezier2D.h>
00030 #include <Vector2D.h>
00031 #include <Element2D.h>
00032 #include <Body2D.h>
00033 #include <disableWarnings.h>
00034
00035 namespace sonus
00036 {
00037
00053 class BodyBuilder
00054 {
00055
00056 private:
00057 bool debug;
00058 double drawPosX;
00059 double drawPosY;
00060 int elementCounter;
00061 bool beziersAllowed;
00062 Body2D<Element2D>* body;
00063
00064 public:
00065
00071 BodyBuilder( bool debug = false );
00072
00081 BodyBuilder( Body2D<Element2D>* body, bool beziersAllowed = false, bool debug = false );
00082
00086 ~BodyBuilder();
00087
00094 void resetFocus( Body2D<Element2D>* body, bool beziersAllowed = false );
00095
00101 void addVector( Vector2D* vector2d );
00102
00110 void addVectorAbs( double x, double y );
00111
00118 void addVectorRel( double x, double y );
00119
00127 void addVectorAbsHor( double x );
00128
00136 void addVectorRelHor( double x );
00137
00145 void addVectorAbsVer( double y );
00146
00154 void addVectorRelVer( double y );
00155
00159 void close();
00160
00166 void addBezier( Bezier2D* bezier2d );
00167
00179 void addBezierAbs( double p1X, double p1Y, double p2X, double p2Y, double p3X, double p3Y );
00180
00192 void addBezierRel( double p1X, double p1Y, double p2X, double p2Y, double p3X, double p3Y );
00193
00204 void addBezierAbsSmooth( double p2X, double p2Y, double p3X, double p3Y );
00205
00216 void addBezierRelSmooth( double p2X, double p2Y, double p3X, double p3Y );
00217
00222 void printElements();
00223 };
00224 }
00225
00226 #endif