Represents an SVG Document. See SVG Document Structure http://www.w3.org/TR/SVG/struct.html. More...
#include <Svg.h>
Inherits cinder::svg::Group.
Public Member Functions | |
Doc () | |
Doc (const fs::path &filePath) | |
Doc (DataSourceRef dataSource, const fs::path &filePath=fs::path()) | |
int32_t | getWidth () const |
Returns the width of the document in pixels. | |
int32_t | getHeight () const |
Returns the height of the document in pixels. | |
Vec2i | getSize () const |
Returns the size of the document in pixels. | |
float | getAspectRatio () const |
Returns the aspect ratio of the Doc (width / height). | |
Area | getBounds () const |
Returns the bounds of the Doc (0,0,width,height). | |
float | getDpi () const |
Returns the document's dots-per-inch. Currently hardcoded to 72. | |
Node * | nodeUnderPoint (const Vec2f &pt) |
Returns the top-most Node which contains pt. Returns NULL if no Node contains the point. | |
std::shared_ptr< Surface8u > | loadImage (fs::path relativePath) |
Utility function to load an image relative to the document. Caches results. | |
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 Node * | findNode (const std::string &id, bool recurse=true) const |
Recursively searches for a child element named id. Returns NULL on failure. | |
virtual const Node * | findInAncestors (const std::string &elementId) const |
Finds the node with ID elementId amongst this Node's ancestors. Returns NULL on failure. | |
const Node & | getChild (const std::string &id) const |
Returns a reference to the child named id. Throws svg::ExcChildNotFound if not found. | |
const Node & | operator/ (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 Doc * | getDoc () const |
Returns the svg::Doc this Node is an element of. | |
const Node * | getParent () 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 Style & | getStyle () 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 Paint & | getFill () const |
Returns node's fill, or the first among its ancestors when it has none. | |
const Paint & | getStroke () 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. | |
Static Public Member Functions | |
static DocRef | create (const fs::path &filePath) |
static DocRef | create (DataSourceRef dataSource, const fs::path &filePath=fs::path()) |
static DocRef | createFromSvgz (DataSourceRef dataSource, const fs::path &filePath=fs::path()) |
Protected Member Functions | |
Node * | nodeUnderPoint (const Vec2f &absolutePoint, const MatrixAffine2f &parentInverseMatrix) const |
Shape2d | getMergedShape2d () 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< Group > | mDefs |
const Node * | mParent |
std::string | mId |
Style | mStyle |
bool | mSpecifiesTransform |
MatrixAffine2f | mTransform |
bool | mBoundingBoxCached |
Rectf | mBoundingBox |
Represents an SVG Document. See SVG Document Structure http://www.w3.org/TR/SVG/struct.html.
cinder::svg::Doc::Doc | ( | ) |
cinder::svg::Doc::Doc | ( | const fs::path & | filePath | ) |
cinder::svg::Doc::Doc | ( | DataSourceRef | dataSource, | |
const fs::path & | filePath = fs::path() | |||
) |
DocRef cinder::svg::Doc::create | ( | const fs::path & | filePath | ) | [static] |
DocRef cinder::svg::Doc::create | ( | DataSourceRef | dataSource, | |
const fs::path & | filePath = fs::path() | |||
) | [static] |
DocRef cinder::svg::Doc::createFromSvgz | ( | DataSourceRef | dataSource, | |
const fs::path & | filePath = fs::path() | |||
) | [static] |
int32_t cinder::svg::Doc::getWidth | ( | ) | const |
Returns the width of the document in pixels.
int32_t cinder::svg::Doc::getHeight | ( | ) | const |
Returns the height of the document in pixels.
Vec2i cinder::svg::Doc::getSize | ( | ) | const |
Returns the size of the document in pixels.
float cinder::svg::Doc::getAspectRatio | ( | ) | const |
Returns the aspect ratio of the Doc (width / height).
float cinder::svg::Doc::getDpi | ( | ) | const |
Returns the document's dots-per-inch. Currently hardcoded to 72.
shared_ptr< Surface8u > cinder::svg::Doc::loadImage | ( | fs::path | relativePath | ) |
Utility function to load an image relative to the document. Caches results.
const T* cinder::svg::Group::find | ( | const std::string & | id | ) | [inherited] |
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 [inherited] |
Recursively searches for a child element named id. Returns NULL on failure.
const Node * cinder::svg::Group::findInAncestors | ( | const std::string & | elementId | ) | const [virtual, inherited] |
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 [inherited] |
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 [inherited] |
Returns a reference to the child named id. Throws svg::ExcChildNotFound if not found.
virtual Shape2d cinder::svg::Group::getShape | ( | ) | const [virtual, inherited] |
Returns the merged Shape2d for all children of the group.
Reimplemented from cinder::svg::Node.
void cinder::svg::Group::appendMergedShape2d | ( | Shape2d * | appendTo | ) | const [inherited] |
Appends the merged Shape2d for the group to appentTo.
const std::list<Node*>& cinder::svg::Group::getChildren | ( | ) | const [inherited] |
Returns a reference to the list of the Group's children.
std::list<Node*>& cinder::svg::Group::getChildren | ( | ) | [inherited] |
Returns a reference to the list of the Group's children.
Node * cinder::svg::Group::nodeUnderPoint | ( | const Vec2f & | absolutePoint, | |
const MatrixAffine2f & | parentInverseMatrix | |||
) | const [protected, inherited] |
Shape2d cinder::svg::Group::getMergedShape2d | ( | ) | const [protected, inherited] |
Rectf cinder::svg::Group::calcBoundingBox | ( | ) | const [protected, virtual, inherited] |
Reimplemented from cinder::svg::Node.
virtual bool cinder::svg::Group::isDrawable | ( | ) | const [protected, virtual, inherited] |
Reimplemented from cinder::svg::Node.
void cinder::svg::Group::parse | ( | const XmlTree & | xml | ) | [protected, inherited] |
Doc * cinder::svg::Node::getDoc | ( | ) | const [inherited] |
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] |
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] |
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] |
std::list<Node*> cinder::svg::Group::mChildren [protected, inherited] |
std::shared_ptr<Group> cinder::svg::Group::mDefs [protected, inherited] |
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.
MatrixAffine2f cinder::svg::Node::mTransform [protected, inherited] |
Reimplemented in cinder::svg::Gradient.
bool cinder::svg::Node::mBoundingBoxCached [mutable, protected, inherited] |
Rectf cinder::svg::Node::mBoundingBox [mutable, protected, inherited] |