source: GTP/trunk/Lib/Geom/shared/GTGeometry/src/libs/vmi/include/change.h @ 1007

Revision 1007, 1.9 KB checked in by gumbau, 18 years ago (diff)
Line 
1#ifndef __change_h_
2#define __change_h_
3
4#include        "mesh.h"
5#include        <vector>
6
7namespace       VMI
8{
9        typedef struct change
10        {
11                int e;
12                int u, v;           // Edge
13                int numDel;         // Number of deleted triangles
14                Triangle *deleted;  // List of deleted triangles
15                int numMod;         // Number of modified triangles
16                Triangle *modified; // List of triangles deleted 
17        } Change;
18
19        // Represents a simplification step in the sequence.
20        struct vmiStep
21        {
22                unsigned int    mV0;
23                unsigned int    mV1;
24                unsigned int    mT0;
25                unsigned int    mT1;
26                float x;
27                float   y;
28                float   z;
29               
30                std::vector<unsigned int>       mModfaces;
31
32                //      Indicates the the step is obligatory to execute
33                //      joined width the following step.
34                unsigned int obligatory;
35        };
36
37        // Stores all the simplification steps.
38        extern  std::vector<vmiStep> mVMISteps;
39
40        extern Change *createChange (Mesh *mesh, int e);
41        extern void writeChange(FILE* file, Change *c);
42        extern void deleteChange(Change *c);
43        extern void printChange(Change *c);
44
45        extern void modifyTriangle(Triangle *t, int c, int p);
46        extern int isATriangleToModify(Triangle *t, int c, int p);
47        extern int getTrianglesToModify(Mesh *mesh, int c, int p, Triangle *modified);
48        extern int isATriangleToDelete(Triangle *t, int c, int p);
49        extern int getTrianglesToDelete(Mesh *mesh, int numMod, Triangle *modified, Triangle *deleted, int c, int p);
50
51        extern void modifyTriangles(Mesh *mesh, Change *c);
52        extern void unmodifyTriangles(Mesh *mesh, Change *c);
53        extern void deleteTriangles(Mesh *mesh, Change *c);
54        extern void undeleteTriangles(Mesh *mesh, Change *c);
55
56        extern void printList(Triangle *list, int n);
57        extern void deleteItem(Triangle *list, int *n, int item);
58
59        extern void doChange(Mesh *mesh, Change *c);
60        extern void undoChange(Mesh *mesh, Change *c);
61        extern void computeChanges(Mesh *mesh, Change *c);
62
63        //      Save simplification sequence in Geometry Game Tools format.
64        extern void     saveSimplificationSequence(Change       *c);
65}
66
67#endif
Note: See TracBrowser for help on using the repository browser.