From f273f14eb1b54861f1b3a7eb622cb481ee33cec9 Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Mon, 26 Sep 2016 13:26:47 +0200 Subject: Fix undo/redo for mesh gradients. (bzr r15135) --- src/sp-mesh-array.h | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'src/sp-mesh-array.h') diff --git a/src/sp-mesh-array.h b/src/sp-mesh-array.h index b078b221e..eb01304a2 100644 --- a/src/sp-mesh-array.h +++ b/src/sp-mesh-array.h @@ -85,6 +85,7 @@ enum MeshNodeOperation { MG_NODE_SCALE_HANDLE }; +class SPStop; class SPMeshNode { public: @@ -95,6 +96,7 @@ public: draggable = -1; path_type = 'u'; opacity = 0.0; + stop = nullptr; } NodeType node_type; unsigned int node_edge; @@ -104,6 +106,7 @@ public: char path_type; SPColor color; double opacity; + SPStop *stop; // Stop corresponding to node. }; @@ -133,6 +136,8 @@ public: void setColor( unsigned int i, SPColor c ); double getOpacity( unsigned int i ); void setOpacity( unsigned int i, double o ); + SPStop* getStopPtr( unsigned int i ); + void setStopPtr( unsigned int i, SPStop* ); }; class SPMesh; @@ -147,7 +152,7 @@ public: public: // Draggables to nodes - bool drag_valid; + bool draggers_valid; std::vector< SPMeshNode* > corners; std::vector< SPMeshNode* > handles; std::vector< SPMeshNode* > tensors; @@ -156,7 +161,7 @@ public: friend class SPMeshPatchI; - SPMeshNodeArray() { built = false; mg = NULL; drag_valid = false; }; + SPMeshNodeArray() { built = false; mg = NULL; draggers_valid = false; }; SPMeshNodeArray( SPMesh *mg ); SPMeshNodeArray( const SPMeshNodeArray& rhs ); SPMeshNodeArray& operator=(const SPMeshNodeArray& rhs); @@ -164,7 +169,7 @@ public: ~SPMeshNodeArray() { clear(); }; bool built; - void read( SPMesh *mg ); + bool read( SPMesh *mg ); void write( SPMesh *mg ); void create( SPMesh *mg, SPItem *item, Geom::OptRect bbox ); void clear(); -- cgit v1.2.3 From f9ec83dbb254701f39d3b7a30c0bacb5eaae9ee9 Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Tue, 27 Sep 2016 10:51:26 +0200 Subject: Rename to per SVG 2 CR specificiation. Note: has been repurposed to be a special shape that tightly wraps a mesh gradient. (bzr r15137) --- src/sp-mesh-array.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src/sp-mesh-array.h') diff --git a/src/sp-mesh-array.h b/src/sp-mesh-array.h index eb01304a2..49ee88e53 100644 --- a/src/sp-mesh-array.h +++ b/src/sp-mesh-array.h @@ -140,14 +140,14 @@ public: void setStopPtr( unsigned int i, SPStop* ); }; -class SPMesh; +class SPMeshGradient; // An array of mesh nodes. class SPMeshNodeArray { // Should be private public: - SPMesh *mg; + SPMeshGradient *mg; std::vector< std::vector< SPMeshNode* > > nodes; public: @@ -162,16 +162,16 @@ public: friend class SPMeshPatchI; SPMeshNodeArray() { built = false; mg = NULL; draggers_valid = false; }; - SPMeshNodeArray( SPMesh *mg ); + SPMeshNodeArray( SPMeshGradient *mg ); SPMeshNodeArray( const SPMeshNodeArray& rhs ); SPMeshNodeArray& operator=(const SPMeshNodeArray& rhs); ~SPMeshNodeArray() { clear(); }; bool built; - bool read( SPMesh *mg ); - void write( SPMesh *mg ); - void create( SPMesh *mg, SPItem *item, Geom::OptRect bbox ); + bool read( SPMeshGradient *mg ); + void write( SPMeshGradient *mg ); + void create( SPMeshGradient *mg, SPItem *item, Geom::OptRect bbox ); void clear(); void print(); -- cgit v1.2.3