cinder::svg::Group Class Reference

Represents a group of SVG elements. http://www.w3.org/TR/SVG/struct.html#Groups. More...

#include <Svg.h>

Inherits cinder::svg::Node.

Inherited by cinder::svg::Doc.

List of all members.

Public Member Functions

 Group (const Node *parent)
 Group (const Node *parent, const XmlTree &xml)
 ~Group ()
template<typename T >
const T * find (const std::string &id)
 Recursively searches for a child element of type svg::T named id. Returns NULL on failure to find the object or if it is not of type T.
const NodefindNode (const std::string &id, bool recurse=true) const
 Recursively searches for a child element named id. Returns NULL on failure.
virtual const NodefindInAncestors (const std::string &elementId) const
 Finds the node with ID elementId amongst this Node's ancestors. Returns NULL on failure.
const NodegetChild (const std::string &id) const
 Returns a reference to the child named id. Throws svg::ExcChildNotFound if not found.
const Nodeoperator/ (const std::string &id) const
 Returns a reference to the child named id. Throws svg::ExcChildNotFound if not found.
virtual Shape2d getShape () const
 Returns the merged Shape2d for all children of the group.
void appendMergedShape2d (Shape2d *appendTo) const
 Appends the merged Shape2d for the group to appentTo.
const std::list< Node * > & getChildren () const
 Returns a reference to the list of the Group's children.
std::list< Node * > & getChildren ()
 Returns a reference to the list of the Group's children.
class DocgetDoc () const
 Returns the svg::Doc this Node is an element of.
const NodegetParent () const
 Returns the immediate parent of this node.
const std::string & getId () const
 Returns the ID of this Node when present.
std::string getDomPath () const
 Returns a DOM-style path to this node.
const StylegetStyle () const
 Returns the style elements defined on this Node but not inherited from ancestors.
void setStyle (const Style &style)
 Sets the style defined on this Node but not inherited from ancestors.
Style calcInheritedStyle () const
 Returns the node's Style, including attributes inherited from its ancestors for attributes it does not specify.
virtual bool containsPoint (const Vec2f &pt) const
 Returns whether the point pt is inside of the Node's shape.
void render (Renderer &renderer) const
 Renders the node and its descendants.
Paint findPaintInAncestors (const std::string &paintName) const
 Finds the svg::Paint node with ID elementId amongst this Node's ancestors. Returns a default svg::Paint instance on failure.
bool specifiesTransform () const
 Returns whether this Node specifies a transformation.
MatrixAffine2f getTransform () const
 Returns the local transformation of this node. Returns identity if the Node's transform isn't specified.
void setTransform (const MatrixAffine2f &transform)
 Sets the local transformation of this node.
void unspecifyTransform ()
 Removes the local transformation of this node, effectively making it the identity matrix.
MatrixAffine2f getTransformInverse () const
 Returns the inverse of the local transformation of this node. Returns identity if the Node's transform isn't specified.
MatrixAffine2f getTransformAbsolute () const
 Returns the absolute transformation of this node, which includes inherited transformations.
MatrixAffine2f getTransformAbsoluteInverse () const
 Returns the inverse of the absolute transformation of this node, which includes inherited transformations.
Rectf getBoundingBox () const
 Returns the local bounding box of the Node. Calculated and cached the first time it is requested.
Rectf getBoundingBoxAbsolute () const
 Returns the absolute bounding box of the Node. Calculated and cached the first time it is requested.
Shape2d getShapeAbsolute () const
 Returns a Shape2d representing the node in absolute coordinates. Not supported for Text.
const PaintgetFill () const
 Returns node's fill, or the first among its ancestors when it has none.
const PaintgetStroke () const
 Returns node's stroke, or the first among its ancestors when it has none.
float getOpacity () const
 Returns node's opacity, or the first among its ancestors when it has none.
float getFillOpacity () const
 Returns node's fill opacity, or the first among its ancestors when it has none.
float getStrokeOpacity () const
 Returns node's stroke opacity, or the first among its ancestors when it has none.
FillRule getFillRule () const
 Returns node's fill rule, or the first among its ancestors when it has none.
LineCap getLineCap () const
 Returns node's line cap, or the first among its ancestors when it has none.
LineJoin getLineJoin () const
 Returns node's line join, or the first among its ancestors when it has none.
float getStrokeWidth () const
 Returns node's stroke width, or the first among its ancestors when it has none.
const std::vector< std::string > & getFontFamilies () const
 Returns node's font families, or the first among its ancestors when it has none.
Value getFontSize () const
 Returns node's font size, or the first among its ancestors when it has none.
bool isVisible () const
 Returns whether this Node is visible, or the first among its ancestors when unspecified.
bool isDisplayNone () const
 Returns whether the Display property of this Node is set to 'None', preventing rendering of the node and its children.

Protected Member Functions

NodenodeUnderPoint (const Vec2f &absolutePoint, const MatrixAffine2f &parentInverseMatrix) const
Shape2d getMergedShape2d () const
virtual void renderSelf (Renderer &renderer) const
virtual Rectf calcBoundingBox () const
virtual bool isDrawable () const
void parse (const XmlTree &xml)
void startRender (Renderer &renderer, const Style &style) const
void finishRender (Renderer &renderer, const Style &style) const
void parseStyle (const std::string &value)

Static Protected Member Functions

static Paint parsePaint (const char *value, bool *specified, const Node *parentNode)
static MatrixAffine2f parseTransform (const std::string &value)
static bool parseTransformComponent (const char **c, MatrixAffine2f *result)
static std::string findStyleValue (const std::string &styleString, const std::string &key)

Protected Attributes

std::list< Node * > mChildren
std::shared_ptr< GroupmDefs
const NodemParent
std::string mId
Style mStyle
bool mSpecifiesTransform
MatrixAffine2f mTransform
bool mBoundingBoxCached
Rectf mBoundingBox

Detailed Description

Represents a group of SVG elements. http://www.w3.org/TR/SVG/struct.html#Groups.


Constructor & Destructor Documentation

cinder::svg::Group::Group ( const Node parent  ) 
cinder::svg::Group::Group ( const Node parent,
const XmlTree xml 
)
cinder::svg::Group::~Group (  ) 

Member Function Documentation

template<typename T >
const T* cinder::svg::Group::find ( const std::string &  id  ) 

Recursively searches for a child element of type svg::T named id. Returns NULL on failure to find the object or if it is not of type T.

const Node * cinder::svg::Group::findNode ( const std::string &  id,
bool  recurse = true 
) const

Recursively searches for a child element named id. Returns NULL on failure.

const Node * cinder::svg::Group::findInAncestors ( const std::string &  elementId  )  const [virtual]

Finds the node with ID elementId amongst this Node's ancestors. Returns NULL on failure.

Reimplemented from cinder::svg::Node.

const Node & cinder::svg::Group::getChild ( const std::string &  id  )  const

Returns a reference to the child named id. Throws svg::ExcChildNotFound if not found.

const Node& cinder::svg::Group::operator/ ( const std::string &  id  )  const

Returns a reference to the child named id. Throws svg::ExcChildNotFound if not found.

virtual Shape2d cinder::svg::Group::getShape (  )  const [virtual]

Returns the merged Shape2d for all children of the group.

Reimplemented from cinder::svg::Node.

void cinder::svg::Group::appendMergedShape2d ( Shape2d appendTo  )  const

Appends the merged Shape2d for the group to appentTo.

const std::list<Node*>& cinder::svg::Group::getChildren (  )  const

Returns a reference to the list of the Group's children.

std::list<Node*>& cinder::svg::Group::getChildren (  ) 

Returns a reference to the list of the Group's children.

Node * cinder::svg::Group::nodeUnderPoint ( const Vec2f absolutePoint,
const MatrixAffine2f parentInverseMatrix 
) const [protected]
Shape2d cinder::svg::Group::getMergedShape2d (  )  const [protected]
void cinder::svg::Group::renderSelf ( Renderer renderer  )  const [protected, virtual]

Implements cinder::svg::Node.

Rectf cinder::svg::Group::calcBoundingBox (  )  const [protected, virtual]

Reimplemented from cinder::svg::Node.

virtual bool cinder::svg::Group::isDrawable (  )  const [protected, virtual]

Reimplemented from cinder::svg::Node.

void cinder::svg::Group::parse ( const XmlTree xml  )  [protected]
Doc * cinder::svg::Node::getDoc (  )  const [inherited]

Returns the svg::Doc this Node is an element of.

const Node* cinder::svg::Node::getParent (  )  const [inherited]

Returns the immediate parent of this node.

const std::string& cinder::svg::Node::getId (  )  const [inherited]

Returns the ID of this Node when present.

string cinder::svg::Node::getDomPath (  )  const [inherited]

Returns a DOM-style path to this node.

const Style& cinder::svg::Node::getStyle (  )  const [inherited]

Returns the style elements defined on this Node but not inherited from ancestors.

void cinder::svg::Node::setStyle ( const Style style  )  [inherited]

Sets the style defined on this Node but not inherited from ancestors.

Style cinder::svg::Node::calcInheritedStyle (  )  const [inherited]

Returns the node's Style, including attributes inherited from its ancestors for attributes it does not specify.

virtual bool cinder::svg::Node::containsPoint ( const Vec2f pt  )  const [virtual, inherited]

Returns whether the point pt is inside of the Node's shape.

Reimplemented in cinder::svg::Circle, cinder::svg::Ellipse, cinder::svg::Path, cinder::svg::Rect, cinder::svg::Polygon, cinder::svg::Polyline, and cinder::svg::Image.

void cinder::svg::Node::render ( Renderer renderer  )  const [inherited]

Renders the node and its descendants.

Paint cinder::svg::Node::findPaintInAncestors ( const std::string &  paintName  )  const [inherited]

Finds the svg::Paint node with ID elementId amongst this Node's ancestors. Returns a default svg::Paint instance on failure.

bool cinder::svg::Node::specifiesTransform (  )  const [inherited]

Returns whether this Node specifies a transformation.

Reimplemented in cinder::svg::Gradient.

MatrixAffine2f cinder::svg::Node::getTransform (  )  const [inherited]

Returns the local transformation of this node. Returns identity if the Node's transform isn't specified.

void cinder::svg::Node::setTransform ( const MatrixAffine2f transform  )  [inherited]

Sets the local transformation of this node.

void cinder::svg::Node::unspecifyTransform (  )  [inherited]

Removes the local transformation of this node, effectively making it the identity matrix.

MatrixAffine2f cinder::svg::Node::getTransformInverse (  )  const [inherited]

Returns the inverse of the local transformation of this node. Returns identity if the Node's transform isn't specified.

MatrixAffine2f cinder::svg::Node::getTransformAbsolute (  )  const [inherited]

Returns the absolute transformation of this node, which includes inherited transformations.

MatrixAffine2f cinder::svg::Node::getTransformAbsoluteInverse (  )  const [inherited]

Returns the inverse of the absolute transformation of this node, which includes inherited transformations.

Rectf cinder::svg::Node::getBoundingBox (  )  const [inherited]

Returns the local bounding box of the Node. Calculated and cached the first time it is requested.

Rectf cinder::svg::Node::getBoundingBoxAbsolute (  )  const [inherited]

Returns the absolute bounding box of the Node. Calculated and cached the first time it is requested.

Shape2d cinder::svg::Node::getShapeAbsolute (  )  const [inherited]

Returns a Shape2d representing the node in absolute coordinates. Not supported for Text.

const Paint & cinder::svg::Node::getFill (  )  const [inherited]

Returns node's fill, or the first among its ancestors when it has none.

const Paint & cinder::svg::Node::getStroke (  )  const [inherited]

Returns node's stroke, or the first among its ancestors when it has none.

float cinder::svg::Node::getOpacity (  )  const [inherited]

Returns node's opacity, or the first among its ancestors when it has none.

float cinder::svg::Node::getFillOpacity (  )  const [inherited]

Returns node's fill opacity, or the first among its ancestors when it has none.

float cinder::svg::Node::getStrokeOpacity (  )  const [inherited]

Returns node's stroke opacity, or the first among its ancestors when it has none.

FillRule cinder::svg::Node::getFillRule (  )  const [inherited]

Returns node's fill rule, or the first among its ancestors when it has none.

LineCap cinder::svg::Node::getLineCap (  )  const [inherited]

Returns node's line cap, or the first among its ancestors when it has none.

LineJoin cinder::svg::Node::getLineJoin (  )  const [inherited]

Returns node's line join, or the first among its ancestors when it has none.

float cinder::svg::Node::getStrokeWidth (  )  const [inherited]

Returns node's stroke width, or the first among its ancestors when it has none.

const vector< string > & cinder::svg::Node::getFontFamilies (  )  const [inherited]

Returns node's font families, or the first among its ancestors when it has none.

Value cinder::svg::Node::getFontSize (  )  const [inherited]

Returns node's font size, or the first among its ancestors when it has none.

bool cinder::svg::Node::isVisible (  )  const [inherited]

Returns whether this Node is visible, or the first among its ancestors when unspecified.

bool cinder::svg::Node::isDisplayNone (  )  const [inherited]

Returns whether the Display property of this Node is set to 'None', preventing rendering of the node and its children.

void cinder::svg::Node::startRender ( Renderer renderer,
const Style style 
) const [protected, inherited]
void cinder::svg::Node::finishRender ( Renderer renderer,
const Style style 
) const [protected, inherited]
Paint cinder::svg::Node::parsePaint ( const char *  value,
bool *  specified,
const Node parentNode 
) [static, protected, inherited]
MatrixAffine2f cinder::svg::Node::parseTransform ( const std::string &  value  )  [static, protected, inherited]
bool cinder::svg::Node::parseTransformComponent ( const char **  c,
MatrixAffine2f result 
) [static, protected, inherited]
std::string cinder::svg::Node::findStyleValue ( const std::string &  styleString,
const std::string &  key 
) [static, protected, inherited]
void cinder::svg::Node::parseStyle ( const std::string &  value  )  [protected, inherited]

Member Data Documentation

std::list<Node*> cinder::svg::Group::mChildren [protected]
std::shared_ptr<Group> cinder::svg::Group::mDefs [protected]
const Node* cinder::svg::Node::mParent [protected, inherited]
std::string cinder::svg::Node::mId [protected, inherited]
Style cinder::svg::Node::mStyle [protected, inherited]
bool cinder::svg::Node::mSpecifiesTransform [protected, inherited]

Reimplemented in cinder::svg::Gradient.

Reimplemented in cinder::svg::Gradient.

bool cinder::svg::Node::mBoundingBoxCached [mutable, protected, inherited]
Rectf cinder::svg::Node::mBoundingBox [mutable, protected, inherited]

The documentation for this class was generated from the following files: