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/intern/subsurf_ccg.c')
-rw-r--r--source/blender/blenkernel/intern/subsurf_ccg.c377
1 files changed, 0 insertions, 377 deletions
diff --git a/source/blender/blenkernel/intern/subsurf_ccg.c b/source/blender/blenkernel/intern/subsurf_ccg.c
index c1689474c7b..67e09cde3cd 100644
--- a/source/blender/blenkernel/intern/subsurf_ccg.c
+++ b/source/blender/blenkernel/intern/subsurf_ccg.c
@@ -517,383 +517,6 @@ static DerivedMesh *ss_to_cdderivedmesh(CCGSubSurf *ss, int ssFromEditmesh,
CDDM_calc_normals(result);
return result;
-#if 0
- DerivedMesh *result;
- int edgeSize = ccgSubSurf_getEdgeSize(ss);
- int gridSize = ccgSubSurf_getGridSize(ss);
- int gridFaces = gridSize - 1;
- int edgeBase, faceBase;
- int i, j, k, S, x, y, index;
- int *vertIdx = NULL;
- BLI_array_declare(vertIdx);
- CCGVertIterator *vi;
- CCGEdgeIterator *ei;
- CCGFaceIterator *fi;
- CCGFace **faceMap2;
- CCGEdge **edgeMap2;
- CCGVert **vertMap2;
- int totvert, totedge, totface;
- MVert *mvert;
- MEdge *med;
- float *w = NULL;
- WeightTable wtable;
- BLI_array_declare(w);
- MFace *mf;
- int *origIndex;
-
- memset(&wtable, 0, sizeof(wtable));
-
- /* vert map */
- totvert = ccgSubSurf_getNumVerts(ss);
- vertMap2 = MEM_mallocN(totvert*sizeof(*vertMap2), "vertmap");
- vi = ccgSubSurf_getVertIterator(ss);
- for(; !ccgVertIterator_isStopped(vi); ccgVertIterator_next(vi)) {
- CCGVert *v = ccgVertIterator_getCurrent(vi);
-
- vertMap2[GET_INT_FROM_POINTER(ccgSubSurf_getVertVertHandle(v))] = v;
- }
- ccgVertIterator_free(vi);
-
- totedge = ccgSubSurf_getNumEdges(ss);
- edgeMap2 = MEM_mallocN(totedge*sizeof(*edgeMap2), "edgemap");
- ei = ccgSubSurf_getEdgeIterator(ss);
- for(; !ccgEdgeIterator_isStopped(ei); ccgEdgeIterator_next(ei)) {
- CCGEdge *e = ccgEdgeIterator_getCurrent(ei);
-
- edgeMap2[GET_INT_FROM_POINTER(ccgSubSurf_getEdgeEdgeHandle(e))] = e;
- }
-
- totface = ccgSubSurf_getNumFaces(ss);
- faceMap2 = MEM_mallocN(totface*sizeof(*faceMap2), "facemap");
- fi = ccgSubSurf_getFaceIterator(ss);
- for(; !ccgFaceIterator_isStopped(fi); ccgFaceIterator_next(fi)) {
- CCGFace *f = ccgFaceIterator_getCurrent(fi);
-
- faceMap2[GET_INT_FROM_POINTER(ccgSubSurf_getFaceFaceHandle(ss, f))] = f;
- }
- ccgFaceIterator_free(fi);
-
- if(ms) {
- result = MultiresDM_new(ms, dm, ccgSubSurf_getNumFinalVerts(ss),
- ccgSubSurf_getNumFinalEdges(ss),
- ccgSubSurf_getNumFinalFaces(ss), 0, 0);
- }
- else {
- if(dm) {
- result = CDDM_from_template(dm, ccgSubSurf_getNumFinalVerts(ss),
- ccgSubSurf_getNumFinalEdges(ss),
- ccgSubSurf_getNumFinalFaces(ss), 0, 0);
- } else {
- result = CDDM_new(ccgSubSurf_getNumFinalVerts(ss),
- ccgSubSurf_getNumFinalEdges(ss),
- ccgSubSurf_getNumFinalFaces(ss), 0, 0);
- }
- }
-
- // load verts
- faceBase = i = 0;
- mvert = CDDM_get_verts(result);
- origIndex = result->getVertData(result, 0, CD_ORIGINDEX);
-
- for(index = 0; index < totface; index++) {
- CCGFace *f = faceMap2[index];
- int x, y, S, numVerts = ccgSubSurf_getFaceNumVerts(f);
- FaceVertWeight *weight = 0;//get_ss_weights(&wtable, gridFaces-1, numVerts);
-
- BLI_array_empty(vertIdx);
-
- for(S = 0; S < numVerts; S++) {
- CCGVert *v = ccgSubSurf_getFaceVert(ss, f, S);
- BLI_array_growone(vertIdx);
-
- vertIdx[S] = GET_INT_FROM_POINTER(ccgSubSurf_getVertVertHandle(v));
- }
-
-#if 0
- DM_interp_vert_data(dm, result, vertIdx, weight[0][0], numVerts, i);
-#endif
- copy_v3_v3(mvert->co, ccgSubSurf_getFaceCenterData(f));
- *origIndex = ORIGINDEX_NONE;
- ++mvert;
- ++origIndex;
- i++;
-
- BLI_array_empty(w);
- for (x=0; x<numVerts; x++) {
- BLI_array_growone(w);
- }
-
- for(S = 0; S < numVerts; S++) {
- int prevS = (S - 1 + numVerts) % numVerts;
- int nextS = (S + 1) % numVerts;
- int otherS = (numVerts >= 4) ? (S + 2) % numVerts : 3;
-
- for(x = 1; x < gridFaces; x++) {
-#if 0
- w[prevS] = weight[x][0][0];
- w[S] = weight[x][0][1];
- w[nextS] = weight[x][0][2];
- w[otherS] = weight[x][0][3];
-
- DM_interp_vert_data(dm, result, vertIdx, w, numVerts, i);
-#endif
- copy_v3_v3(mvert->co,
- ccgSubSurf_getFaceGridEdgeData(ss, f, S, x));
-
- *origIndex = ORIGINDEX_NONE;
- ++mvert;
- ++origIndex;
- i++;
- }
- }
-
- BLI_array_empty(w);
- for (x=0; x<numVerts; x++) {
- BLI_array_growone(w);
- }
-
- for(S = 0; S < numVerts; S++) {
- int prevS = (S - 1 + numVerts) % numVerts;
- int nextS = (S + 1) % numVerts;
- int otherS = (numVerts == 4) ? (S + 2) % numVerts : 3;
-
- for(y = 1; y < gridFaces; y++) {
- for(x = 1; x < gridFaces; x++) {
-#if 0
- w[prevS] = weight[y * gridFaces + x][0][0];
- w[S] = weight[y * gridFaces + x][0][1];
- w[nextS] = weight[y * gridFaces + x][0][2];
- w[otherS] = weight[y * gridFaces + x][0][3];
- DM_interp_vert_data(dm, result, vertIdx, w, numVerts, i);
-#endif
-
- copy_v3_v3(mvert->co,
- ccgSubSurf_getFaceGridData(ss, f, S, x, y));
- *origIndex = ORIGINDEX_NONE;
- ++mvert;
- ++origIndex;
- i++;
- }
- }
- }
- *((int*)ccgSubSurf_getFaceUserData(ss, f)) = faceBase;
- faceBase += 1 + numVerts * ((gridSize-2) + (gridSize-2) * (gridSize-2));
- }
-
- edgeBase = i;
- for(index = 0; index < totedge; index++) {
- CCGEdge *e = edgeMap2[index];
- int x;
- int vertIdx[2];
-
- CCGVert *v;
- v = ccgSubSurf_getEdgeVert0(e);
- vertIdx[0] = GET_INT_FROM_POINTER(ccgSubSurf_getVertVertHandle(v));
- v = ccgSubSurf_getEdgeVert1(e);
- vertIdx[1] = GET_INT_FROM_POINTER(ccgSubSurf_getVertVertHandle(v));
-
- for(x = 1; x < edgeSize - 1; x++) {
- float w2[2];
-
- w2[1] = (float) x / (edgeSize - 1);
- w2[0] = 1 - w2[1];
- DM_interp_vert_data(dm, result, vertIdx, w2, 2, i);
-
- copy_v3_v3(mvert->co, ccgSubSurf_getEdgeData(ss, e, x));
- *origIndex = ORIGINDEX_NONE;
- ++mvert;
- ++origIndex;
- i++;
- }
-
- *((int*)ccgSubSurf_getEdgeUserData(ss, e)) = edgeBase;
- edgeBase += edgeSize-2;
- }
-
- for(index = 0; index < totvert; index++) {
- CCGVert *v = vertMap2[index];
- int vertIdx;
-
- vertIdx = GET_INT_FROM_POINTER(ccgSubSurf_getVertVertHandle(v));
-
- DM_copy_vert_data(dm, result, vertIdx, i, 1);
- copy_v3_v3(mvert->co, ccgSubSurf_getVertData(ss, v));
-
- *((int*)ccgSubSurf_getVertUserData(ss, v)) = i;
- *origIndex = ccgDM_getVertMapIndex(ss, v);
- ++mvert;
- ++origIndex;
- i++;
- }
-
- // load edges
- i = 0;
- med = CDDM_get_edges(result);
- origIndex = result->getEdgeData(result, 0, CD_ORIGINDEX);
-
- for(index = 0; index < totface; index++) {
- CCGFace *f = faceMap2[index];
- int numVerts = ccgSubSurf_getFaceNumVerts(f);
-
- for(k = 0; k < numVerts; k++) {
- for(x = 0; x < gridFaces; x++) {
- if(drawInteriorEdges) med->flag = ME_EDGEDRAW | ME_EDGERENDER;
- med->v1 = getFaceIndex(ss, f, k, x, 0, edgeSize, gridSize);
- med->v2 = getFaceIndex(ss, f, k, x+1, 0, edgeSize, gridSize);
- *origIndex = ORIGINDEX_NONE;
- ++med;
- ++origIndex;
- i++;
- }
-
- for(x = 1; x < gridFaces; x++) {
- for(y = 0; y < gridFaces; y++) {
- if(drawInteriorEdges)
- med->flag = ME_EDGEDRAW | ME_EDGERENDER;
- med->v1 = getFaceIndex(ss, f, k, x, y, edgeSize, gridSize);
- med->v2 = getFaceIndex(ss, f, k, x, y + 1,
- edgeSize, gridSize);
- *origIndex = ORIGINDEX_NONE;
- ++med;
- ++origIndex;
- i++;
-
- if(drawInteriorEdges)
- med->flag = ME_EDGEDRAW | ME_EDGERENDER;
- med->v1 = getFaceIndex(ss, f, k, y, x, edgeSize, gridSize);
- med->v2 = getFaceIndex(ss, f, k, y + 1, x,
- edgeSize, gridSize);
- *origIndex = ORIGINDEX_NONE;
- ++med;
- ++origIndex;
- i++;
- }
- }
- }
- }
-
- for(index = 0; index < totedge; index++) {
- CCGEdge *e = edgeMap2[index];
- unsigned int flags = 0;
- char bweight = 0;
- int edgeIdx = GET_INT_FROM_POINTER(ccgSubSurf_getEdgeEdgeHandle(e));
-
- if(!ccgSubSurf_getEdgeNumFaces(e)) flags |= ME_LOOSEEDGE;
-
-
- if(edgeIdx != -1 && dm) {
- MEdge origMed;
- dm->getEdge(dm, edgeIdx, &origMed);
-
- flags |= origMed.flag;
- bweight = origMed.bweight;
- }
-
- for(x = 0; x < edgeSize - 1; x++) {
- med->v1 = getEdgeIndex(ss, e, x, edgeSize);
- med->v2 = getEdgeIndex(ss, e, x + 1, edgeSize);
- med->flag = flags;
- med->bweight = bweight;
- *origIndex = ccgDM_getEdgeMapIndex(ss, e);
- ++med;
- ++origIndex;
- i++;
- }
- }
-
- // load faces
- i = 0;
- mf = CDDM_get_tessfaces(result);
- origIndex = result->getTessFaceData(result, 0, CD_ORIGINDEX);
-
- for(index = 0; index < totface; index++) {
- CCGFace *f = faceMap2[index];
- int numVerts = ccgSubSurf_getFaceNumVerts(f);
- int mat_nr;
- int flag;
- int mapIndex = ccgDM_getFaceMapIndex(ss, f);
- int faceIdx = GET_INT_FROM_POINTER(ccgSubSurf_getFaceFaceHandle(ss, f));
-
- if(!ssFromEditmesh) {
- MFace origMFace;
- dm->getTessFace(dm, faceIdx, &origMFace);
-
- mat_nr = origMFace.mat_nr;
- flag = origMFace.flag;
- } else {
- BMFace *ef = ccgSubSurf_getFaceFaceHandle(ss, f);
- mat_nr = ef->mat_nr;
- flag = BMFlags_To_MEFlags(ef);
- }
-
- for(S = 0; S < numVerts; S++) {
- FaceVertWeight *weight = 0;//get_ss_weights(&wtable, gridFaces-1, numVerts);
-
- for(y = 0; y < gridFaces; y++) {
- for(x = 0; x < gridFaces; x++) {
- mf->v1 = getFaceIndex(ss, f, S, x + 0, y + 0,
- edgeSize, gridSize);
- mf->v2 = getFaceIndex(ss, f, S, x + 0, y + 1,
- edgeSize, gridSize);
- mf->v3 = getFaceIndex(ss, f, S, x + 1, y + 1,
- edgeSize, gridSize);
- mf->v4 = getFaceIndex(ss, f, S, x + 1, y + 0,
- edgeSize, gridSize);
- mf->mat_nr = mat_nr;
- mf->flag = flag;
-#if 0 //BMESH_TODO
- if(dm) {
- int prevS = (S - 1 + numVerts) % numVerts;
- int nextS = (S + 1) % numVerts;
- int otherS = (numVerts == 4) ? (S + 2) % numVerts : 3;
- FaceVertWeight w;
-
- for(j = 0; j < 4; ++j) {
- w[j][prevS] = (*weight)[j][0];
- w[j][S] = (*weight)[j][1];
- w[j][nextS] = (*weight)[j][2];
- w[j][otherS] = (*weight)[j][3];
- }
-
- DM_interp_tessface_data(dm, result, &faceIdx, NULL,
- &w, 1, i);
- weight++;
- }
-#endif
-
- *origIndex = mapIndex;
- ++mf;
- ++origIndex;
- i++;
- }
- }
- }
- }
-
- MEM_freeN(faceMap2);
- MEM_freeN(edgeMap2);
- MEM_freeN(vertMap2);
-
- free_ss_weights(&wtable);
-
- BLI_array_free(vertIdx);
-
- if(useSubsurfUv) {
- CustomData *fdata = &result->faceData;
- CustomData *dmfdata = &dm->faceData;
- int numlayer = CustomData_number_of_layers(fdata, CD_MTFACE);
- int dmnumlayer = CustomData_number_of_layers(dmfdata, CD_MTFACE);
-
- for (i=0; i<numlayer && i<dmnumlayer; i++)
- set_subsurf_uv(ss, dm, result, i);
- }
-
- CDDM_calc_normals(result);
- CDDM_tessfaces_to_faces(result);
-
- BLI_array_free(w);
- return result;
-#endif
}
static int ss_sync_from_derivedmesh(CCGSubSurf *ss, DerivedMesh *dm,