summaryrefslogtreecommitdiffstats
path: root/src/live_effects/parameter/array.cpp
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/live_effects/parameter/array.cpp77
1 files changed, 35 insertions, 42 deletions
diff --git a/src/live_effects/parameter/array.cpp b/src/live_effects/parameter/array.cpp
index 33cb53f4e..c8ee63fec 100644
--- a/src/live_effects/parameter/array.cpp
+++ b/src/live_effects/parameter/array.cpp
@@ -5,9 +5,7 @@
*/
#include "live_effects/parameter/array.h"
-
#include "helper-fns.h"
-
#include <2geom/coord.h>
#include <2geom/point.h>
@@ -15,6 +13,35 @@ namespace Inkscape {
namespace LivePathEffect {
+//TODO: move maybe to svg-lenght.cpp
+unsigned int
+sp_svg_satellite_read_d(gchar const *str, Geom::Satellite *sat){
+ if (!str) {
+ return 0;
+ }
+ gchar ** strarray = g_strsplit(str, ",", 8);
+ if(strarray[7] && !strarray[8]){
+ sat->setSatelliteType(g_strstrip(strarray[0]));
+ sat->isTime = strncmp(strarray[1],"1",1) == 0;
+ sat->active = strncmp(strarray[2],"1",1) == 0;
+ sat->hasMirror = strncmp(strarray[3],"1",1) == 0;
+ sat->hidden = strncmp(strarray[4],"1",1) == 0;
+ double amount,angle;
+ float stepsTmp;
+ sp_svg_number_read_d(strarray[5], &amount);
+ sp_svg_number_read_d(strarray[6], &angle);
+ sp_svg_number_read_f(strarray[7], &stepsTmp);
+ unsigned int steps = (unsigned int)stepsTmp;
+ sat->amount = amount;
+ sat->angle = angle;
+ sat->steps = steps;
+ g_strfreev (strarray);
+ return 1;
+ }
+ g_strfreev (strarray);
+ return 0;
+}
+
template <>
double
ArrayParam<double>::readsvg(const gchar * str)
@@ -47,51 +74,17 @@ ArrayParam<Geom::Point>::readsvg(const gchar * str)
}
return Geom::Point(Geom::infinity(),Geom::infinity());
}
-//TODO: move maybe to svg-lenght.cpp
-unsigned int
-sp_svg_satellite_read_d(gchar const *str, Geom::Satellite *sat){
- if (!str) {
- return 0;
- }
- gchar ** strarray = g_strsplit(str, "*", 0);
- if(strarray[8] && !strarray[9]){
- sat->setSatelliteType(strarray[0]);
- sat->setIsTime(strncmp(strarray[1],"1",1) == 0);
- sat->setIsEndOpen(strncmp(strarray[2],"1",1) == 0);
- sat->setActive(strncmp(strarray[3],"1",1) == 0);
- sat->setHasMirror(strncmp(strarray[4],"1",1) == 0);
- sat->setHidden(strncmp(strarray[5],"1",1) == 0);
- double amount,angle;
- float stepsTmp;
- sp_svg_number_read_d(strarray[6], &amount);
- sp_svg_number_read_d(strarray[7], &angle);
- sp_svg_number_read_f(strarray[8], &stepsTmp);
- unsigned int steps = (unsigned int)stepsTmp;
- sat->setAmount(amount);
- sat->setAngle(angle);
- sat->setSteps(steps);
- g_strfreev (strarray);
- return 1;
- }
- g_strfreev (strarray);
- return 0;
-}
template <>
-std::pair<size_t, Geom::Satellite>
-ArrayParam<std::pair<size_t, Geom::Satellite> >::readsvg(const gchar * str)
+Geom::Satellite
+ArrayParam<Geom::Satellite >::readsvg(const gchar * str)
{
- gchar ** strarray = g_strsplit(str, ",", 2);
- double index;
- std::pair<size_t, Geom::Satellite> result;
- unsigned int success = (int)sp_svg_number_read_d(strarray[0], &index);
Geom::Satellite sat;
- success += sp_svg_satellite_read_d(strarray[1], &sat);
- g_strfreev (strarray);
- if (success == 2) {
- return std::make_pair((size_t)index, sat);
+ if (sp_svg_satellite_read_d(str, &sat)) {
+ return sat;
}
- return std::make_pair((size_t)0,sat);
+ Geom::Satellite satellite(Geom::F, true, false, false, true, 0.0, 0.0, 0);
+ return satellite;
}
} /* namespace LivePathEffect */