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;
 
   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);
 
SVG command data structure. 
Definition: SVGLoader.hh:50
Handles errors during SVG parsing. 
Definition: SVGLoader.hh:42
Definition: SVGLoaderPrivate.hh:33
#define GZ_COMMON_VISIBLE
Definition: system.hh:84
A loader for SVG files. 
Definition: SVGLoader.hh:85
std::vector< std::vector< SVGCommand > > subpaths
A list of subpaths (as lists of commands) 
Definition: SVGLoader.hh:78
SVGCommand()
Constructor. 
Definition: SVGLoader.hh:53
std::vector< double > numbers
Coordinates for the command. 
Definition: SVGLoader.hh:62
std::string style
The style (i.e. stroke style, color, thickness etc) 
Definition: SVGLoader.hh:72
std::vector< std::vector< ignition::math::Vector2d > > polylines
The polylines described by the commands. 
Definition: SVGLoader.hh:81
std::string id
An id or name. 
Definition: SVGLoader.hh:69
char cmd
A letter that describe the segment. 
Definition: SVGLoader.hh:59
An SVG path element data structure. 
Definition: SVGLoader.hh:66
ignition::math::Matrix3d transform
A 2D transform (or a list of transforms) 
Definition: SVGLoader.hh:75