Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/blenkernel/BKE_subsurf.h')
-rw-r--r--source/blender/blenkernel/BKE_subsurf.h59
1 files changed, 52 insertions, 7 deletions
diff --git a/source/blender/blenkernel/BKE_subsurf.h b/source/blender/blenkernel/BKE_subsurf.h
index f6dc22f650a..a0db944530e 100644
--- a/source/blender/blenkernel/BKE_subsurf.h
+++ b/source/blender/blenkernel/BKE_subsurf.h
@@ -34,21 +34,66 @@ struct DerivedMesh;
struct EditMesh;
struct MultiresSubsurf;
struct SubsurfModifierData;
+struct _CCGSubsurf;
+struct _CCGVert;
+struct _CCGEdge;
+struct _CCGFace;
+struct EdgeHash;
+struct PBVH;
+struct DMGridData;
+struct DMGridAdjacency;
-struct DerivedMesh *subsurf_make_derived_from_derived(
- struct DerivedMesh *dm,
- struct SubsurfModifierData *smd,
- int useRenderParams, float (*vertCos)[3],
- int isFinalCalc, int editMode);
+/**************************** External *****************************/
-struct DerivedMesh *subsurf_make_derived_from_derived_with_multires(
+struct DerivedMesh *subsurf_make_derived_from_derived(
struct DerivedMesh *dm,
struct SubsurfModifierData *smd,
- struct MultiresSubsurf *ms,
int useRenderParams, float (*vertCos)[3],
int isFinalCalc, int editMode);
void subsurf_calculate_limit_positions(Mesh *me, float (*positions_r)[3]);
+/**************************** Internal *****************************/
+
+typedef struct CCGDerivedMesh {
+ DerivedMesh dm;
+
+ struct _CCGSubSurf *ss;
+ int freeSS;
+ int drawInteriorEdges, useSubsurfUv;
+
+ struct {int startVert; struct _CCGVert *vert;} *vertMap;
+ struct {int startVert; int startEdge; struct _CCGEdge *edge;} *edgeMap;
+ struct {int startVert; int startEdge;
+ int startFace; struct _CCGFace *face;} *faceMap;
+
+ short *edgeFlags;
+ char *faceFlags;
+
+ int *reverseFaceMap;
+
+ struct PBVH *pbvh;
+
+ struct DMGridData **gridData;
+ struct DMGridAdjacency *gridAdjacency;
+ int *gridOffset;
+ struct _CCGFace **gridFaces;
+
+ struct {
+ struct MultiresModifierData *mmd;
+ int local_mmd;
+
+ int lvl, totlvl;
+ float (*orco)[3];
+
+ Object *ob;
+ int modified;
+
+ void (*update)(DerivedMesh*);
+ } multires;
+
+ struct EdgeHash *ehash;
+} CCGDerivedMesh;
+
#endif