00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef __GEO_Breakpoint_h__
00022 #define __GEO_Breakpoint_h__
00023
00024 #include "GEO_API.h"
00025 #include <iostream.h>
00026 #include <UT/UT_LinkList.h>
00027 #include <GB/GB_Breakpoint.h>
00028
00029 #include "GEO_Primitive.h"
00030 #include "GEO_PrimType.h"
00031
00032
00033 class GEO_API GEO_Breakpoint : public GB_Breakpoint
00034 {
00035 public:
00036
00037 GEO_Breakpoint(GB_Primitive *prim = 0, int uidx = -1, int vidx = -1) :
00038 GB_Breakpoint( (prim && (prim->getPrimitiveId() & GEOSPLINE)) ? prim:0,
00039 uidx, vidx)
00040 {
00041 }
00042
00043 GEO_Breakpoint(const GEO_Breakpoint &b) : GB_Breakpoint(b) { }
00044 GEO_Breakpoint(const GB_Breakpoint &b) : GB_Breakpoint(b) { }
00045
00046 virtual ~GEO_Breakpoint();
00047
00048
00049 int evaluate(UT_Vector4 &pos, int du=0, int dv=0) const;
00050
00051
00052
00053 int iterateOverCVs(void *data, iterateFuncPtr func);
00054 int iterateOverCVs(void *data, iterateVertexFuncPtr func);
00055
00056
00057
00058
00059
00060 void getKnotIndices(int &ukidx, int &vkidx,
00061 GB_Basis **ubasis_ret=0,
00062 GB_Basis **vbasis_ret=0) const;
00063 void getParameter(float &u, float &v) const;
00064 };
00065
00066 #endif