This interface is responsible for binding objects to the VCL node tree. It contains private methods needed to connect individual objects to the tree.
Every object implementing the node interface must also implement the object interface and one of the container, mask, or shape interfaces.
Every node connected to the tree (the root node of the canvas or a node with a parent) is responsible for calling change propagation methods of its parent to participate in change propagation.
Tree binding methods
These four private methods need to be implemented for the node to be
able to be connected to the tree. The last one (
be considered public. The node is required to store a pointer to its
parent and some key value identifying it.
_set functions should only be
called by a container having or acquiring a node as its child. The creation of
parent-child connection is done by calling appropriate public methods
of the parent; and from the code of that method the
with new the parent pointer is called on the child.
vcl_node_set_data (void *obj, int x) vcl_node_get_data (void *obj) vcl_node_set_parent (void *obj, void * parent) vcl_node_get_parent (void *obj)
There are four public functions for getting transformations from
obj's children coordinate space to the pixel coordinate space
primary functions) and from the pixel coordinate space to
obj's children coordinate space (
functions). These functions are not methods of the node interface (so a class
implementing the node interface does not implement these functions) but can
be called on any nodes (as the first argument).
_apply_point applies the given transformation to one
_apply_matrix applies the given transformation to one
struct geom_transform. For transforming more points it may be
faster to get one
struct geom_transform (by supplying
_apply_matrix function with identity) and then transform every point with
The return values of this functions are error values (where zero means OK) with the same meaning as standard error values of GEOMLIB.
int vcl_primary_apply_matrix (void * obj, struct geom_transform *dst) int vcl_inverted_apply_matrix (void * obj, struct geom_transform *dst) int vcl_primary_apply_point (void * obj, struct geom_point *dst) int vcl_inverted_apply_point (void * obj, struct geom_point *dst)