18 #ifndef _GAZEBO_SVGLOADER_HH_    19 #define _GAZEBO_SVGLOADER_HH_    25 #include <ignition/math/Vector2.hh>    26 #include <ignition/math/Matrix3.hh>    39     class SVGLoaderPrivate;
    42     class GZ_COMMON_VISIBLE 
SvgError: 
public std::runtime_error
    46       public: 
SvgError(
const std::string &_what);
    78       std::vector< std::vector<SVGCommand> > 
subpaths;
    81       std::vector< std::vector<ignition::math::Vector2d> > 
polylines;
    98       public: 
bool Parse(
const std::string &_filename,
    99                          std::vector<SVGPath> &_paths);
   106       public: 
static void PathsToClosedPolylines(
   107           const std::vector<common::SVGPath> &_paths,
   109           std::vector< std::vector<ignition::math::Vector2d> > &_closedPolys,
   110           std::vector< std::vector<ignition::math::Vector2d> > &_openPolys);
   115       public: 
void DumpPaths(
const std::vector<SVGPath> &_paths,
   116                              std::ostream &_out) 
const;
   121       private: 
void GetPathCommands(
const std::vector<std::string> &_tokens,
   127       private: 
void GetPathAttribs(TiXmlElement *_pElement, 
SVGPath &_path);
   132       private: 
void GetSvgPaths(TiXmlNode *_pParent,
   133                                   std::vector<SVGPath> &_paths);
   138       private: 
void ExpandCommands(
   139                       const std::vector< std::vector<SVGCommand> > &_subpaths,
   146       private: 
void SplitSubpaths(
const std::vector<SVGCommand> &_cmds,
   147                       std::vector< std::vector<SVGCommand> > &_subpaths);
   153       private: 
void PathToPoints(
const SVGPath &_path,
   155                   std::vector< std::vector<ignition::math::Vector2d> > &_polys);
   162       private: ignition::math::Vector2d SubpathToPolyline(
   163                       const std::vector<SVGCommand> &_subpath,
   164                       ignition::math::Vector2d _last,
   165                       std::vector<ignition::math::Vector2d> &_polyline);
   169       private: SVGLoaderPrivate *dataPtr;
 std::vector< std::vector< ignition::math::Vector2d > > polylines
The polylines described by the commands. 
Definition: SVGLoader.hh:81
 
SVG command data structure. 
Definition: SVGLoader.hh:50
 
Handles errors during SVG parsing. 
Definition: SVGLoader.hh:42
 
ignition::math::Matrix3d transform
A 2D transform (or a list of transforms) 
Definition: SVGLoader.hh:75
 
Forward declarations for the common classes. 
Definition: Animation.hh:33
 
std::string style
The style (i.e. stroke style, color, thickness etc) 
Definition: SVGLoader.hh:72
 
A loader for SVG files. 
Definition: SVGLoader.hh:85
 
SVGCommand()
Constructor. 
Definition: SVGLoader.hh:53
 
std::vector< std::vector< SVGCommand > > subpaths
A list of subpaths (as lists of commands) 
Definition: SVGLoader.hh:78
 
std::vector< double > numbers
Coordinates for the command. 
Definition: SVGLoader.hh:62
 
std::string id
An id or name. 
Definition: SVGLoader.hh:69
 
An SVG path element data structure. 
Definition: SVGLoader.hh:66
 
char cmd
A letter that describe the segment. 
Definition: SVGLoader.hh:59