Easy to use SVG library for C++ (fork)
This library is a single file header-only C++ library for creating SVG files.
Simple-SVG was written to provide an easy API to allow beginners to become more accustomed to C++ by easily creating graphics.
This project creates files that can then be viewed by a sister project File Monitor. As you make changes to your SVG document, you will automatically see an updated image in File Monitor.
This is a fork/clone of the original code here.
mkdir build
cd build
cmake ..
make
This will create the demo executable simple_svg
and the test executable simple_svg_test
, and run the tests.
You can run the demo with:
simple_svg
to create a demo SVG file, my_svg.svg
.
You can run the tests with:
ctest # brief info on success or failure
or with
simple_svg_test # detailed info on success or failure
to see the details of the tests.
Running cppcheck
on the code:
cppcheck --enable=style --check-level=exhaustive main_1.0.0.cpp
produced errors against the cppcheck
ruleset.
These errors were fixed by making explicit
constructors for Dimensions, Point, Layout, Color
and updating code that uses these classes.
Color - Serializable
Fill - Serializable
Stroke - Serializable
Font - Serializable
ShapeColl - Shape
Circle - Shape
Elipse - Shape
Rectangle - Shape
Line - Shape
Polygon - Shape
Path - Shape
Polyline - Shape
Text - Shape
LineChart - Shape
Document - Neither
A Document
instance creates a svg file.
You can add any number of Shape instances to the document.
You use the serializable classes to set the properties of the shapes.
See demo code in main_1.0.0.cpp
for example usage.