MasterHandler ObjectLoader Classes Table of Contents

MeshDataEdit

typedef struct st_GCoreVertex *     EDPntID;
typedef struct st_GCorePolygon *    EDPolID;
typedef struct st_MeshEditState *   EDStateRef;

typedef struct st_EDPointInfo {
   EDPntID        pnt;
   void          *userData;
   int            layer;
   int            flags;
   double         position[3];
} EDPointInfo;

typedef struct st_EDPolygonInfo {
   EDPolID        pol;
   void          *userData;
   int            layer;
   int            flags;
   int            numPnts;
   const EDPntID *points;
   const char    *surface;
   unsigned long  type;
} EDPolygonInfo;

#define EDDF_SELECT  (1<<0) #define EDDF_DELETE (1<<1) #define EDPF_CCEND (1<<2) #define EDPF_CCSTART (1<<3) typedef int EDError; #define EDERR_NONE 0 #define EDERR_NOMEMORY 1 #define EDERR_BADLAYER 2 #define EDERR_BADSURF 3 #define EDERR_USERABORT 4 #define EDERR_BADARGS 5 #define EDSELM_CLEARCURRENT (1<<0) #define EDSELM_SELECTNEW (1<<1) #define EDSELM_FORCEVRTS (1<<2) #define EDSELM_FORCEPOLS (1<<3) #define EDCOUNT_ALL 0 #define EDCOUNT_SELECT 1 #define EDCOUNT_DELETE 2 typedef EDError EDPointScanFunc (void *, const EDPointInfo *); typedef EDError EDPolyScanFunc (void *, const EDPolygonInfo *); typedef struct st_EDBoundCv { EDPolID curve; int start, end; } EDBoundCv; typedef struct st_MeshEditOp { EDStateRef state; int layerNum; void (*done) (EDStateRef, EDError, int selm); int (*pointCount) (EDStateRef, EltOpLayer, int mode); int (*polyCount) (EDStateRef, EltOpLayer, int mode); EDError (*pointScan) (EDStateRef, EDPointScanFunc *, void *, EltOpLayer); EDError (*polyScan) (EDStateRef, EDPolyScanFunc *, void *, EltOpLayer); EDPointInfo * (*pointInfo) (EDStateRef, EDPntID); EDPolygonInfo * (*polyInfo) (EDStateRef, EDPolID); int (*polyNormal) (EDStateRef, EDPolID, double[3]); EDPntID (*addPoint) (EDStateRef, double *xyz); EDPolID (*addPoly) (EDStateRef, const char *surf, int numPnt, const EDPntID *); EDPolID (*addCurve) (EDStateRef, const char *surf, int numPnt, const EDPntID *, int flags); EDError (*addQuad) (EDStateRef, EDPntID, EDPntID, EDPntID, EDPntID); EDError (*addTri) (EDStateRef, EDPntID, EDPntID, EDPntID); EDError (*addPatch) (EDStateRef, int nr, int nc, int lr, int lc, EDBoundCv *r0, EDBoundCv *r1, EDBoundCv *c0, EDBoundCv *c1); EDError (*remPoint) (EDStateRef, EDPntID); EDError (*remPoly) (EDStateRef, EDPolID); EDError (*pntMove) (EDStateRef, EDPntID, const double *); EDError (*polSurf) (EDStateRef, EDPolID, const char *); EDError (*polPnts) (EDStateRef, EDPolID, int, const EDPntID *); EDError (*polFlag) (EDStateRef, EDPolID, int mask, int value); } MeshEditOp; typedef MeshEditOp *MeshEditBegin (int pntBuf, int polBuf, EltOpSelect);