diff options
Diffstat (limited to 'src/sp-mesh-array.h')
| -rw-r--r-- | src/sp-mesh-array.h | 28 |
1 files changed, 22 insertions, 6 deletions
diff --git a/src/sp-mesh-array.h b/src/sp-mesh-array.h index 330f6d87b..b078b221e 100644 --- a/src/sp-mesh-array.h +++ b/src/sp-mesh-array.h @@ -45,6 +45,16 @@ // For color picking #include "sp-item.h" +enum SPMeshType { + SP_MESH_TYPE_COONS, + SP_MESH_TYPE_BICUBIC +}; + +enum SPMeshGeometry { + SP_MESH_GEOMETRY_NORMAL, + SP_MESH_GEOMETRY_CONICAL +}; + enum NodeType { MG_NODE_TYPE_UNKNOWN, MG_NODE_TYPE_CORNER, @@ -125,14 +135,14 @@ public: void setOpacity( unsigned int i, double o ); }; -class SPMeshGradient; +class SPMesh; // An array of mesh nodes. class SPMeshNodeArray { // Should be private public: - SPMeshGradient *mg; + SPMesh *mg; std::vector< std::vector< SPMeshNode* > > nodes; public: @@ -147,16 +157,22 @@ public: friend class SPMeshPatchI; SPMeshNodeArray() { built = false; mg = NULL; drag_valid = false; }; - SPMeshNodeArray( SPMeshGradient *mg ); + SPMeshNodeArray( SPMesh *mg ); + SPMeshNodeArray( const SPMeshNodeArray& rhs ); + SPMeshNodeArray& operator=(const SPMeshNodeArray& rhs); + ~SPMeshNodeArray() { clear(); }; bool built; - void read( SPMeshGradient *mg ); - void write( SPMeshGradient *mg ); - void create( SPMeshGradient *mg, SPItem *item, Geom::OptRect bbox ); + void read( SPMesh *mg ); + void write( SPMesh *mg ); + void create( SPMesh *mg, SPItem *item, Geom::OptRect bbox ); void clear(); void print(); + // Fill 'smooth' with a smoothed version by subdividing each patch. + void bicubic( SPMeshNodeArray* smooth, SPMeshType type); + // Get size of patch unsigned int patch_rows(); unsigned int patch_columns(); |
