diff options
Diffstat (limited to 'source/blender/editors/armature/reeb.c')
-rw-r--r-- | source/blender/editors/armature/reeb.c | 124 |
1 files changed, 62 insertions, 62 deletions
diff --git a/source/blender/editors/armature/reeb.c b/source/blender/editors/armature/reeb.c index 38e23a3d456..5acdd013fb9 100644 --- a/source/blender/editors/armature/reeb.c +++ b/source/blender/editors/armature/reeb.c @@ -60,8 +60,8 @@ #include "reeb.h" -ReebGraph *GLOBAL_RG = NULL; -ReebGraph *FILTERED_RG = NULL; +static ReebGraph *GLOBAL_RG = NULL; +static ReebGraph *FILTERED_RG = NULL; /* * Skeleton generation algorithm based on: @@ -113,7 +113,7 @@ void flipArcBuckets(ReebArc *arc); /***************************************** UTILS **********************************************/ -VertexData *allocVertexData(EditMesh *em) +static VertexData *allocVertexData(EditMesh *em) { VertexData *data; EditVert *eve; @@ -133,27 +133,27 @@ VertexData *allocVertexData(EditMesh *em) return data; } -int indexData(EditVert *eve) +static int indexData(EditVert *eve) { return ((VertexData*)eve->tmp.p)->i; } -float weightData(EditVert *eve) +static float weightData(EditVert *eve) { return ((VertexData*)eve->tmp.p)->w; } -void weightSetData(EditVert *eve, float w) +static void weightSetData(EditVert *eve, float w) { ((VertexData*)eve->tmp.p)->w = w; } -ReebNode* nodeData(EditVert *eve) +static ReebNode* nodeData(EditVert *eve) { return ((VertexData*)eve->tmp.p)->n; } -void nodeSetData(EditVert *eve, ReebNode *n) +static void nodeSetData(EditVert *eve, ReebNode *n) { ((VertexData*)eve->tmp.p)->n = n; } @@ -230,7 +230,7 @@ void BIF_flagMultiArcs(ReebGraph *rg, int flag) } } -ReebNode * addNode(ReebGraph *rg, EditVert *eve) +static ReebNode * addNode(ReebGraph *rg, EditVert *eve) { float weight; ReebNode *node = NULL; @@ -255,7 +255,7 @@ ReebNode * addNode(ReebGraph *rg, EditVert *eve) return node; } -ReebNode * copyNode(ReebGraph *rg, ReebNode *node) +static ReebNode * copyNode(ReebGraph *rg, ReebNode *node) { ReebNode *cp_node = NULL; @@ -276,7 +276,7 @@ ReebNode * copyNode(ReebGraph *rg, ReebNode *node) return cp_node; } -void relinkNodes(ReebGraph *low_rg, ReebGraph *high_rg) +static void relinkNodes(ReebGraph *low_rg, ReebGraph *high_rg) { ReebNode *low_node, *high_node; @@ -319,7 +319,7 @@ ReebNode *BIF_lowestLevelNode(ReebNode *node) return node; } -ReebArc * copyArc(ReebGraph *rg, ReebArc *arc) +static ReebArc * copyArc(ReebGraph *rg, ReebArc *arc) { ReebArc *cp_arc; ReebNode *node; @@ -365,7 +365,7 @@ ReebArc * copyArc(ReebGraph *rg, ReebArc *arc) return cp_arc; } -ReebGraph * copyReebGraph(ReebGraph *rg, int level) +static ReebGraph * copyReebGraph(ReebGraph *rg, int level) { ReebNode *node; ReebArc *arc; @@ -406,7 +406,7 @@ ReebGraph *BIF_graphForMultiNode(ReebGraph *rg, ReebNode *node) return multi_rg; } -ReebEdge * copyEdge(ReebEdge *edge) +static ReebEdge * copyEdge(ReebEdge *edge) { ReebEdge *newEdge = NULL; @@ -419,7 +419,7 @@ ReebEdge * copyEdge(ReebEdge *edge) return newEdge; } -void printArc(ReebArc *arc) +static void printArc(ReebArc *arc) { ReebEdge *edge; ReebNode *head = (ReebNode*)arc->head; @@ -432,7 +432,7 @@ void printArc(ReebArc *arc) } } -void flipArc(ReebArc *arc) +static void flipArc(ReebArc *arc) { ReebNode *tmp; tmp = arc->head; @@ -443,7 +443,7 @@ void flipArc(ReebArc *arc) } #ifdef DEBUG_REEB_NODE -void NodeDegreeDecrement(ReebGraph *UNUSED(rg), ReebNode *node) +static void NodeDegreeDecrement(ReebGraph *UNUSED(rg), ReebNode *node) { node->degree--; @@ -453,7 +453,7 @@ void NodeDegreeDecrement(ReebGraph *UNUSED(rg), ReebNode *node) // } } -void NodeDegreeIncrement(ReebGraph *UNUSED(rg), ReebNode *node) +static void NodeDegreeIncrement(ReebGraph *UNUSED(rg), ReebNode *node) { // if (node->degree == 0) // { @@ -496,7 +496,7 @@ void repositionNodes(ReebGraph *rg) } } -void verifyNodeDegree(ReebGraph *rg) +static void verifyNodeDegree(ReebGraph *rg) { #ifdef DEBUG_REEB ReebNode *node = NULL; @@ -524,7 +524,7 @@ void verifyNodeDegree(ReebGraph *rg) #endif } -void verifyBucketsArc(ReebGraph *UNUSED(rg), ReebArc *arc) +static void verifyBucketsArc(ReebGraph *UNUSED(rg), ReebArc *arc) { ReebNode *head = (ReebNode*)arc->head; ReebNode *tail = (ReebNode*)arc->tail; @@ -578,7 +578,7 @@ void verifyFaces(ReebGraph *rg) #endif } -void verifyArcs(ReebGraph *rg) +static void verifyArcs(ReebGraph *rg) { ReebArc *arc; @@ -591,7 +591,7 @@ void verifyArcs(ReebGraph *rg) } } -void verifyMultiResolutionLinks(ReebGraph *rg, int level) +static void verifyMultiResolutionLinks(ReebGraph *rg, int level) { #ifdef DEBUG_REEB ReebGraph *lower_rg = rg->link_up; @@ -619,13 +619,13 @@ void verifyMultiResolutionLinks(ReebGraph *rg, int level) } /***************************************** BUCKET UTILS **********************************************/ -void addVertToBucket(EmbedBucket *b, float co[3]) +static void addVertToBucket(EmbedBucket *b, float co[3]) { b->nv++; interp_v3_v3v3(b->p, b->p, co, 1.0f / b->nv); } -void removeVertFromBucket(EmbedBucket *b, float co[3]) +static void removeVertFromBucket(EmbedBucket *b, float co[3]) { mul_v3_fl(b->p, (float)b->nv); sub_v3_v3(b->p, co); @@ -633,7 +633,7 @@ void removeVertFromBucket(EmbedBucket *b, float co[3]) mul_v3_fl(b->p, 1.0f / (float)b->nv); } -void mergeBuckets(EmbedBucket *bDst, EmbedBucket *bSrc) +static void mergeBuckets(EmbedBucket *bDst, EmbedBucket *bSrc) { if (bDst->nv > 0 && bSrc->nv > 0) { @@ -647,7 +647,7 @@ void mergeBuckets(EmbedBucket *bDst, EmbedBucket *bSrc) } } -void mergeArcBuckets(ReebArc *aDst, ReebArc *aSrc, float start, float end) +static void mergeArcBuckets(ReebArc *aDst, ReebArc *aSrc, float start, float end) { if (aDst->bcount > 0 && aSrc->bcount > 0) { @@ -691,12 +691,12 @@ void flipArcBuckets(ReebArc *arc) } } -int countArcBuckets(ReebArc *arc) +static int countArcBuckets(ReebArc *arc) { return (int)(floor(arc->tail->weight) - ceil(arc->head->weight)) + 1; } -void allocArcBuckets(ReebArc *arc) +static void allocArcBuckets(ReebArc *arc) { int i; float start = ceil(arc->head->weight); @@ -718,7 +718,7 @@ void allocArcBuckets(ReebArc *arc) } -void resizeArcBuckets(ReebArc *arc) +static void resizeArcBuckets(ReebArc *arc) { EmbedBucket *oldBuckets = arc->buckets; int oldBCount = arc->bcount; @@ -760,7 +760,7 @@ void resizeArcBuckets(ReebArc *arc) } } -void reweightBuckets(ReebArc *arc) +static void reweightBuckets(ReebArc *arc) { int i; float start = ceil((arc->head)->weight); @@ -789,7 +789,7 @@ static void interpolateBuckets(ReebArc *arc, float *start_p, float *end_p, int s } } -void fillArcEmptyBuckets(ReebArc *arc) +static void fillArcEmptyBuckets(ReebArc *arc) { float *start_p, *end_p; int start_index = 0, end_index = 0; @@ -904,7 +904,7 @@ static void ExtendArcBuckets(ReebArc *arc) } /* CALL THIS ONLY AFTER FILTERING, SINCE IT MESSES UP WEIGHT DISTRIBUTION */ -void extendGraphBuckets(ReebGraph *rg) +static void extendGraphBuckets(ReebGraph *rg) { ReebArc *arc; @@ -916,7 +916,7 @@ void extendGraphBuckets(ReebGraph *rg) /**************************************** LENGTH CALCULATIONS ****************************************/ -void calculateArcLength(ReebArc *arc) +static void calculateArcLength(ReebArc *arc) { ReebArcIterator arc_iter; BArcIterator *iter = (BArcIterator*)&arc_iter; @@ -941,7 +941,7 @@ void calculateArcLength(ReebArc *arc) arc->length += len_v3v3(arc->tail->p, vec1); } -void calculateGraphLength(ReebGraph *rg) +static void calculateGraphLength(ReebGraph *rg) { ReebArc *arc; @@ -1196,7 +1196,7 @@ void postprocessGraph(ReebGraph *rg, char mode) /********************************************SORTING****************************************************/ -int compareNodesWeight(void *vnode1, void *vnode2) +static int compareNodesWeight(void *vnode1, void *vnode2) { ReebNode *node1 = (ReebNode*)vnode1; ReebNode *node2 = (ReebNode*)vnode2; @@ -1220,7 +1220,7 @@ void sortNodes(ReebGraph *rg) BLI_sortlist(&rg->nodes, compareNodesWeight); } -int compareArcsWeight(void *varc1, void *varc2) +static int compareArcsWeight(void *varc1, void *varc2) { ReebArc *arc1 = (ReebArc*)varc1; ReebArc *arc2 = (ReebArc*)varc2; @@ -1247,7 +1247,7 @@ void sortArcs(ReebGraph *rg) } /******************************************* JOINING ***************************************************/ -void reweightArc(ReebGraph *rg, ReebArc *arc, ReebNode *start_node, float start_weight) +static void reweightArc(ReebGraph *rg, ReebArc *arc, ReebNode *start_node, float start_weight) { ReebNode *node; float old_weight; @@ -1292,7 +1292,7 @@ void reweightArc(ReebGraph *rg, ReebArc *arc, ReebNode *start_node, float start_ } } -void reweightSubgraph(ReebGraph *rg, ReebNode *start_node, float start_weight) +static void reweightSubgraph(ReebGraph *rg, ReebNode *start_node, float start_weight) { int i; @@ -1307,7 +1307,7 @@ void reweightSubgraph(ReebGraph *rg, ReebNode *start_node, float start_weight) start_node->weight = start_weight; } -int joinSubgraphsEnds(ReebGraph *rg, float threshold, int nb_subgraphs) +static int joinSubgraphsEnds(ReebGraph *rg, float threshold, int nb_subgraphs) { int joined = 0; int subgraph; @@ -1389,7 +1389,7 @@ int joinSubgraphsEnds(ReebGraph *rg, float threshold, int nb_subgraphs) } /* Reweight graph from smallest node, fix fliped arcs */ -void fixSubgraphsOrientation(ReebGraph *rg, int nb_subgraphs) +static void fixSubgraphsOrientation(ReebGraph *rg, int nb_subgraphs) { int subgraph; @@ -1416,7 +1416,7 @@ void fixSubgraphsOrientation(ReebGraph *rg, int nb_subgraphs) } } -int joinSubgraphs(ReebGraph *rg, float threshold) +static int joinSubgraphs(ReebGraph *rg, float threshold) { int nb_subgraphs; int joined = 0; @@ -1457,7 +1457,7 @@ int joinSubgraphs(ReebGraph *rg, float threshold) /****************************************** FILTERING **************************************************/ -float lengthArc(ReebArc *arc) +static float lengthArc(ReebArc *arc) { #if 0 ReebNode *head = (ReebNode*)arc->head; @@ -1469,7 +1469,7 @@ float lengthArc(ReebArc *arc) #endif } -int compareArcs(void *varc1, void *varc2) +static int compareArcs(void *varc1, void *varc2) { ReebArc *arc1 = (ReebArc*)varc1; ReebArc *arc2 = (ReebArc*)varc2; @@ -1490,7 +1490,7 @@ int compareArcs(void *varc1, void *varc2) } } -void filterArc(ReebGraph *rg, ReebNode *newNode, ReebNode *removedNode, ReebArc * srcArc, int merging) +static void filterArc(ReebGraph *rg, ReebNode *newNode, ReebNode *removedNode, ReebArc * srcArc, int merging) { ReebArc *arc = NULL, *nextArc = NULL; @@ -1602,7 +1602,7 @@ void filterNullReebGraph(ReebGraph *rg) } } -int filterInternalExternalReebGraph(ReebGraph *rg, float threshold_internal, float threshold_external) +static int filterInternalExternalReebGraph(ReebGraph *rg, float threshold_internal, float threshold_external) { ReebArc *arc = NULL, *nextArc = NULL; int value = 0; @@ -1693,7 +1693,7 @@ int filterInternalExternalReebGraph(ReebGraph *rg, float threshold_internal, flo return value; } -int filterCyclesReebGraph(ReebGraph *rg, float UNUSED(distance_threshold)) +static int filterCyclesReebGraph(ReebGraph *rg, float UNUSED(distance_threshold)) { ReebArc *arc1, *arc2; ReebArc *next2; @@ -1900,7 +1900,7 @@ int filterSmartReebGraph(ReebGraph *UNUSED(rg), float UNUSED(threshold)) return value; } -void filterGraph(ReebGraph *rg, short options, float threshold_internal, float threshold_external) +static void filterGraph(ReebGraph *rg, short options, float threshold_internal, float threshold_external) { int done = 1; @@ -1939,7 +1939,7 @@ void filterGraph(ReebGraph *rg, short options, float threshold_internal, float t removeNormalNodes(rg); } -void finalizeGraph(ReebGraph *rg, char passes, char method) +static void finalizeGraph(ReebGraph *rg, char passes, char method) { int i; @@ -1959,7 +1959,7 @@ void finalizeGraph(ReebGraph *rg, char passes, char method) /************************************** WEIGHT SPREADING ***********************************************/ -int compareVerts( const void* a, const void* b ) +static int compareVerts( const void* a, const void* b ) { EditVert *va = *(EditVert**)a; EditVert *vb = *(EditVert**)b; @@ -1977,7 +1977,7 @@ int compareVerts( const void* a, const void* b ) return value; } -void spreadWeight(EditMesh *em) +static void spreadWeight(EditMesh *em) { EditVert **verts, *eve; float lastWeight = 0.0f; @@ -2019,7 +2019,7 @@ void spreadWeight(EditMesh *em) /******************************************** EXPORT ***************************************************/ -void exportNode(FILE *f, const char *text, ReebNode *node) +static void exportNode(FILE *f, const char *text, ReebNode *node) { fprintf(f, "%s i:%i w:%f d:%i %f %f %f\n", text, node->index, node->weight, node->degree, node->p[0], node->p[1], node->p[2]); } @@ -2065,7 +2065,7 @@ void REEB_exportGraph(ReebGraph *rg, int count) /***************************************** MAIN ALGORITHM **********************************************/ /* edges alone will create zero degree nodes, use this function to remove them */ -void removeZeroNodes(ReebGraph *rg) +static void removeZeroNodes(ReebGraph *rg) { ReebNode *node, *next_node; @@ -2151,12 +2151,12 @@ void removeNormalNodes(ReebGraph *rg) } -int edgeEquals(ReebEdge *e1, ReebEdge *e2) +static int edgeEquals(ReebEdge *e1, ReebEdge *e2) { return (e1->v1 == e2->v1 && e1->v2 == e2->v2); } -ReebArc *nextArcMappedToEdge(ReebArc *arc, ReebEdge *e) +static ReebArc *nextArcMappedToEdge(ReebArc *arc, ReebEdge *e) { ReebEdge *nextEdge = NULL; ReebEdge *edge = NULL; @@ -2385,7 +2385,7 @@ int mergeArcs(ReebGraph *rg, ReebArc *a0, ReebArc *a1) return result; } -void glueByMergeSort(ReebGraph *rg, ReebArc *a0, ReebArc *a1, ReebEdge *e0, ReebEdge *e1) +static void glueByMergeSort(ReebGraph *rg, ReebArc *a0, ReebArc *a1, ReebEdge *e0, ReebEdge *e1) { int total = 0; while (total == 0 && a0 != a1 && a0 != NULL && a1 != NULL) @@ -2406,7 +2406,7 @@ void glueByMergeSort(ReebGraph *rg, ReebArc *a0, ReebArc *a1, ReebEdge *e0, Reeb } } -void mergePaths(ReebGraph *rg, ReebEdge *e0, ReebEdge *e1, ReebEdge *e2) +static void mergePaths(ReebGraph *rg, ReebEdge *e0, ReebEdge *e1, ReebEdge *e2) { ReebArc *a0, *a1, *a2; a0 = e0->arc; @@ -2417,7 +2417,7 @@ void mergePaths(ReebGraph *rg, ReebEdge *e0, ReebEdge *e1, ReebEdge *e2) glueByMergeSort(rg, a0, a2, e0, e2); } -ReebEdge * createArc(ReebGraph *rg, ReebNode *node1, ReebNode *node2) +static ReebEdge * createArc(ReebGraph *rg, ReebNode *node1, ReebNode *node2) { ReebEdge *edge; @@ -2499,7 +2499,7 @@ ReebEdge * createArc(ReebGraph *rg, ReebNode *node1, ReebNode *node2) return edge; } -void addTriangleToGraph(ReebGraph *rg, ReebNode * n1, ReebNode * n2, ReebNode * n3, EditFace *efa) +static void addTriangleToGraph(ReebGraph *rg, ReebNode * n1, ReebNode * n2, ReebNode * n3, EditFace *efa) { ReebEdge *re1, *re2, *re3; ReebEdge *e1, *e2, *e3; @@ -2692,7 +2692,7 @@ static float cotan_weight(float *v1, float *v2, float *v3) return dot_v3v3(a, b)/clen; } -void addTriangle(EditVert *v1, EditVert *v2, EditVert *v3, int e1, int e2, int e3) +static void addTriangle(EditVert *v1, EditVert *v2, EditVert *v3, int e1, int e2, int e3) { /* Angle opposite e1 */ float t1= cotan_weight(v1->co, v2->co, v3->co) / e2; @@ -2888,7 +2888,7 @@ EditEdge * NextEdgeForVert(EdgeIndex *indexed_edges, int index) return indexed_edges->edges[offset]; } -void shortestPathsFromVert(EditMesh *em, EditVert *starting_vert, EdgeIndex *indexed_edges) +static void shortestPathsFromVert(EditMesh *em, EditVert *starting_vert, EdgeIndex *indexed_edges) { Heap *edge_heap; EditVert *current_eve = NULL; @@ -2952,13 +2952,13 @@ void shortestPathsFromVert(EditMesh *em, EditVert *starting_vert, EdgeIndex *ind BLI_heap_free(edge_heap, NULL); } -void freeEdgeIndex(EdgeIndex *indexed_edges) +static void freeEdgeIndex(EdgeIndex *indexed_edges) { MEM_freeN(indexed_edges->offset); MEM_freeN(indexed_edges->edges); } -void buildIndexedEdges(EditMesh *em, EdgeIndex *indexed_edges) +static void buildIndexedEdges(EditMesh *em, EdgeIndex *indexed_edges) { EditVert *eve; EditEdge *eed; |