X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Fsrc%2Fsynfig%2Fcanvas.h;h=becfb10a0f68724d1a05aa60ff28fbce6b31f9b5;hb=d4cb326591ea23f82d341eb368b3d183b46f56c7;hp=0a8423cfb62cbcba86fd4cfc51f2ccae2be65ed1;hpb=8d0939e479a3648de8b97bdfe71f487dcfeca41c;p=synfig.git diff --git a/synfig-core/src/synfig/canvas.h b/synfig-core/src/synfig/canvas.h index 0a8423c..becfb10 100644 --- a/synfig-core/src/synfig/canvas.h +++ b/synfig-core/src/synfig/canvas.h @@ -215,7 +215,7 @@ private: //! Layer Group database std::map > > group_db_; - //! Layer Connection database + //! Layer Signal Connection database. Seems to be unused. std::map,std::vector > connections_; /* @@ -426,7 +426,7 @@ public: //! Sets the time for all the layers in the canvas void set_time(Time t)const; - //! \writeme + //! Returns the current time of the Canvas Time get_time()const { return cur_time_; } //! Returns the number of layers in the canvas @@ -465,16 +465,19 @@ public: */ ValueNode::ConstHandle find_value_node(const String &id)const; - //! \writeme + //! Adds a Value node by its Id. + /*! Throws an error if the Id is not + //! correct or the Value node is already exported + **/ void add_value_node(ValueNode::Handle x, const String &id); //! writeme //void rename_value_node(ValueNode::Handle x, const String &id); - //! \writeme + //! Removes a Value Node from the Canvas by its Handle void remove_value_node(ValueNode::Handle x); - //! \writeme + //! Removes a Value Node from the Canvas by its Id void remove_value_node(const String &id) { remove_value_node(find_value_node(id)); } //! Finds a child Canvas in the Canvas with the given \a name @@ -517,43 +520,66 @@ public: //! Adds the given canvas as a child Handle add_child_canvas(Handle child_canvas, const String &id); + //! Remove Child Canvas by its handle. If Current canvas is a child of a parent + //! it ask to the parent to remove the Child canvas. void remove_child_canvas(Handle child_canvas); + //! Finds a Layer by its position. + //! \see get_context() etl::handle find_layer(const Point &pos); + //! Gets the depth of a particular Layer by its handle int get_depth(etl::handle)const; + //! Retireves the first layer of the double queue of Layers Context get_context()const; - + //! Returns the last Canvas layer queue iterator. Notice that it + /*! overrides the std::end() member that would return an interator + * just past the last element of the queue.*/ iterator end(); - + //! Returns the last Canvas layer queue const_iterator. Notice that it + /*! overrides the std::end() member that would return an interator + * just past the last element of the queue.*/ const_iterator end()const; - + //! Returns the last Canvas layer queue reverse iterator. Notice that it + /*! overrides the std::rbegin() member that would return an interator + * just past the last element of the queue.*/ reverse_iterator rbegin(); - + //! Returns the last Canvas layer queue reverse const iterator. Notice that it + /*! overrides the std::rbegin() member that would return an interator + * just past the last element of the queue.*/ const_reverse_iterator rbegin()const; - + //! Returns last layer in Canvas layer stack etl::handle &back(); - + //! Returns last layer in Canvas layer stack + const etl::handle &back()const; + //! Inserts a layer just before the last layer. + //! \see end(), insert(iterator iter,etl::handle x) void push_back(etl::handle x); - + //! Inserts a layer just at the beggining of the Canvas layer dqueue void push_front(etl::handle x); - + //! Inserts a layer in the last position of the Canvas layer dqueue + //! Uses the standard methods and doesn't perform any parentship + //! or signal update void push_back_simple(etl::handle x); - + //! Inserts a layer before the given position by \iter and performs + //! the proper child parent relationships and signals update void insert(iterator iter,etl::handle x); + //! Removes a layer from the Canvas layer dqueue and its group and parent + //! relatioship. Although it is not already used, it clears the connections + //! see connections_ void erase(iterator iter); - - const etl::handle &back()const; - + //! Sets to be a inline canvas of a given Canvas \parent. The inline + //! Canvas inherits the groups and the render description. + //! \see rend_desc() void set_inline(LooseHandle parent); - + //! Returns a Canvas handle with "Untitled" as ID static Handle create(); - + //! Creates an inline Canvas for a given Canvas \parent static Handle create_inline(Handle parent); - + //! Clones (copies) the Canvas if it is inline. Handle clone(const GUID& deriv_guid=GUID())const; - + //! Stores the external canvas by its file name and the Canvas handle void register_external_canvas(String file, Handle canvas); #ifdef _DEBUG @@ -561,16 +587,30 @@ public: #endif // _DEBUG private: + //! Adds a \layer to a group given by its \group string to the group + //! database void add_group_pair(String group, etl::handle layer); + //! Removes a \layer from a group given by its \group string to the group + //! database void remove_group_pair(String group, etl::handle layer); + //! Seems to be used to add the stored signals connections of the layers. + //! \see connections_ void add_connection(etl::loose_handle layer, sigc::connection connection); + //! Seems to be used to disconnect the stored signals connections of the layers. + //! \see connections_ void disconnect_connections(etl::loose_handle layer); protected: + //! Sets the Canvas to dirty and calls Node::on_changed() virtual void on_changed(); + //! Collects the times (TimePoints) of the Layers of the Canvas and + //! stores it in the passed Time Set \set + //! \see Node::get_times() virtual void get_times_vfunc(Node::time_set &set) const; }; // END of class Canvas + //! Optimize layers based on its calculated Z depth to perform a quick + //! render of the layers to the output. void optimize_layers(Time time, Context context, Canvas::Handle op_canvas, bool seen_motion_blur=false);