SVG for C++
Loading...
Searching...
No Matches
Public Member Functions | Static Public Attributes | Protected Member Functions | List of all members
SVG::Line Class Reference

Inherits SVG::Shape.

Public Member Functions

ElementKind kind () const override
 
 Line (double x1, double x2, double y1, double y2)
 
 Line (Point x, Point y)
 
virtual double x () const override
 
virtual double y () const override
 
double x1 () const
 
double x2 () const
 
double y1 () const
 
double y2 () const
 
double width () const override
 
double height () const override
 
double length () const
 
double slope () const
 
double angle () const
 
std::pair< double, double > along (double percent) const
 
- Public Member Functions inherited from SVG::Shape
 operator Point () const
 
virtual std::vector< Point > points () const
 
 Element ()=default
 
 Element (const Element &other)
 
 Element (Element &&other) noexcept
 
 Element (const char *id)
 
- Public Member Functions inherited from SVG::Element
 Element (const Element &other)
 
 Element (Element &&other) noexcept
 
Elementoperator= (const Element &)=delete
 
Elementoperator= (Element &&other) noexcept
 
 Element (const char *id)
 
 operator std::string () const
 
std::unique_ptr< Elementclone_element () const
 
template<typename T , typename... Args>
T * add_child (Args &&... args)
 
template<typename T >
Elementoperator<< (T &&node)
 
template<typename T >
std::vector< T * > get_children ()
 
template<typename T >
std::vector< const T * > get_children () const
 
template<typename T >
std::vector< T * > get_immediate_children ()
 
template<typename T >
std::vector< const T * > get_immediate_children () const
 
Elementget_element_by_id (const std::string &id)
 
const Elementget_element_by_id (const std::string &id) const
 
std::vector< Element * > get_elements_by_class (const std::string &clsname)
 
std::vector< const Element * > get_elements_by_class (const std::string &clsname) const
 
const Elementparent () const
 
Elementid (const std::string &value)
 
std::string id () const
 
void autoscale (const Margins &margins=DEFAULT_MARGINS)
 
void autoscale (const double margin)
 
void autoscale (const AutoscaleOptions &options)
 
void responsive_autoscale (const Margins &margins=DEFAULT_MARGINS)
 
void responsive_autoscale (const double margin)
 
void responsive_autoscale (const AutoscaleOptions &options)
 
Elementlayout_bbox (const BoundingBox &bbox)
 
Elementbbox_padding (const Margins &padding)
 
Elementbbox_padding (double padding)
 
Elementclear_layout_bbox ()
 
bool has_layout_bbox () const
 
BoundingBox layout_bbox () const
 
Elementsnap_to (const Element &target, RelativeAlignment relative, Point offset=Point(0, 0))
 
Elementsnap_to (const Element &target, Alignment alignment, Point offset=Point(0, 0))
 
Elementalign_to (const Element &target, Axis axis, Point offset=Point(0, 0))
 
Elementalign_to (const Element &target, Axis axis, Anchor anchor, Point offset=Point(0, 0))
 
TransformList transform_list ()
 
TransformList transform_list () const
 
TransformList transform ()
 
TransformList transform () const
 
ChildMap get_children ()
 
ConstChildMap get_children () const
 
DepthFirstIterator begin ()
 
ConstDepthFirstIterator begin () const
 
DepthFirstIterator end ()
 
ConstDepthFirstIterator end () const
 
DepthFirstRange depth_first ()
 
DepthFirstRange depth_first (TraversalOptions options)
 
ConstDepthFirstRange depth_first () const
 
ConstDepthFirstRange depth_first (TraversalOptions options) const
 
DepthFirstRange descendants ()
 
DepthFirstRange descendants (TraversalOptions options)
 
ConstDepthFirstRange descendants () const
 
ConstDepthFirstRange descendants (TraversalOptions options) const
 
template<>
Element::ChildList get_immediate_children ()
 
template<>
Element::ConstChildList get_immediate_children () const
 
 AttributeMap ()=default
 
 AttributeMap (SVGAttrib _attr)
 
- Public Member Functions inherited from SVG::AttributeMap
 AttributeMap (SVGAttrib _attr)
 
const SVGAttrib & attrs () const
 
bool has_attr (const std::string &key) const
 
std::string get_attr (const std::string &key, const std::string &fallback="") const
 
template<typename T >
std::enable_if< detail::is_numeric_attr_type< T >::value, T >::type get_attr (const std::string &key, T fallback) const
 
template<typename T >
AttributeMapset_attr (const std::string key, T value)
 
AttributeMapset_attr (const std::string key, const Color &value)
 
AttributeMapset_attrs (std::initializer_list< std::pair< std::string, std::string > > values)
 
AttributeMapset_attrs (const SVGAttrib &values)
 
AttrSetter set_attr (const std::string key)
 
ClassList class_list ()
 
ClassList class_list () const
 
TransformList transform_list ()
 
TransformList transform_list () const
 
TransformList transform ()
 
TransformList transform () const
 
template<>
AttributeMapset_attr (const std::string key, const double value)
 
template<>
AttributeMapset_attr (const std::string key, const char *value)
 
template<>
AttributeMapset_attr (const std::string key, const std::string value)
 

Static Public Attributes

static constexpr ElementKind static_kind = ElementKind::Line
 

Protected Member Functions

Element::BoundingBox get_bbox () const override
 
std::unique_ptr< Elementclone_element_impl () const override
 
- Protected Member Functions inherited from SVG::Element
std::vector< Element * > get_children_helper ()
 
std::vector< const Element * > get_children_helper () const
 
BoundingBox get_autoscale_bbox () const
 
BoundingBox measured_layout_bbox () const
 
BoundingBox include_stroke_width (const BoundingBox &bbox) const
 
void autoscale_nested_svgs (const AutoscaleOptions &options, bool responsive)
 
void get_bbox (Element::BoundingBox &, bool visible_only=true) const
 
void set_viewbox_from_bbox (const BoundingBox &bbox, const Margins &margins)
 
virtual std::string svg_to_string (const size_t indent_level) const
 
virtual std::string tag ()
 
virtual std::string tag () const
 
template<typename T >
std::unique_ptr< T > clone_as () const
 
void set_attr_value (const std::string &key, const std::string &value) override
 
AttrSetter make_attr_setter (const std::string &key) override
 
SVGowner_svg ()
 
const SVGowner_svg () const
 
void set_owner_svg (SVG *owner)
 
void register_subtree_ids ()
 
void unregister_subtree_ids ()
 
void register_own_id ()
 
void unregister_own_id ()
 
void clear_children ()
 
Elementinsert_child (std::unique_ptr< Element > child, ChildIterator position)
 
void reparent_children ()
 
double find_numeric (const std::string &key) const
 
- Protected Member Functions inherited from SVG::AttributeMap
SVGAttrib & mutable_attrs ()
 

Additional Inherited Members

- Public Types inherited from SVG::Element
using ChildList = std::vector< Element * >
 
using ConstChildList = std::vector< const Element * >
 
using ChildMap = std::map< std::string, ChildList >
 
using ConstChildMap = std::map< std::string, ConstChildList >
 
- Protected Types inherited from SVG::Element
using ChildIterator = std::vector< std::unique_ptr< Element > >::iterator
 
- Static Protected Member Functions inherited from SVG::Element
static detail::AffineTransform transform_for (const Element *element, const detail::AffineTransform &parent_transform)
 
- Protected Attributes inherited from SVG::Element
std::vector< std::unique_ptr< Element > > children
 

Member Function Documentation

◆ along()

std::pair< double, double > SVG::Line::along ( double  percent) const
inline

Return the coordinates required to place an element along this line

◆ clone_element_impl()

std::unique_ptr< Element > SVG::Line::clone_element_impl ( ) const
inlineoverrideprotectedvirtual

Reimplemented from SVG::Element.

◆ get_bbox()

Element::BoundingBox SVG::Line::get_bbox ( ) const
inlineoverrideprotectedvirtual

Reimplemented from SVG::Element.

◆ height()

double SVG::Line::height ( ) const
inlineoverridevirtual

Reimplemented from SVG::Shape.

◆ kind()

ElementKind SVG::Line::kind ( ) const
inlineoverridevirtual

Return the element category used by typed traversal; custom subclasses default to Custom.

Reimplemented from SVG::Element.

◆ width()

double SVG::Line::width ( ) const
inlineoverridevirtual

Reimplemented from SVG::Shape.

◆ x()

virtual double SVG::Line::x ( ) const
inlineoverridevirtual

Reimplemented from SVG::Shape.

◆ y()

virtual double SVG::Line::y ( ) const
inlineoverridevirtual

Reimplemented from SVG::Shape.


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