From 9a037bc21c8b98650bf5be4c4e8feaac0a067e2d Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Mon, 2 Feb 2015 11:49:18 +0100 Subject: Experimental mesh smoothing code. (bzr r13890) --- src/sp-mesh-array.h | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'src/sp-mesh-array.h') diff --git a/src/sp-mesh-array.h b/src/sp-mesh-array.h index 330f6d87b..19f8634f8 100644 --- a/src/sp-mesh-array.h +++ b/src/sp-mesh-array.h @@ -45,6 +45,18 @@ // For color picking #include "sp-item.h" +enum SPMeshSmooth { + SP_MESH_SMOOTH_NONE, + SP_MESH_SMOOTH_SMOOTH, + SP_MESH_SMOOTH_SMOOTH1, + SP_MESH_SMOOTH_SMOOTH2, + SP_MESH_SMOOTH_SMOOTH3, + SP_MESH_SMOOTH_SMOOTH4, + SP_MESH_SMOOTH_SMOOTH5, + SP_MESH_SMOOTH_SMOOTH6, + SP_MESH_SMOOTH_SMOOTH7 +}; + enum NodeType { MG_NODE_TYPE_UNKNOWN, MG_NODE_TYPE_CORNER, @@ -148,6 +160,9 @@ public: SPMeshNodeArray() { built = false; mg = NULL; drag_valid = false; }; SPMeshNodeArray( SPMeshGradient *mg ); + SPMeshNodeArray( const SPMeshNodeArray& rhs ); + SPMeshNodeArray& operator=(const SPMeshNodeArray& rhs); + ~SPMeshNodeArray() { clear(); }; bool built; @@ -157,6 +172,10 @@ public: void clear(); void print(); + // Fill 'smooth' with a smoothed version by subdividing each patch. + void smooth( SPMeshNodeArray* smooth, SPMeshSmooth type); + void smooth2( SPMeshNodeArray* smooth, SPMeshSmooth type); + // Get size of patch unsigned int patch_rows(); unsigned int patch_columns(); -- cgit v1.2.3