34        enum ExtrudeMode { eParallel = 0, ePerpendicular, eAdjusted, eTest};
 
   39        shared::Signal<uint64> pointAdded;
 
   40        shared::Signal<uint64> pointRemoved;
 
   41        shared::Signal<uint64> edgeAdded;
 
   42        shared::Signal<uint64> edgeRemoved;
 
   43        shared::Signal<uint64> pointMoved;
 
   44        shared::Signal<uint64> edgeMoved;
 
   45        shared::Signal<uint64> edgePointChanged;
 
   46        shared::Signal<uint64> edgeTypeChanged;
 
   47        shared::Signal<uint64, uint32> edgeControlPointAdded;
 
   48        shared::Signal<uint64, uint32> edgeSizeChanged; 
 
   49        shared::Signal<uint64, double> edgeRatioChanged; 
 
   50        shared::Signal<int32> metaAdded;
 
   51        shared::Signal<int32> metaRemoved;
 
   52        shared::Signal<int32> metaChanged;
 
   54        virtual IThing *        getIThing()=0;
 
   56        virtual const IThing *  getIThing() 
const=0;
 
   59        virtual string         getName() 
const=0;
 
   71        virtual const IContainer *   getPointContainer() 
const=0;
 
   73        virtual const IExtrudePoint *findPointWithID(uint64 
id) 
const=0;
 
   84        virtual const IContainer *   getEdgeContainer() 
const=0;
 
   86        virtual const IExtrudeEdge * findEdgeWithID(uint64 
id) 
const=0;
 
   98        virtual void deletePoint(uint64 pid, uint32* edgeCount = 0) = 0;
 
  100        virtual void deleteEdge(uint64 edgeid) = 0;   
 
  102        virtual int getPointSize() 
const =0;
 
  104        virtual int getEdgeSize() 
const =0;
 
  106        virtual bool valid(std::vector<string> *problems = 
nullptr) 
const=0;
 
  108        virtual bool isValidParameter(std::vector<string>* problems = 
nullptr) 
const = 0;
 
  110        virtual bool isValidGeometry(std::vector<string>* problems = 
nullptr) 
const = 0;
 
  112        virtual bool isContinued() 
const=0;
 
  114        virtual bool isClosed() 
const=0;
 
  120        virtual DVect getPathTangent(uint64 
id, 
double mu, 
DVect vProj) 
const = 0;
 
  124        virtual DVect getPathTangentAtNode(uint64 
id, 
DVect vProj) 
const = 0;
 
  128        virtual void getSegmentLocalAxes(uint64 
id, 
double mu, 
Axes* axe) 
const = 0;
 
  130        virtual void getSegmentLocalAxes(
const IExtrudeEdge* seg, 
double mu, 
Axes* axe) 
const = 0;
 
  133        virtual DVect getSweepPosition(uint64 
id, 
double mu, 
const DVect& pos, 
const uint32& currentView = 0) 
const=0; 
 
  135        virtual bool setOrigin(
const DVect& pos) =0;
 
  137        virtual const DVect& getOrigin() 
const =0;
 
  139        virtual uint32 getPointGroupNotice() 
const=0;
 
  141        virtual uint32 getEdgeGroupNotice() 
const=0;
 
  144        virtual uint32 getSegmentGroupNotice() 
const=0;
 
  146        virtual uint32 getSegmentNodeGroupNotice() 
const=0;
 
  150        virtual void clearMetaData()=0;
 
  152        virtual void setMetaKeyValue(
const string &key, 
const string &value)=0;    
 
  154        virtual int getMetaCount() 
const=0;
 
  156        virtual string getMetaKey(
int index) 
const=0;
 
  158        virtual string getMetaValue(
int index) 
const=0;
 
  160        virtual int findMetaKeyIndex(
const string &key) 
const=0;
 
  162        virtual string findMetaKeyValue(
const string &key) 
const=0;
 
  164        virtual void getGroups(StringMap<StringList>*) 
const = 0;   
 
  166        virtual void getAvailableSlots(
StringList*) 
const = 0;