diff options
author | Martin Poirier <theeth@yahoo.com> | 2008-09-03 23:24:26 +0400 |
---|---|---|
committer | Martin Poirier <theeth@yahoo.com> | 2008-09-03 23:24:26 +0400 |
commit | 17d777c486d947a17344cf88512b3bd7acc3290c (patch) | |
tree | eb1af44ff75ceb66ff56605a1d6e2d92bb18a195 /source/blender/include | |
parent | 1924eeb182505b3dbeb6dd0662f77ffb91a34708 (diff) |
Prebuild an indexed edge list for faster connectivity loops when applying dijkstra and harmonic function calculations.
Drops the runtime for that part of the algo by a lot (39k edges from 16s to 0.6s)
Diffstat (limited to 'source/blender/include')
-rw-r--r-- | source/blender/include/reeb.h | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/source/blender/include/reeb.h b/source/blender/include/reeb.h index 046034504e6..1f9a7801b06 100644 --- a/source/blender/include/reeb.h +++ b/source/blender/include/reeb.h @@ -119,14 +119,15 @@ typedef struct ReebArcIterator { int index; int start; int end; - int stride; + int stride; int length; } ReebArcIterator; struct EditMesh; +struct EdgeIndex; -int weightToHarmonic(struct EditMesh *em); -int weightFromDistance(struct EditMesh *em); +int weightToHarmonic(struct EditMesh *em, struct EdgeIndex *indexed_edges); +int weightFromDistance(struct EditMesh *em, struct EdgeIndex *indexed_edges); int weightFromLoc(struct EditMesh *me, int axis); void weightToVCol(struct EditMesh *em, int index); void arcToVCol(struct ReebGraph *rg, struct EditMesh *em, int index); |