Code

minor changes for svg document
[inkscape.git] / src / dom / svgimpl.h
1 #ifndef __SVGIMPL_H__
2 #define __SVGIMPL_H__
4 /**
5  * Phoebe DOM Implementation.
6  *
7  * This is a C++ approximation of the W3C DOM model, which follows
8  * fairly closely the specifications in the various .idl files, copies of
9  * which are provided for reference.  Most important is this one:
10  *
11  * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
12  *
13  * Authors:
14  *   Bob Jamison
15  *
16  * Copyright (C) 2006-2008 Bob Jamison
17  *
18  *  This library is free software; you can redistribute it and/or
19  *  modify it under the terms of the GNU Lesser General Public
20  *  License as published by the Free Software Foundation; either
21  *  version 2.1 of the License, or (at your option) any later version.
22  *
23  *  This library is distributed in the hope that it will be useful,
24  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
25  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
26  *  Lesser General Public License for more details.
27  *
28  *  You should have received a copy of the GNU Lesser General Public
29  *  License along with this library; if not, write to the Free Software
30  *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
31  */
34 #include "svg.h"
35 #include "dom/domimpl.h"
36 #include "dom/smilimpl.h"
38 #include <math.h>
42 namespace org
43 {
44 namespace w3c
45 {
46 namespace dom
47 {
48 namespace svg
49 {
52 //local definitions
53 typedef dom::DOMString DOMString;
54 typedef dom::DOMException DOMException;
55 typedef dom::Element Element;
56 typedef dom::Document Document;
57 typedef dom::NodeList NodeList;
61 class SVGSVGElementImpl;
62 typedef Ptr<SVGSVGElementImpl> SVGSVGElementImplPtr;
63 class SVGElementImpl;
64 typedef Ptr<SVGElementImpl> SVGElementImplPtr;
65 class SVGDocumentImpl;
66 typedef Ptr<SVGDocumentImpl> SVGDocumentImplPtr;
68 /*#########################################################################
69 ## SVGDocumentImpl
70 #########################################################################*/
72 /**
73  *
74  */
75 class SVGDocumentImpl : virtual public SVGDocument, public DocumentImpl
76 {
77 public:
80     /**
81      *
82      */
83     virtual DOMString getTitle()
84         { return title; }
86     /**
87      *
88      */
89     virtual DOMString getReferrer()
90         { return referrer; }
92     /**
93      *
94      */
95     virtual DOMString getDomain()
96         { return domain; }
98     /**
99      *
100      */
101     virtual DOMString getURL()
102         { return url; }
104     /**
105      *
106      */
107     virtual SVGSVGElementPtr getRootElement()
108         { return rootElement; }
111     //####################################################
112     //# Overload some createXXX() methods from DocumentImpl,
113     //# To create our SVG-DOM types (in .cpp)
114     //####################################################
116     /**
117      *
118      */
119     virtual ElementPtr createElement(const DOMString& tagName)
120                            throw(DOMException);
123     /**
124      *
125      */
126     virtual ElementPtr createElementNS(const DOMString& namespaceURI,
127                                        const DOMString& qualifiedName)
128                                        throw(DOMException);
130     //##################
131     //# Non-API methods
132     //##################
134     SVGDocumentImpl(const DOMImplementation *domImpl,
135                     const DOMString         &namespaceURI,
136                     const DOMString         &qualifiedName,
137                     const DocumentTypePtr   doctype)
138                     : DocumentImpl(domImpl, namespaceURI,
139                           qualifiedName, doctype)
140         {
141         init();
142         }
145     /**
146      *
147      */
148     virtual ~SVGDocumentImpl()
149         {
150         }
152 protected:
154 friend class SvgParser;
156     void init();
158     DOMString title;
159     DOMString referrer;
160     DOMString domain;
161     DOMString url;
162     SVGSVGElementImplPtr rootElement;
163 };
167 /*#########################################################################
168 ## SVGElementImpl
169 #########################################################################*/
171 /**
172  *
173  */
174 class SVGElementImpl : virtual public SVGElement,
175                        public ElementImpl
177 public:
179     /**
180      *
181      */
182     virtual DOMString getId()
183         { return id; }
185     /**
186      *
187      */
188     virtual void setId(const DOMString &val)
189                        throw (DOMException)
190         { id = val; }
192     /**
193      *
194      */
195     virtual DOMString getXmlBase()
196         { return xmlBase; }
198     /**
199      *
200      */
201     virtual void setXmlBase(const DOMString &val)
202                             throw (DOMException)
203         { xmlBase = val; }
205     /**
206      *
207      */
208     virtual SVGSVGElementPtr getOwnerSVGElement()
209         { return ownerSvgElement; }
211     /**
212      *
213      */
214     virtual SVGElementPtr getViewportElement()
215         { return viewportElement; }
218     //##################
219     //# Non-API methods
220     //##################
223     /**
224      *
225      */
226     SVGElementImpl()
227         {}
229     /**
230      *
231      */
232     SVGElementImpl(SVGDocumentImplPtr owner, const DOMString &tagName)
233                     : ElementImpl(owner, tagName)
234         { init(); }
236     /**
237      *
238      */
239     SVGElementImpl(SVGDocumentImplPtr owner,
240                    const DOMString &namespaceURI,
241                    const DOMString &tagName)
242                    : ElementImpl(owner, namespaceURI, tagName)
243         { init(); }
246     /**
247      *
248      */
249     virtual ~SVGElementImpl()
250         {}
252 protected:
254     void init()
255         {
256         id              = "";
257         xmlBase         = "";
258         ownerSvgElement = NULL;
259         viewportElement = NULL;
260         }
262     DOMString        id;
263     DOMString        xmlBase;
264     SVGSVGElementPtr ownerSvgElement;
265     SVGElementPtr    viewportElement;
267 };
271 /*#########################################################################
272 ## SVGSVGElementImpl
273 #########################################################################*/
275 /**
276  *
277  */
278 class SVGSVGElementImpl : virtual public SVGSVGElement,
279                           public SVGElementImpl
281 public:
283     /**
284      *
285      */
286     virtual SVGAnimatedLength getX()
287         { return x; }
289     /**
290      *
291      */
292     virtual SVGAnimatedLength getY()
293         { return y; }
295     /**
296      *
297      */
298     virtual SVGAnimatedLength getWidth()
299         { return width; }
301     /**
302      *
303      */
304     virtual SVGAnimatedLength getHeight()
305         { return height; }
307     /**
308      *
309      */
310     virtual DOMString getContentScriptType()
311         { return contentScriptType; }
313     /**
314      *
315      */
316     virtual void setContentScriptType(const DOMString &val)
317                                      throw (DOMException)
318         { contentScriptType = val; }
321     /**
322      *
323      */
324     virtual DOMString getContentStyleType()
325         { return contentStyleType; }
327     /**
328      *
329      */
330     virtual void setContentStyleType(const DOMString &val)
331                                      throw (DOMException)
332         { contentStyleType = val; }
334     /**
335      *
336      */
337     virtual SVGRect getViewport()
338         { return viewport; }
340     /**
341      *
342      */
343     virtual double getPixelUnitToMillimeterX()
344         { return pixelUnitToMillimeterX; }
346     /**
347      *
348      */
349     virtual double getPixelUnitToMillimeterY()
350         { return pixelUnitToMillimeterY; }
352     /**
353      *
354      */
355     virtual double getScreenPixelToMillimeterX()
356         { return screenPixelToMillimeterX; }
358     /**
359      *
360      */
361     virtual double getScreenPixelToMillimeterY()
362         { return screenPixelToMillimeterY; }
365     /**
366      *
367      */
368     virtual bool getUseCurrentView()
369         { return useCurrentView; }
371     /**
372      *
373      */
374     virtual void setUseCurrentView(bool val) throw (DOMException)
375         { useCurrentView = val; }
377     /**
378      *
379      */
380     virtual SVGViewSpec getCurrentView()
381         { return currentView; }
384     /**
385      *
386      */
387     virtual double getCurrentScale()
388         { return currentScale; }
390     /**
391      *
392      */
393     virtual void setCurrentScale(double val) throw (DOMException)
394         { currentScale = val; }
397     /**
398      *
399      */
400     virtual SVGPoint getCurrentTranslate()
401         { return currentTranslate; }
404     /**
405      *
406      */
407     virtual unsigned long suspendRedraw (unsigned long max_wait_milliseconds );
409     /**
410      *
411      */
412     virtual void unsuspendRedraw (unsigned long suspend_handle_id )
413                                   throw( DOMException );
415     /**
416      *
417      */
418     virtual void unsuspendRedrawAll (  );
420     /**
421      *
422      */
423     virtual void forceRedraw (  );
425     /**
426      *
427      */
428     virtual void pauseAnimations (  );
430     /**
431      *
432      */
433     virtual void unpauseAnimations (  );
435     /**
436      *
437      */
438     virtual bool animationsPaused (  );
440     /**
441      *
442      */
443     virtual double getCurrentTime (  )
444         { return currentTime; }
446     /**
447      *
448      */
449     virtual void setCurrentTime (double seconds )
450         { currentTime = seconds; }
452     /**
453      *
454      */
455     virtual NodeList getIntersectionList (const SVGRect &rect,
456                                           const SVGElementPtr referenceElement );
458     /**
459      *
460      */
461     virtual NodeList getEnclosureList (const SVGRect &rect,
462                                        const SVGElementPtr referenceElement );
464     /**
465      *
466      */
467     virtual bool checkIntersection (const SVGElementPtr element, const SVGRect &rect );
469     /**
470      *
471      */
472     virtual bool checkEnclosure (const SVGElementPtr element, const SVGRect &rect );
474     /**
475      *
476      */
477     virtual void deselectAll (  );
479     /**
480      *
481      */
482     virtual SVGNumber createSVGNumber (  )
483         {
484         SVGNumber ret;
485         return ret;
486         }
488     /**
489      *
490      */
491     virtual SVGLength createSVGLength (  )
492         {
493         SVGLength ret;
494         return ret;
495         }
497     /**
498      *
499      */
500     virtual SVGAngle createSVGAngle (  )
501         {
502         SVGAngle ret;
503         return ret;
504         }
506     /**
507      *
508      */
509     virtual SVGPoint createSVGPoint (  )
510         {
511         SVGPoint ret;
512         return ret;
513         }
515     /**
516      *
517      */
518     virtual SVGMatrix createSVGMatrix (  )
519         {
520         SVGMatrix ret;
521         return ret;
522         }
524     /**
525      *
526      */
527     virtual SVGRect createSVGRect (  )
528         {
529         SVGRect ret;
530         return ret;
531         }
533     /**
534      *
535      */
536     virtual SVGTransform createSVGTransform (  )
537         {
538         SVGTransform ret;
539         return ret;
540         }
542     /**
543      *
544      */
545     virtual SVGTransform createSVGTransformFromMatrix(const SVGMatrix &matrix )
546         {
547         SVGTransform ret;
548         ret.setMatrix(matrix);
549         return ret;
550         }
553     /**
554      *
555      */
556     virtual ElementPtr getElementById (const DOMString& elementId );
560     //##################
561     //# Non-API methods
562     //##################
564     /**
565      *
566      */
567     SVGSVGElementImpl() : SVGElementImpl()
568         {}
572     /**
573      *
574      */
575     virtual ~SVGSVGElementImpl() {}
577 protected:
579     SVGAnimatedLength x;
580     SVGAnimatedLength y;
581     SVGAnimatedLength width;
582     SVGAnimatedLength height;
583     DOMString         contentScriptType;
584     DOMString         contentStyleType;
585     SVGRect           viewport;
586     double            pixelUnitToMillimeterX;
587     double            pixelUnitToMillimeterY;
588     double            screenPixelToMillimeterX;
589     double            screenPixelToMillimeterY;
590     bool              useCurrentView;
591     SVGViewSpec       currentView;
592     double            currentScale;
593     SVGPoint          currentTranslate;
595     double currentTime;
597 };
601 /*#########################################################################
602 ## SVGGElementImpl
603 #########################################################################*/
605 /**
606  *
607  */
608 class SVGGElementImpl : virtual public SVGGElement, public SVGElementImpl
610 public:
612     //##################
613     //# Non-API methods
614     //##################
616     /**
617      *
618      */
619     SVGGElementImpl() {}
621     /**
622      *
623      */
624     virtual ~SVGGElementImpl() {}
626 protected:
629 };
634 /*#########################################################################
635 ## SVGDefsElementImpl
636 #########################################################################*/
638 /**
639  *
640  */
641 class SVGDefsElementImpl : virtual public SVGDefsElement,
642                            public SVGElementImpl
644 public:
646     //##################
647     //# Non-API methods
648     //##################
650     /**
651      *
652      */
653     SVGDefsElementImpl() {}
655     /**
656      *
657      */
658     virtual ~SVGDefsElementImpl() {}
660 protected:
663 };
669 /*#########################################################################
670 ## SVGDescElementImpl
671 #########################################################################*/
673 /**
674  *
675  */
676 class SVGDescElementImpl :  virtual public SVGDescElement,
677                             public SVGElementImpl
679 public:
681     //##################
682     //# Non-API methods
683     //##################
685     /**
686      *
687      */
688     SVGDescElementImpl() {}
690     /**
691      *
692      */
693     virtual ~SVGDescElementImpl() {}
695 protected:
698 };
704 /*#########################################################################
705 ## SVGTitleElementImpl
706 #########################################################################*/
708 /**
709  *
710  */
711 class SVGTitleElementImpl : virtual public SVGTitleElement,
712                             public SVGElementImpl
714 public:
716     //##################
717     //# Non-API methods
718     //##################
720     /**
721      *
722      */
723     SVGTitleElementImpl() {}
725     /**
726      *
727      */
728     virtual ~SVGTitleElementImpl() {}
730 protected:
733 };
739 /*#########################################################################
740 ## SVGSymbolElementImpl
741 #########################################################################*/
743 /**
744  *
745  */
746 class SVGSymbolElementImpl : virtual public SVGSymbolElement,
747                              public SVGElementImpl
749 public:
751     //##################
752     //# Non-API methods
753     //##################
755     /**
756      *
757      */
758     SVGSymbolElementImpl() {}
760     /**
761      *
762      */
763     virtual ~SVGSymbolElementImpl() {}
765 protected:
768 };
774 /*#########################################################################
775 ## SVGUseElementImpl
776 #########################################################################*/
778 /**
779  *
780  */
781 class SVGUseElementImpl : public SVGElementImpl
783 public:
786     /**
787      *
788      */
789     virtual SVGAnimatedLength getX()
790         { return x; }
792     /**
793      *
794      */
795     virtual SVGAnimatedLength getY()
796         { return y; }
798     /**
799      *
800      */
801     virtual SVGAnimatedLength getWidth()
802         { return width; }
804     /**
805      *
806      */
807     virtual SVGAnimatedLength getHeight()
808         { return height; }
810     /**
811      *
812      */
813     virtual SVGElementInstance getInstanceRoot()
814         { return instanceRoot; }
816     /**
817      *
818      */
819     virtual SVGElementInstance getAnimatedInstanceRoot()
820         { return animatedInstanceRoot; }
824     //##################
825     //# Non-API methods
826     //##################
828     /**
829      *
830      */
831     SVGUseElementImpl() {}
833     /**
834      *
835      */
836     virtual ~SVGUseElementImpl() {}
838 protected:
840     SVGAnimatedLength x;
841     SVGAnimatedLength y;
842     SVGAnimatedLength width;
843     SVGAnimatedLength height;
844     SVGElementInstance instanceRoot;
845     SVGElementInstance animatedInstanceRoot;
846 };
854 /*#########################################################################
855 ## SVGImageElementImpl
856 #########################################################################*/
858 /**
859  *
860  */
861 class SVGImageElementImpl : virtual public SVGImageElement,
862                             public SVGElementImpl
864 public:
867     /**
868      *
869      */
870     virtual SVGAnimatedLength getX()
871         { return x; }
873     /**
874      *
875      */
876     virtual SVGAnimatedLength getY()
877         { return y; }
879     /**
880      *
881      */
882     virtual SVGAnimatedLength getWidth()
883         { return width; }
885     /**
886      *
887      */
888     virtual SVGAnimatedLength getHeight()
889         { return height; }
892     /**
893      *
894      */
895     virtual SVGAnimatedPreserveAspectRatio getPreserveAspectRatio()
896         { return preserveAspectRatio; }
900     //##################
901     //# Non-API methods
902     //##################
904     /**
905      *
906      */
907     SVGImageElementImpl() {}
909     /**
910      *
911      */
912     virtual ~SVGImageElementImpl() {}
914 protected:
916     SVGAnimatedLength x;
917     SVGAnimatedLength y;
918     SVGAnimatedLength width;
919     SVGAnimatedLength height;
920     SVGAnimatedPreserveAspectRatio preserveAspectRatio;
921 };
928 /*#########################################################################
929 ## SVGSwitchElementImpl
930 #########################################################################*/
932 /**
933  *
934  */
935 class SVGSwitchElementImpl : virtual public SVGSwitchElement,
936                              public SVGElementImpl
938 public:
940     //##################
941     //# Non-API methods
942     //##################
944     /**
945      *
946      */
947     SVGSwitchElementImpl() {}
949     /**
950      *
951      */
952     virtual ~SVGSwitchElementImpl() {}
954 protected:
957 };
963 /*#########################################################################
964 ## GetSVGDocumentImpl
965 #########################################################################*/
967 /**
968  *
969  */
970 class GetSVGDocumentImpl : public virtual GetSVGDocument
972 public:
974     /**
975      *
976      */
977     virtual SVGDocumentPtr getSVGDocument (  )
978                     throw( DOMException );
980     //##################
981     //# Non-API methods
982     //##################
984     /**
985      *
986      */
987     GetSVGDocumentImpl() {}
989     /**
990      *
991      */
992     virtual ~GetSVGDocumentImpl() {}
994 protected:
997 };
1005 /*#########################################################################
1006 ## SVGStyleElementImpl
1007 #########################################################################*/
1009 /**
1010  *
1011  */
1012 class SVGStyleElementImpl : virtual public SVGStyleElement,
1013                             public SVGElementImpl
1015 public:
1017     /**
1018      *
1019      */
1020     virtual DOMString getXmlspace()
1021         { return xmlSpace; }
1023     /**
1024      *
1025      */
1026     virtual void setXmlspace(const DOMString &val)
1027                              throw (DOMException)
1028         { xmlSpace = val; }
1030     /**
1031      *
1032      */
1033     virtual DOMString getType()
1034         { return type; }
1036     /**
1037      *
1038      */
1039     virtual void setType(const DOMString &val)
1040                          throw (DOMException)
1041         { type = val; }
1043     /**
1044      *
1045      */
1046     virtual DOMString getMedia()
1047         { return media; }
1049     /**
1050      *
1051      */
1052     virtual void setMedia(const DOMString &val)
1053                           throw (DOMException)
1054         { media = val; }
1056     /**
1057      *
1058      */
1059     virtual DOMString getTitle()
1060         { return title; }
1062     /**
1063      *
1064      */
1065     virtual void setTitle(const DOMString &val)
1066                           throw (DOMException)
1067         { title = val; }
1071     //##################
1072     //# Non-API methods
1073     //##################
1075     /**
1076      *
1077      */
1078     SVGStyleElementImpl() {}
1080     /**
1081      *
1082      */
1083     virtual ~SVGStyleElementImpl() {}
1085 protected:
1087     DOMString xmlSpace;
1088     DOMString type;
1089     DOMString media;
1090     DOMString title;
1092 };
1099 /*#########################################################################
1100 ## SVGPathElementImpl
1101 #########################################################################*/
1103 /**
1104  *
1105  */
1106 class SVGPathElementImpl : virtual public SVGPathElement,
1107                            public SVGElementImpl
1109 public:
1111     /**
1112      *
1113      */
1114     virtual SVGAnimatedNumber getPathLength();
1116     /**
1117      *
1118      */
1119     virtual double getTotalLength (  );
1121     /**
1122      *
1123      */
1124     virtual SVGPoint getPointAtLength (double distance );
1126     /**
1127      *
1128      */
1129     virtual unsigned long getPathSegAtLength (double distance );
1131     /**
1132      *
1133      */
1134     virtual SVGPathSegClosePath
1135               createSVGPathSegClosePath (  )
1136          {
1137          SVGPathSegClosePath ret;
1138          return ret;
1139          }
1141     /**
1142      *
1143      */
1144     virtual SVGPathSegMovetoAbs
1145               createSVGPathSegMovetoAbs (double x, double y )
1146          {
1147          SVGPathSegMovetoAbs ret(x, y);
1148          return ret;
1149          }
1151     /**
1152      *
1153      */
1154     virtual SVGPathSegMovetoRel
1155               createSVGPathSegMovetoRel (double x, double y )
1156          {
1157          SVGPathSegMovetoRel ret(x, y);
1158          return ret;
1159          }
1161     /**
1162      *
1163      */
1164     virtual SVGPathSegLinetoAbs
1165               createSVGPathSegLinetoAbs (double x, double y )
1166          {
1167          SVGPathSegLinetoAbs ret(x, y);
1168          return ret;
1169          }
1171     /**
1172      *
1173      */
1174     virtual SVGPathSegLinetoRel
1175               createSVGPathSegLinetoRel (double x, double y )
1176          {
1177          SVGPathSegLinetoRel ret(x, y);
1178          return ret;
1179          }
1181     /**
1182      *
1183      */
1184     virtual SVGPathSegCurvetoCubicAbs
1185               createSVGPathSegCurvetoCubicAbs (double x, double y,
1186                         double x1, double y1, double x2, double y2 )
1187          {
1188          SVGPathSegCurvetoCubicAbs ret(x, y, x1, y1, x2, y2);
1189          return ret;
1190          }
1192     /**
1193      *
1194      */
1195     virtual SVGPathSegCurvetoCubicRel
1196               createSVGPathSegCurvetoCubicRel (double x, double y,
1197                         double x1, double y1, double x2, double y2 )
1198          {
1199          SVGPathSegCurvetoCubicRel ret(x, y, x1, y1, x2, y2);
1200          return ret;
1201          }
1203     /**
1204      *
1205      */
1206     virtual SVGPathSegCurvetoQuadraticAbs
1207               createSVGPathSegCurvetoQuadraticAbs (double x, double y,
1208                          double x1, double y1 )
1209          {
1210          SVGPathSegCurvetoQuadraticAbs ret(x, y, x1, y1);
1211          return ret;
1212          }
1214     /**
1215      *
1216      */
1217     virtual SVGPathSegCurvetoQuadraticRel
1218               createSVGPathSegCurvetoQuadraticRel (double x, double y,
1219                          double x1, double y1 )
1220          {
1221          SVGPathSegCurvetoQuadraticRel ret(x, y, x1, y1);
1222          return ret;
1223          }
1225     /**
1226      *
1227      */
1228     virtual SVGPathSegArcAbs
1229               createSVGPathSegArcAbs (double x, double y,
1230                          double r1, double r2, double angle,
1231                          bool largeArcFlag, bool sweepFlag )
1232          {
1233          SVGPathSegArcAbs ret(x, y, r1, r2, angle, largeArcFlag, sweepFlag);
1234          return ret;
1235          }
1237     /**
1238      *
1239      */
1240     virtual SVGPathSegArcRel
1241               createSVGPathSegArcRel (double x, double y, double r1,
1242                          double r2, double angle, bool largeArcFlag,
1243                          bool sweepFlag )
1244          {
1245          SVGPathSegArcRel ret(x, y, r1, r2, angle, largeArcFlag, sweepFlag);
1246          return ret;
1247          }
1249     /**
1250      *
1251      */
1252     virtual SVGPathSegLinetoHorizontalAbs
1253               createSVGPathSegLinetoHorizontalAbs (double x )
1254          {
1255          SVGPathSegLinetoHorizontalAbs ret(x);
1256          return ret;
1257          }
1259     /**
1260      *
1261      */
1262     virtual SVGPathSegLinetoHorizontalRel
1263               createSVGPathSegLinetoHorizontalRel (double x )
1264          {
1265          SVGPathSegLinetoHorizontalRel ret(x);
1266          return ret;
1267          }
1269     /**
1270      *
1271      */
1272     virtual SVGPathSegLinetoVerticalAbs
1273               createSVGPathSegLinetoVerticalAbs (double y )
1274          {
1275          SVGPathSegLinetoVerticalAbs ret(y);
1276          return ret;
1277          }
1279     /**
1280      *
1281      */
1282     virtual SVGPathSegLinetoVerticalRel
1283               createSVGPathSegLinetoVerticalRel (double y )
1284          {
1285          SVGPathSegLinetoVerticalRel ret(y);
1286          return ret;
1287          }
1289     /**
1290      *
1291      */
1292     virtual SVGPathSegCurvetoCubicSmoothAbs
1293               createSVGPathSegCurvetoCubicSmoothAbs (double x, double y,
1294                                              double x2, double y2 )
1295          {
1296          SVGPathSegCurvetoCubicSmoothAbs ret(x, y, x2, y2);
1297          return ret;
1298          }
1300     /**
1301      *
1302      */
1303     virtual SVGPathSegCurvetoCubicSmoothRel
1304               createSVGPathSegCurvetoCubicSmoothRel (double x, double y,
1305                                                      double x2, double y2 )
1306          {
1307          SVGPathSegCurvetoCubicSmoothRel ret(x, y, x2, y2);
1308          return ret;
1309          }
1311     /**
1312      *
1313      */
1314     virtual SVGPathSegCurvetoQuadraticSmoothAbs
1315               createSVGPathSegCurvetoQuadraticSmoothAbs (double x, double y )
1316          {
1317          SVGPathSegCurvetoQuadraticSmoothAbs ret(x, y);
1318          return ret;
1319          }
1321     /**
1322      *
1323      */
1324     virtual SVGPathSegCurvetoQuadraticSmoothRel
1325               createSVGPathSegCurvetoQuadraticSmoothRel (double x, double y )
1326          {
1327          SVGPathSegCurvetoQuadraticSmoothRel ret(x, y);
1328          return ret;
1329          }
1333     //##################
1334     //# Non-API methods
1335     //##################
1337     /**
1338      *
1339      */
1340     SVGPathElementImpl() {}
1343     /**
1344      *
1345      */
1346     virtual ~SVGPathElementImpl() {}
1348 protected:
1351 };
1359 /*#########################################################################
1360 ## SVGRectElementImpl
1361 #########################################################################*/
1363 /**
1364  *
1365  */
1366 class SVGRectElementImpl : virtual public SVGRectElement,
1367                            public SVGElementImpl
1369 public:
1371     /**
1372      *
1373      */
1374     virtual SVGAnimatedLength getX()
1375         { return x; }
1377     /**
1378      *
1379      */
1380     virtual SVGAnimatedLength getY()
1381         { return y; }
1383     /**
1384      *
1385      */
1386     virtual SVGAnimatedLength getWidth()
1387         { return width; }
1389     /**
1390      *
1391      */
1392     virtual SVGAnimatedLength getHeight()
1393         { return height; }
1396     /**
1397      *
1398      */
1399     virtual SVGAnimatedLength getRx()
1400         { return rx; }
1402     /**
1403      *
1404      */
1405     virtual SVGAnimatedLength getRy()
1406         { return ry; }
1410     //##################
1411     //# Non-API methods
1412     //##################
1414     /**
1415      *
1416      */
1417     SVGRectElementImpl() {}
1419     /**
1420      *
1421      */
1422     virtual ~SVGRectElementImpl() {}
1424 protected:
1426     SVGAnimatedLength x;
1427     SVGAnimatedLength y;
1428     SVGAnimatedLength width;
1429     SVGAnimatedLength height;
1430     SVGAnimatedLength rx;
1431     SVGAnimatedLength ry;
1433 };
1440 /*#########################################################################
1441 ## SVGCircleElementImpl
1442 #########################################################################*/
1444 /**
1445  *
1446  */
1447 class SVGCircleElementImpl : virtual public SVGCircleElement,
1448                              public SVGElementImpl
1450 public:
1452     /**
1453      *
1454      */
1455     virtual SVGAnimatedLength getCx()
1456         { return cx; }
1458     /**
1459      *
1460      */
1461     virtual SVGAnimatedLength getCy()
1462         { return cy; }
1464     /**
1465      *
1466      */
1467     virtual SVGAnimatedLength getR()
1468         { return r; }
1472     //##################
1473     //# Non-API methods
1474     //##################
1476     /**
1477      *
1478      */
1479     SVGCircleElementImpl() {}
1481     /**
1482      *
1483      */
1484     virtual ~SVGCircleElementImpl() {}
1486 protected:
1488     SVGAnimatedLength cx;
1489     SVGAnimatedLength cy;
1490     SVGAnimatedLength r;
1491 };
1498 /*#########################################################################
1499 ## SVGEllipseElementImpl
1500 #########################################################################*/
1502 /**
1503  *
1504  */
1505 class SVGEllipseElementImpl : virtual public SVGEllipseElement,
1506                               public SVGElementImpl
1508 public:
1510     /**
1511      *
1512      */
1513     virtual SVGAnimatedLength getCx()
1514         { return cx; }
1516     /**
1517      *
1518      */
1519     virtual SVGAnimatedLength getCy()
1520         { return cy; }
1522     /**
1523      *
1524      */
1525     virtual SVGAnimatedLength getRx()
1526         { return rx; }
1528     /**
1529      *
1530      */
1531     virtual SVGAnimatedLength getRy()
1532         { return ry; }
1535     //##################
1536     //# Non-API methods
1537     //##################
1539     /**
1540      *
1541      */
1542     SVGEllipseElementImpl() {}
1544     /**
1545      *
1546      */
1547     virtual ~SVGEllipseElementImpl() {}
1549 protected:
1551     SVGAnimatedLength cx;
1552     SVGAnimatedLength cy;
1553     SVGAnimatedLength rx;
1554     SVGAnimatedLength ry;
1555 };
1562 /*#########################################################################
1563 ## SVGLineElement
1564 #########################################################################*/
1566 /**
1567  *
1568  */
1569 class SVGLineElementImpl : virtual public SVGLineElement,
1570                            public SVGElementImpl
1572 public:
1574     /**
1575      *
1576      */
1577     virtual SVGAnimatedLength getX1()
1578         { return x1; }
1580     /**
1581      *
1582      */
1583     virtual SVGAnimatedLength getY1()
1584         { return y1; }
1586     /**
1587      *
1588      */
1589     virtual SVGAnimatedLength getX2()
1590         { return x2; }
1592     /**
1593      *
1594      */
1595     virtual SVGAnimatedLength getY2()
1596         { return y2; }
1598     //##################
1599     //# Non-API methods
1600     //##################
1602     /**
1603      *
1604      */
1605     virtual ~SVGLineElementImpl() {}
1607 protected:
1609     SVGAnimatedLength x1;
1610     SVGAnimatedLength x2;
1611     SVGAnimatedLength y1;
1612     SVGAnimatedLength y2;
1613 };
1618 /*#########################################################################
1619 ## SVGPolylineElement
1620 #########################################################################*/
1622 /**
1623  *
1624  */
1625 class SVGPolylineElementImpl : virtual public SVGPolylineElement,
1626                                public SVGElementImpl
1628 public:
1630     //##################
1631     //# Non-API methods
1632     //##################
1634     /**
1635      *
1636      */
1637     virtual ~SVGPolylineElementImpl() {}
1639 protected:
1642 };
1648 /*#########################################################################
1649 ## SVGPolygonElementImpl
1650 #########################################################################*/
1652 /**
1653  *
1654  */
1655 class SVGPolygonElementImpl : virtual public SVGPolygonElement,
1656                               public SVGElementImpl
1658 public:
1660     //##################
1661     //# Non-API methods
1662     //##################
1664     /**
1665      *
1666      */
1667     virtual ~SVGPolygonElementImpl() {}
1669 protected:
1672 };
1678 /*#########################################################################
1679 ## SVGTextContentElement
1680 #########################################################################*/
1682 /**
1683  *
1684  */
1685 class SVGTextContentElementImpl : virtual public SVGTextContentElement,
1686                                   public SVGElementImpl
1688 public:
1690     /**
1691      *
1692      */
1693     virtual SVGAnimatedLength getTextLength();
1696     /**
1697      *
1698      */
1699     virtual SVGAnimatedEnumeration getLengthAdjust();
1702     /**
1703      *
1704      */
1705     virtual long getNumberOfChars(  );
1707     /**
1708      *
1709      */
1710     virtual double getComputedTextLength(  );
1712     /**
1713      *
1714      */
1715     virtual double getSubStringLength(unsigned long charnum,
1716                                       unsigned long nchars )
1717                                       throw( DOMException );
1719     /**
1720      *
1721      */
1722     virtual SVGPoint getStartPositionOfChar(unsigned long charnum )
1723                                             throw( DOMException );
1725     /**
1726      *
1727      */
1728     virtual SVGPoint getEndPositionOfChar(unsigned long charnum )
1729                                           throw( DOMException );
1731     /**
1732      *
1733      */
1734     virtual SVGRect getExtentOfChar(unsigned long charnum )
1735                                     throw( DOMException );
1737     /**
1738      *
1739      */
1740     virtual double getRotationOfChar(unsigned long charnum )
1741                                      throw( DOMException );
1743     /**
1744      *
1745      */
1746     virtual long getCharNumAtPosition(const SVGPoint &point );
1748     /**
1749      *
1750      */
1751     virtual void selectSubString(unsigned long charnum, unsigned long nchars )
1752                                  throw( DOMException );
1756     //##################
1757     //# Non-API methods
1758     //##################
1760     /**
1761      *
1762      */
1763     virtual ~SVGTextContentElementImpl() {}
1765 protected:
1768 };
1775 /*#########################################################################
1776 ## SVGTextPositioningElementImpl
1777 #########################################################################*/
1779 /**
1780  *
1781  */
1782 class SVGTextPositioningElementImpl : virtual public SVGTextPositioningElement,
1783                                       public SVGTextContentElementImpl
1785 public:
1789     /**
1790      *
1791      */
1792     virtual SVGAnimatedLength getX()
1793         { return x; }
1795     /**
1796      *
1797      */
1798     virtual SVGAnimatedLength getY()
1799         { return y; }
1801     /**
1802      *
1803      */
1804     virtual SVGAnimatedLength getDx()
1805         { return dx; }
1807     /**
1808      *
1809      */
1810     virtual SVGAnimatedLength getDy()
1811         { return dy; }
1814     /**
1815      *
1816      */
1817     virtual SVGAnimatedNumberList getRotate()
1818         { return rotate; }
1822     //##################
1823     //# Non-API methods
1824     //##################
1826     /**
1827      *
1828      */
1829     virtual ~SVGTextPositioningElementImpl() {}
1831 protected:
1833     SVGAnimatedLength x;
1834     SVGAnimatedLength y;
1835     SVGAnimatedLength dx;
1836     SVGAnimatedLength dy;
1837     SVGAnimatedNumberList rotate;
1839 };
1847 /*#########################################################################
1848 ## SVGTextElement
1849 #########################################################################*/
1851 /**
1852  *
1853  */
1854 class SVGTextElementImpl : virtual public SVGTextElement,
1855                            public SVGTextPositioningElementImpl
1857 public:
1859     //##################
1860     //# Non-API methods
1861     //##################
1863     /**
1864      *
1865      */
1866     virtual ~SVGTextElementImpl() {}
1868 protected:
1871 };
1877 /*#########################################################################
1878 ## SVGTSpanElement
1879 #########################################################################*/
1881 /**
1882  *
1883  */
1884 class SVGTSpanElementImpl : virtual public SVGTSpanElement,
1885                             public SVGTextPositioningElementImpl
1887 public:
1889     //##################
1890     //# Non-API methods
1891     //##################
1893     /**
1894      *
1895      */
1896     virtual ~SVGTSpanElementImpl() {}
1898 protected:
1901 };
1907 /*#########################################################################
1908 ## SVGTRefElement
1909 #########################################################################*/
1911 /**
1912  *
1913  */
1914 class SVGTRefElementImpl : virtual public SVGTRefElement,
1915                            public SVGTextPositioningElementImpl
1917 public:
1919     //##################
1920     //# Non-API methods
1921     //##################
1923     /**
1924      *
1925      */
1926     virtual ~SVGTRefElementImpl() {}
1928 protected:
1931 };
1937 /*#########################################################################
1938 ## SVGTextPathElement
1939 #########################################################################*/
1941 /**
1942  *
1943  */
1944 class SVGTextPathElementImpl : virtual public SVGTextPathElement,
1945                                public SVGTextContentElementImpl
1947 public:
1949     /**
1950      *
1951      */
1952     virtual SVGAnimatedLength getStartOffset()
1953         { return startOffset; }
1955     /**
1956      *
1957      */
1958     virtual SVGAnimatedEnumeration getMethod()
1959         { return method; }
1961     /**
1962      *
1963      */
1964     virtual SVGAnimatedEnumeration getSpacing()
1965         { return spacing; }
1969     //##################
1970     //# Non-API methods
1971     //##################
1973     /**
1974      *
1975      */
1976     virtual ~SVGTextPathElementImpl() {}
1978 protected:
1980     SVGAnimatedLength startOffset;
1981     SVGAnimatedEnumeration method;
1982     SVGAnimatedEnumeration spacing;
1983 };
1991 /*#########################################################################
1992 ## SVGAltGlyphElement
1993 #########################################################################*/
1995 /**
1996  *
1997  */
1998 class SVGAltGlyphElementImpl : virtual public SVGAltGlyphElement,
1999                                public SVGTextPositioningElementImpl
2001 public:
2003     /**
2004      *
2005      */
2006     virtual DOMString getGlyphRef()
2007         { return glyphRef; }
2009     /**
2010      *
2011      */
2012     virtual void setGlyphRef(const DOMString &val)
2013                              throw (DOMException)
2014         { glyphRef = val; }
2016     /**
2017      *
2018      */
2019     virtual DOMString getFormat()
2020         { return format; }
2022     /**
2023      *
2024      */
2025     virtual void setFormat(const DOMString &val)
2026                            throw (DOMException)
2027         { format = val; }
2032     //##################
2033     //# Non-API methods
2034     //##################
2036     /**
2037      *
2038      */
2039     virtual ~SVGAltGlyphElementImpl() {}
2041 protected:
2043     DOMString glyphRef;
2044     DOMString format;
2046 };
2054 /*#########################################################################
2055 ## SVGAltGlyphDefElementImpl
2056 #########################################################################*/
2058 /**
2059  *
2060  */
2061 class SVGAltGlyphDefElementImpl : virtual public SVGAltGlyphDefElement,
2062                                   public SVGElementImpl
2064 public:
2066     //##################
2067     //# Non-API methods
2068     //##################
2070     /**
2071      *
2072      */
2073     virtual ~SVGAltGlyphDefElementImpl() {}
2075 protected:
2078 };
2084 /*#########################################################################
2085 ## SVGAltGlyphItemElementImpl
2086 #########################################################################*/
2088 /**
2089  *
2090  */
2091 class SVGAltGlyphItemElementImpl : virtual public SVGAltGlyphItemElement,
2092                                    public SVGElementImpl
2094 public:
2096     //##################
2097     //# Non-API methods
2098     //##################
2100     /**
2101      *
2102      */
2103     virtual ~SVGAltGlyphItemElementImpl() {}
2105 protected:
2108 };
2114 /*#########################################################################
2115 ## SVGGlyphRefElementImpl
2116 #########################################################################*/
2118 /**
2119  *
2120  */
2121 class SVGGlyphRefElementImpl : virtual public SVGGlyphRefElement,
2122                                public SVGElementImpl
2124 public:
2125     /**
2126      *
2127      */
2128     virtual DOMString getGlyphRef()
2129         { return glyphRef; }
2131     /**
2132      *
2133      */
2134     virtual void setGlyphRef(const DOMString &val) throw (DOMException)
2135         { glyphRef = val; }
2137     /**
2138      *
2139      */
2140     virtual DOMString getFormat()
2141         { return format; }
2143     /**
2144      *
2145      */
2146     virtual void setFormat(const DOMString &val) throw (DOMException)
2147         { format = val; }
2149     /**
2150      *
2151      */
2152     virtual double getX()
2153         { return x; }
2155     /**
2156      *
2157      */
2158     virtual void setX(double val) throw (DOMException)
2159         { x = val; }
2161     /**
2162      *
2163      */
2164     virtual double getY()
2165         { return y; }
2167     /**
2168      *
2169      */
2170     virtual void setY(double val) throw (DOMException)
2171         { y = val; }
2173     /**
2174      *
2175      */
2176     virtual double getDx()
2177         { return dx; }
2179     /**
2180      *
2181      */
2182     virtual void setDx(double val) throw (DOMException)
2183         { dx = val; }
2185     /**
2186      *
2187      */
2188     virtual double getDy()
2189         { return dy; }
2191     /**
2192      *
2193      */
2194     virtual void setDy(double val) throw (DOMException)
2195         { dy = val; }
2200     //##################
2201     //# Non-API methods
2202     //##################
2204     /**
2205      *
2206      */
2207     virtual ~SVGGlyphRefElementImpl() {}
2209 protected:
2211     DOMString glyphRef;
2212     DOMString format;
2213     double x, y, dx, dy;
2215 };
2222 /*#########################################################################
2223 ## SVGMarkerElementImpl
2224 #########################################################################*/
2226 /**
2227  *
2228  */
2229 class SVGMarkerElementImpl : virtual public SVGMarkerElement,
2230                              public SVGElementImpl
2232 public:
2234     /**
2235      *
2236      */
2237     virtual SVGAnimatedLength getRefX()
2238         { return refX; }
2240     /**
2241      *
2242      */
2243     virtual SVGAnimatedLength getRefY()
2244         { return refY; }
2246     /**
2247      *
2248      */
2249     virtual SVGAnimatedEnumeration getMarkerUnits()
2250         { return markerUnits; }
2252     /**
2253      *
2254      */
2255     virtual SVGAnimatedLength getMarkerWidth()
2256         { return markerWidth; }
2258     /**
2259      *
2260      */
2261     virtual SVGAnimatedLength getMarkerHeight()
2262         { return markerHeight; }
2264     /**
2265      *
2266      */
2267     virtual SVGAnimatedEnumeration getOrientType()
2268         { return orientType; }
2270     /**
2271      *
2272      */
2273     virtual SVGAnimatedAngle getOrientAngle()
2274         { return orientAngle; }
2277     /**
2278      *
2279      */
2280     virtual void setOrientToAuto (  )
2281         { orientAuto = true; }
2283     /**
2284      *
2285      */
2286     virtual void setOrientToAngle (const SVGAngle &angle)
2287         {
2288         orientAuto = false;
2289         orientAngle = SVGAnimatedAngle(angle);
2290         }
2294     //##################
2295     //# Non-API methods
2296     //##################
2298     /**
2299      *
2300      */
2301     virtual ~SVGMarkerElementImpl() {}
2303 protected:
2305     SVGAnimatedLength      refX;
2306     SVGAnimatedLength      refY;
2307     SVGAnimatedEnumeration markerUnits;
2308     SVGAnimatedLength      markerWidth;
2309     SVGAnimatedLength      markerHeight;
2310     SVGAnimatedEnumeration orientType;
2311     SVGAnimatedAngle       orientAngle;
2312     bool                   orientAuto;
2315 };
2323 /*#########################################################################
2324 ## SVGColorProfileElementImpl
2325 #########################################################################*/
2327 /**
2328  *
2329  */
2330 class SVGColorProfileElementImpl : virtual public SVGColorProfileElement,
2331                                    public SVGElementImpl
2333 public:
2334     /**
2335      *
2336      */
2337     virtual DOMString getLocal()
2338         { return local; }
2340     /**
2341      *
2342      */
2343     virtual void setLocal(const DOMString &val) throw (DOMException)
2344         { local = val; }
2346     /**
2347      *
2348      */
2349     virtual DOMString getName()
2350         { return name; }
2352     /**
2353      *
2354      */
2355     virtual void setName(const DOMString &val) throw (DOMException)
2356        { name = val; }
2358     /**
2359      *
2360      */
2361     virtual unsigned short getRenderingIntent()
2362         { return renderingIntent; }
2364     /**
2365      *
2366      */
2367     virtual void setRenderingIntent(unsigned short val) throw (DOMException)
2368        { renderingIntent = val; }
2372     //##################
2373     //# Non-API methods
2374     //##################
2376     /**
2377      *
2378      */
2379     virtual ~SVGColorProfileElementImpl() {}
2381 protected:
2383     DOMString local;
2384     DOMString name;
2385     unsigned short renderingIntent;
2387 };
2393 /*#########################################################################
2394 ## SVGGradientElementImpl
2395 #########################################################################*/
2397 /**
2398  *
2399  */
2400 class SVGGradientElementImpl : virtual public SVGGradientElement,
2401                                public SVGElementImpl
2403 public:
2405     /**
2406      *
2407      */
2408     virtual SVGAnimatedEnumeration getGradientUnits()
2409         { return gradientUnits; }
2411     /**
2412      *
2413      */
2414     virtual SVGAnimatedTransformList getGradientTransform()
2415         { return gradientTransform; }
2417     /**
2418      *
2419      */
2420     virtual SVGAnimatedEnumeration getSpreadMethod()
2421         { return spreadMethod; }
2425     //##################
2426     //# Non-API methods
2427     //##################
2429     /**
2430      *
2431      */
2432     virtual ~SVGGradientElementImpl() {}
2434 protected:
2437     SVGAnimatedEnumeration   gradientUnits;
2438     SVGAnimatedTransformList gradientTransform;
2439     SVGAnimatedEnumeration   spreadMethod;
2440 };
2448 /*#########################################################################
2449 ## SVGLinearGradientElementImpl
2450 #########################################################################*/
2452 /**
2453  *
2454  */
2455 class SVGLinearGradientElementImpl : virtual public SVGLinearGradientElement,
2456                                      public SVGGradientElementImpl
2458 public:
2461     /**
2462      *
2463      */
2464     virtual SVGAnimatedLength getX1()
2465         { return x1; }
2467     /**
2468      *
2469      */
2470     virtual SVGAnimatedLength getY1()
2471         { return y1; }
2473     /**
2474      *
2475      */
2476     virtual SVGAnimatedLength getX2()
2477         { return x2; }
2479     /**
2480      *
2481      */
2482     virtual SVGAnimatedLength getY2()
2483         { return y2; }
2486     //##################
2487     //# Non-API methods
2488     //##################
2490     /**
2491      *
2492      */
2493     virtual ~SVGLinearGradientElementImpl() {}
2495 protected:
2497     SVGAnimatedLength x1, x2, y1, y2;
2499 };
2507 /*#########################################################################
2508 ## SVGRadialGradientElementImpl
2509 #########################################################################*/
2511 /**
2512  *
2513  */
2514 class SVGRadialGradientElementImpl : virtual public SVGRadialGradientElement,
2515                                      public SVGGradientElementImpl
2517 public:
2520     /**
2521      *
2522      */
2523     virtual SVGAnimatedLength getCx()
2524         { return cx; }
2527     /**
2528      *
2529      */
2530     virtual SVGAnimatedLength getCy()
2531         { return cy; }
2534     /**
2535      *
2536      */
2537     virtual SVGAnimatedLength getR()
2538         { return r; }
2541     /**
2542      *
2543      */
2544     virtual SVGAnimatedLength getFx()
2545         { return fx; }
2548     /**
2549      *
2550      */
2551     virtual SVGAnimatedLength getFy()
2552         { return fy; }
2557     //##################
2558     //# Non-API methods
2559     //##################
2561     /**
2562      *
2563      */
2564     virtual ~SVGRadialGradientElementImpl() {}
2566 protected:
2568     SVGAnimatedLength cx, cy, r, fx, fy;
2570 };
2578 /*#########################################################################
2579 ## SVGStopElementImpl
2580 #########################################################################*/
2582 /**
2583  *
2584  */
2585 class SVGStopElementImpl : virtual public SVGStopElement,
2586                            public SVGElementImpl
2588 public:
2590     /**
2591      *
2592      */
2593     virtual SVGAnimatedNumber getOffset()
2594         { return offset; }
2598     //##################
2599     //# Non-API methods
2600     //##################
2602     /**
2603      *
2604      */
2605     virtual ~SVGStopElementImpl() {}
2607 protected:
2609     SVGAnimatedNumber offset;
2611 };
2619 /*#########################################################################
2620 ## SVGPatternElementImpl
2621 #########################################################################*/
2623 /**
2624  *
2625  */
2626 class SVGPatternElementImpl : virtual public SVGPatternElement,
2627                               public SVGElementImpl
2629 public:
2631     /**
2632      *
2633      */
2634     virtual SVGAnimatedEnumeration getPatternUnits()
2635         { return patternUnits; }
2637     /**
2638      *
2639      */
2640     virtual SVGAnimatedEnumeration getPatternContentUnits()
2641         { return patternContentUnits; }
2643     /**
2644      *
2645      */
2646     virtual SVGAnimatedTransformList getPatternTransform()
2647         { return patternTransform; }
2649     /**
2650      *
2651      */
2652     virtual SVGAnimatedLength getX()
2653         { return x; }
2655     /**
2656      *
2657      */
2658     virtual SVGAnimatedLength getY()
2659         { return y; }
2661     /**
2662      *
2663      */
2664     virtual SVGAnimatedLength getWidth()
2665         { return width; }
2667     /**
2668      *
2669      */
2670     virtual SVGAnimatedLength getHeight()
2671         { return height; }
2675     //##################
2676     //# Non-API methods
2677     //##################
2679     /**
2680      *
2681      */
2682     virtual ~SVGPatternElementImpl() {}
2684 protected:
2687     SVGAnimatedEnumeration   patternUnits;
2688     SVGAnimatedEnumeration   patternContentUnits;
2689     SVGAnimatedTransformList patternTransform;
2690     SVGAnimatedLength        x;
2691     SVGAnimatedLength        y;
2692     SVGAnimatedLength        width;
2693     SVGAnimatedLength        height;
2694 };
2702 /*#########################################################################
2703 ## SVGClipPathElementImpl
2704 #########################################################################*/
2706 /**
2707  *
2708  */
2709 class SVGClipPathElementImpl : virtual public SVGClipPathElement,
2710                                public SVGElementImpl
2712 public:
2714     /**
2715      *
2716      */
2717     virtual SVGAnimatedEnumeration getClipPathUnits()
2718         { return clipPathUnits; }
2720     //##################
2721     //# Non-API methods
2722     //##################
2724     /**
2725      *
2726      */
2727     virtual ~SVGClipPathElementImpl() {}
2729 protected:
2731     SVGAnimatedEnumeration clipPathUnits;
2733 };
2741 /*#########################################################################
2742 ## SVGMaskElementImpl
2743 #########################################################################*/
2745 /**
2746  *
2747  */
2748 class SVGMaskElementImpl : virtual public SVGMaskElement,
2749                            public SVGElementImpl
2751 public:
2753     /**
2754      *
2755      */
2756     virtual SVGAnimatedEnumeration getMaskUnits()
2757         { return maskUnits; }
2759     /**
2760      *
2761      */
2762     virtual SVGAnimatedEnumeration getMaskContentUnits()
2763         { return maskContentUnits; }
2765     /**
2766      *
2767      */
2768     virtual SVGAnimatedLength getX()
2769         { return x; }
2771     /**
2772      *
2773      */
2774     virtual SVGAnimatedLength getY()
2775         { return y; }
2777     /**
2778      *
2779      */
2780     virtual SVGAnimatedLength getWidth()
2781         { return width; }
2783     /**
2784      *
2785      */
2786     virtual SVGAnimatedLength getHeight()
2787         { return height; }
2789     //##################
2790     //# Non-API methods
2791     //##################
2793     /**
2794      *
2795      */
2796     virtual ~SVGMaskElementImpl() {}
2798 protected:
2801     SVGAnimatedEnumeration maskUnits;
2802     SVGAnimatedEnumeration maskContentUnits;
2803     SVGAnimatedLength      x;
2804     SVGAnimatedLength      y;
2805     SVGAnimatedLength      width;
2806     SVGAnimatedLength      height;
2807 };
2815 /*#########################################################################
2816 ## SVGFilterElementImpl
2817 #########################################################################*/
2819 /**
2820  *
2821  */
2822 class SVGFilterElementImpl : virtual public SVGFilterElement,
2823                              public SVGElementImpl
2825 public:
2827     /**
2828      *
2829      */
2830     virtual SVGAnimatedEnumeration getFilterUnits()
2831         { return filterUnits; }
2833     /**
2834      *
2835      */
2836     virtual SVGAnimatedEnumeration getPrimitiveUnits()
2837         { return filterUnits; }
2839     /**
2840      *
2841      */
2842     virtual SVGAnimatedLength getX()
2843         { return x; }
2845     /**
2846      *
2847      */
2848     virtual SVGAnimatedLength getY()
2849         { return y; }
2851     /**
2852      *
2853      */
2854     virtual SVGAnimatedLength getWidth()
2855         { return width; }
2857     /**
2858      *
2859      */
2860     virtual SVGAnimatedLength getHeight()
2861         { return height; }
2863     /**
2864      *
2865      */
2866     virtual SVGAnimatedInteger getFilterResX()
2867         { return filterResX; }
2869     /**
2870      *
2871      */
2872     virtual SVGAnimatedInteger getFilterResY()
2873         { return filterResY; }
2875     /**
2876      *
2877      */
2878     virtual void setFilterRes (unsigned long filterResXArg,
2879                                unsigned long filterResYArg )
2880         {
2881         filterResX = filterResXArg;
2882         filterResY = filterResYArg;
2883         }
2887     //##################
2888     //# Non-API methods
2889     //##################
2891     /**
2892      *
2893      */
2894     virtual ~SVGFilterElementImpl() {}
2896 protected:
2898     SVGAnimatedEnumeration filterUnits;
2899     SVGAnimatedEnumeration primitiveUnits;
2900     SVGAnimatedLength      x;
2901     SVGAnimatedLength      y;
2902     SVGAnimatedLength      width;
2903     SVGAnimatedLength      height;
2904     SVGAnimatedInteger     filterResX;
2905     SVGAnimatedInteger     filterResY;
2907 };
2914 /*#########################################################################
2915 ## SVGFEBlendElementImpl
2916 #########################################################################*/
2918 /**
2919  *
2920  */
2921 class SVGFEBlendElementImpl : virtual public SVGFEBlendElement,
2922                               public SVGElementImpl
2924 public:
2926     /**
2927      *
2928      */
2929     virtual SVGAnimatedString getIn1()
2930         { return in1; }
2932     /**
2933      *
2934      */
2935     virtual SVGAnimatedString getIn2()
2936         { return in2; }
2938     /**
2939      *
2940      */
2941     virtual SVGAnimatedEnumeration getMode()
2942         { return mode; }
2945     //##################
2946     //# Non-API methods
2947     //##################
2949     /**
2950      *
2951      */
2952     virtual ~SVGFEBlendElementImpl() {}
2954 protected:
2956     SVGAnimatedString in1, in2;
2957     SVGAnimatedEnumeration mode;
2958 };
2966 /*#########################################################################
2967 ## SVGFEColorMatrixElementImpl
2968 #########################################################################*/
2970 /**
2971  *
2972  */
2973 class SVGFEColorMatrixElementImpl : virtual public SVGFEColorMatrixElement,
2974                                     public SVGElementImpl
2976 public:
2978     /**
2979      *
2980      */
2981     virtual SVGAnimatedString getIn1()
2982         { return in1; }
2984     /**
2985      *
2986      */
2987     virtual SVGAnimatedEnumeration getType()
2988         { return type; }
2990     /**
2991      *
2992      */
2993     virtual SVGAnimatedNumberList getValues()
2994         { return values; }
2998     //##################
2999     //# Non-API methods
3000     //##################
3002     /**
3003      *
3004      */
3005     virtual ~SVGFEColorMatrixElementImpl() {}
3007 protected:
3009     SVGAnimatedString in1;
3010     SVGAnimatedEnumeration type;
3011     SVGAnimatedNumberList values;
3013 };
3021 /*#########################################################################
3022 ## SVGFEComponentTransferElementImpl
3023 #########################################################################*/
3025 /**
3026  *
3027  */
3028 class SVGFEComponentTransferElementImpl :
3029                         virtual public SVGFEComponentTransferElement,
3030                         public SVGElementImpl
3032 public:
3033     /**
3034      *
3035      */
3036     virtual SVGAnimatedString getIn1()
3037         { return in1; }
3039     //##################
3040     //# Non-API methods
3041     //##################
3043     /**
3044      *
3045      */
3046     virtual ~SVGFEComponentTransferElementImpl() {}
3048 protected:
3050     SVGAnimatedString in1;
3052 };
3060 /*#########################################################################
3061 ## SVGComponentTransferFunctionElementImpl
3062 #########################################################################*/
3064 /**
3065  *
3066  */
3067 class SVGComponentTransferFunctionElementImpl :
3068                             virtual public SVGComponentTransferFunctionElement,
3069                             public SVGElementImpl
3071 public:
3073     /**
3074      *
3075      */
3076     virtual SVGAnimatedEnumeration getType()
3077         { return type; }
3079     /**
3080      *
3081      */
3082     virtual SVGAnimatedNumberList getTableValues()
3083         { return tableValues; }
3085     /**
3086      *
3087      */
3088     virtual SVGAnimatedNumber getSlope()
3089         { return slope; }
3091     /**
3092      *
3093      */
3094     virtual SVGAnimatedNumber getIntercept()
3095         { return intercept; }
3097     /**
3098      *
3099      */
3100     virtual SVGAnimatedNumber getAmplitude()
3101         { return amplitude; }
3103     /**
3104      *
3105      */
3106     virtual SVGAnimatedNumber getExponent()
3107         { return exponent; }
3109     /**
3110      *
3111      */
3112     virtual SVGAnimatedNumber getOffset()
3113         { return offset; }
3116     //##################
3117     //# Non-API methods
3118     //##################
3120     /**
3121      *
3122      */
3123     virtual ~SVGComponentTransferFunctionElementImpl() {}
3125 protected:
3127     SVGAnimatedEnumeration type;
3128     SVGAnimatedNumberList  tableValues;
3129     SVGAnimatedNumber      slope;
3130     SVGAnimatedNumber      intercept;
3131     SVGAnimatedNumber      amplitude;
3132     SVGAnimatedNumber      exponent;
3133     SVGAnimatedNumber      offset;
3135 };
3143 /*#########################################################################
3144 ## SVGFEFuncRElementImpl
3145 #########################################################################*/
3147 /**
3148  *
3149  */
3150 class SVGFEFuncRElementImpl :
3151                        virtual public SVGFEFuncRElement,
3152                        public SVGComponentTransferFunctionElementImpl
3154 public:
3156     //##################
3157     //# Non-API methods
3158     //##################
3160     /**
3161      *
3162      */
3163     virtual ~SVGFEFuncRElementImpl() {}
3165 protected:
3168 };
3174 /*#########################################################################
3175 ## SVGFEFuncGElementImpl
3176 #########################################################################*/
3178 /**
3179  *
3180  */
3181 class SVGFEFuncGElementImpl : virtual public SVGFEFuncGElement,
3182                               public SVGComponentTransferFunctionElementImpl
3184 public:
3186     //##################
3187     //# Non-API methods
3188     //##################
3190     /**
3191      *
3192      */
3193     virtual ~SVGFEFuncGElementImpl() {}
3195 protected:
3198 };
3204 /*#########################################################################
3205 ## SVGFEFuncBElementImpl
3206 #########################################################################*/
3208 /**
3209  *
3210  */
3211 class SVGFEFuncBElementImpl : virtual public SVGFEFuncBElement,
3212                               public SVGComponentTransferFunctionElementImpl
3214 public:
3216     //##################
3217     //# Non-API methods
3218     //##################
3220     /**
3221      *
3222      */
3223     virtual ~SVGFEFuncBElementImpl() {}
3225 protected:
3228 };
3234 /*#########################################################################
3235 ## SVGFEFuncAElementImpl
3236 #########################################################################*/
3238 /**
3239  *
3240  */
3241 class SVGFEFuncAElementImpl : virtual public SVGFEFuncAElement,
3242                               public SVGComponentTransferFunctionElementImpl
3244 public:
3246     //##################
3247     //# Non-API methods
3248     //##################
3250     /**
3251      *
3252      */
3253     virtual ~SVGFEFuncAElementImpl() {}
3255 protected:
3258 };
3264 /*#########################################################################
3265 ## SVGFECompositeElementImpl
3266 #########################################################################*/
3268 /**
3269  *
3270  */
3271 class SVGFECompositeElementImpl : virtual public SVGFECompositeElement,
3272                                   public SVGElementImpl
3274 public:
3277     /**
3278      *
3279      */
3280     virtual SVGAnimatedString getIn1()
3281         { return in1; }
3283     /**
3284      *
3285      */
3286     virtual SVGAnimatedString getIn2()
3287         { return in2; }
3289     /**
3290      *
3291      */
3292     virtual SVGAnimatedEnumeration getOperator()
3293         { return ae_operator; }
3295     /**
3296      *
3297      */
3298     virtual SVGAnimatedNumber getK1()
3299         { return k1; }
3301     /**
3302      *
3303      */
3304     virtual SVGAnimatedNumber getK2()
3305         { return k2; }
3307     /**
3308      *
3309      */
3310     virtual SVGAnimatedNumber getK3()
3311         { return k3; }
3313     /**
3314      *
3315      */
3316     virtual SVGAnimatedNumber getK4()
3317         { return k4; }
3321     //##################
3322     //# Non-API methods
3323     //##################
3325     /**
3326      *
3327      */
3328     virtual ~SVGFECompositeElementImpl() {}
3330 protected:
3333     SVGAnimatedString      in1;
3334     SVGAnimatedString      in2;
3335     SVGAnimatedEnumeration ae_operator;
3336     SVGAnimatedNumber      k1;
3337     SVGAnimatedNumber      k2;
3338     SVGAnimatedNumber      k3;
3339     SVGAnimatedNumber      k4;
3341 };
3349 /*#########################################################################
3350 ## SVGFEConvolveMatrixElementImpl
3351 #########################################################################*/
3353 /**
3354  *
3355  */
3356 class SVGFEConvolveMatrixElementImpl : virtual public SVGFEConvolveMatrixElement,
3357                                        public SVGElementImpl
3359 public:
3361     /**
3362      *
3363      */
3364     virtual SVGAnimatedInteger getOrderX()
3365         { return orderX; }
3367     /**
3368      *
3369      */
3370     virtual SVGAnimatedInteger getOrderY()
3371         { return orderY; }
3373     /**
3374      *
3375      */
3376     virtual SVGAnimatedNumberList getKernelMatrix()
3377         { return kernelMatrix; }
3379     /**
3380      *
3381      */
3382     virtual SVGAnimatedNumber getDivisor()
3383         { return divisor; }
3385     /**
3386      *
3387      */
3388     virtual SVGAnimatedNumber getBias()
3389         { return bias; }
3391     /**
3392      *
3393      */
3394     virtual SVGAnimatedInteger getTargetX()
3395         { return targetX; }
3397     /**
3398      *
3399      */
3400     virtual SVGAnimatedInteger getTargetY()
3401         { return targetY; }
3403     /**
3404      *
3405      */
3406     virtual SVGAnimatedEnumeration getEdgeMode()
3407         { return edgeMode; }
3409     /**
3410      *
3411      */
3412     virtual SVGAnimatedLength getKernelUnitLengthX()
3413         { return kernelUnitLengthX; }
3415     /**
3416      *
3417      */
3418     virtual SVGAnimatedLength getKernelUnitLengthY()
3419         { return kernelUnitLengthY; }
3421     /**
3422      *
3423      */
3424     virtual SVGAnimatedBoolean getPreserveAlpha()
3425         { return preserveAlpha; }
3429     //##################
3430     //# Non-API methods
3431     //##################
3433     /**
3434      *
3435      */
3436     virtual ~SVGFEConvolveMatrixElementImpl() {}
3438 protected:
3440     SVGAnimatedInteger     orderX;
3441     SVGAnimatedInteger     orderY;
3442     SVGAnimatedNumberList  kernelMatrix;
3443     SVGAnimatedNumber      divisor;
3444     SVGAnimatedNumber      bias;
3445     SVGAnimatedInteger     targetX;
3446     SVGAnimatedInteger     targetY;
3447     SVGAnimatedEnumeration edgeMode;
3448     SVGAnimatedLength      kernelUnitLengthX;
3449     SVGAnimatedLength      kernelUnitLengthY;
3450     SVGAnimatedBoolean     preserveAlpha;
3452 };
3460 /*#########################################################################
3461 ## SVGFEDiffuseLightingElementImpl
3462 #########################################################################*/
3464 /**
3465  *
3466  */
3467 class SVGFEDiffuseLightingElementImpl : virtual public SVGFEDiffuseLightingElement,
3468                                         public SVGElementImpl
3470 public:
3472     /**
3473      *
3474      */
3475     virtual SVGAnimatedString getIn1()
3476         { return in1; }
3478     /**
3479      *
3480      */
3481     virtual SVGAnimatedNumber getSurfaceScale()
3482         { return surfaceScale; }
3484     /**
3485      *
3486      */
3487     virtual SVGAnimatedNumber getDiffuseConstant()
3488         { return diffuseConstant; }
3492     //##################
3493     //# Non-API methods
3494     //##################
3496     /**
3497      *
3498      */
3499     virtual ~SVGFEDiffuseLightingElementImpl() {}
3501 protected:
3503     SVGAnimatedString in1;
3504     SVGAnimatedNumber surfaceScale;
3505     SVGAnimatedNumber diffuseConstant;
3507 };
3515 /*#########################################################################
3516 ## SVGFEDistantLightElementImpl
3517 #########################################################################*/
3519 /**
3520  *
3521  */
3522 class SVGFEDistantLightElementImpl : virtual public SVGFEDistantLightElement,
3523                                      public SVGElementImpl
3525 public:
3527     /**
3528      *
3529      */
3530     virtual SVGAnimatedNumber getAzimuth()
3531         { return azimuth; }
3534     /**
3535      *
3536      */
3537     virtual SVGAnimatedNumber getElevation()
3538         { return elevation; }
3542     //##################
3543     //# Non-API methods
3544     //##################
3546     /**
3547      *
3548      */
3549     virtual ~SVGFEDistantLightElementImpl() {}
3551 protected:
3553     SVGAnimatedNumber azimuth;
3554     SVGAnimatedNumber elevation;
3556 };
3564 /*#########################################################################
3565 ## SVGFEPointLightElementImpl
3566 #########################################################################*/
3568 /**
3569  *
3570  */
3571 class SVGFEPointLightElementImpl : public virtual SVGFEPointLightElement,
3572                                    public SVGElementImpl
3574 public:
3576     /**
3577      *
3578      */
3579     virtual SVGAnimatedNumber getX()
3580         { return x; }
3583     /**
3584      *
3585      */
3586     virtual SVGAnimatedNumber getY()
3587         { return y; }
3589     /**
3590      *
3591      */
3592     virtual SVGAnimatedNumber getZ()
3593         { return z; }
3595     //##################
3596     //# Non-API methods
3597     //##################
3599     /**
3600      *
3601      */
3602     virtual ~SVGFEPointLightElementImpl() {}
3604 protected:
3606     SVGAnimatedNumber x, y, z;
3608 };
3616 /*#########################################################################
3617 ## SVGFESpotLightElementImpl
3618 #########################################################################*/
3620 /**
3621  *
3622  */
3623 class SVGFESpotLightElementImpl : virtual public SVGFESpotLightElement,
3624                                   public SVGElementImpl
3626 public:
3628     /**
3629      *
3630      */
3631     virtual SVGAnimatedNumber getX()
3632         { return x; }
3635     /**
3636      *
3637      */
3638     virtual SVGAnimatedNumber getY()
3639         { return y; }
3641     /**
3642      *
3643      */
3644     virtual SVGAnimatedNumber getZ()
3645         { return z; }
3647     /**
3648      *
3649      */
3650     virtual SVGAnimatedNumber getPointsAtX()
3651         { return pointsAtX; }
3653     /**
3654      *
3655      */
3656     virtual SVGAnimatedNumber getPointsAtY()
3657         { return pointsAtY; }
3659     /**
3660      *
3661      */
3662     virtual SVGAnimatedNumber getPointsAtZ()
3663         { return pointsAtZ; }
3665     /**
3666      *
3667      */
3668     virtual SVGAnimatedNumber getSpecularExponent()
3669         { return specularExponent; }
3671     /**
3672      *
3673      */
3674     virtual SVGAnimatedNumber getLimitingConeAngle()
3675         { return limitingConeAngle; }
3679     //##################
3680     //# Non-API methods
3681     //##################
3683     /**
3684      *
3685      */
3686     virtual ~SVGFESpotLightElementImpl() {}
3688 protected:
3690     SVGAnimatedNumber x, y, z;
3691     SVGAnimatedNumber pointsAtX, pointsAtY, pointsAtZ;
3692     SVGAnimatedNumber specularExponent;
3693     SVGAnimatedNumber limitingConeAngle;
3694 };
3702 /*#########################################################################
3703 ## SVGFEDisplacementMapElementImpl
3704 #########################################################################*/
3706 /**
3707  *
3708  */
3709 class SVGFEDisplacementMapElementImpl : virtual public SVGFEDisplacementMapElement,
3710                                         public SVGElementImpl
3712 public:
3714     /**
3715      *
3716      */
3717     virtual SVGAnimatedString getIn1()
3718         { return in1; }
3720     /**
3721      *
3722      */
3723     virtual SVGAnimatedString getIn2()
3724         { return in2; }
3727     /**
3728      *
3729      */
3730     virtual SVGAnimatedNumber getScale()
3731         { return scale; }
3733     /**
3734      *
3735      */
3736     virtual SVGAnimatedEnumeration getXChannelSelector()
3737         { return xChannelSelector; }
3739     /**
3740      *
3741      */
3742     virtual SVGAnimatedEnumeration getYChannelSelector()
3743         { return yChannelSelector; }
3747     //##################
3748     //# Non-API methods
3749     //##################
3751     /**
3752      *
3753      */
3754     virtual ~SVGFEDisplacementMapElementImpl() {}
3756 protected:
3758     SVGAnimatedString      in1;
3759     SVGAnimatedString      in2;
3760     SVGAnimatedNumber      scale;
3761     SVGAnimatedEnumeration xChannelSelector;
3762     SVGAnimatedEnumeration yChannelSelector;
3764 };
3772 /*#########################################################################
3773 ## SVGFEFloodElementImpl
3774 #########################################################################*/
3776 /**
3777  *
3778  */
3779 class SVGFEFloodElementImpl : virtual public SVGFEFloodElement,
3780                               public SVGElementImpl
3782 public:
3783     /**
3784      *
3785      */
3786     virtual SVGAnimatedString getIn1()
3787         { return in1; }
3790     //##################
3791     //# Non-API methods
3792     //##################
3794     /**
3795      *
3796      */
3797     virtual ~SVGFEFloodElementImpl() {}
3799 protected:
3801     SVGAnimatedString in1;
3803 };
3811 /*#########################################################################
3812 ## SVGFEGaussianBlurElementImpl
3813 #########################################################################*/
3815 /**
3816  *
3817  */
3818 class SVGFEGaussianBlurElementImpl : virtual public SVGFEGaussianBlurElement,
3819                                      public SVGElementImpl
3821 public:
3822     /**
3823      *
3824      */
3825     virtual SVGAnimatedString getIn1()
3826         { return in1; }
3829     /**
3830      *
3831      */
3832     virtual SVGAnimatedNumber getStdDeviationX()
3833         { return stdDeviationX; }
3835     /**
3836      *
3837      */
3838     virtual SVGAnimatedNumber getStdDeviationY()
3839         { return stdDeviationY; }
3842     /**
3843      *
3844      */
3845     virtual void setStdDeviation (double stdDeviationXArg, double stdDeviationYArg )
3846         {
3847         stdDeviationX = stdDeviationXArg;
3848         stdDeviationY = stdDeviationYArg;
3849         }
3853     //##################
3854     //# Non-API methods
3855     //##################
3857     /**
3858      *
3859      */
3860     virtual ~SVGFEGaussianBlurElementImpl() {}
3862 protected:
3864     SVGAnimatedString in1;
3865     SVGAnimatedNumber stdDeviationX, stdDeviationY;
3867 };
3875 /*#########################################################################
3876 ## SVGFEImageElementImpl
3877 #########################################################################*/
3879 /**
3880  *
3881  */
3882 class SVGFEImageElementImpl : virtual public SVGFEImageElement,
3883                               public SVGElementImpl
3885 public:
3887     //##################
3888     //# Non-API methods
3889     //##################
3891     /**
3892      *
3893      */
3894     virtual ~SVGFEImageElementImpl() {}
3896 protected:
3899 };
3905 /*#########################################################################
3906 ## SVGFEMergeElementImpl
3907 #########################################################################*/
3909 /**
3910  *
3911  */
3912 class SVGFEMergeElementImpl : virtual public SVGFEMergeElement,
3913                               public SVGElementImpl
3915 public:
3917     //##################
3918     //# Non-API methods
3919     //##################
3921     /**
3922      *
3923      */
3924     virtual ~SVGFEMergeElementImpl() {}
3926 protected:
3929 };
3935 /*#########################################################################
3936 ## SVGFEMergeNodeElementImpl
3937 #########################################################################*/
3939 /**
3940  *
3941  */
3942 class SVGFEMergeNodeElementImpl : virtual public SVGFEMergeNodeElement,
3943                                   public SVGElementImpl
3945 public:
3946     /**
3947      *
3948      */
3949     virtual SVGAnimatedString getIn1()
3950         { return in1; }
3953     //##################
3954     //# Non-API methods
3955     //##################
3957     /**
3958      *
3959      */
3960     virtual ~SVGFEMergeNodeElementImpl() {}
3962 protected:
3964     SVGAnimatedString in1;
3966 };
3974 /*#########################################################################
3975 ## SVGFEMorphologyElementImpl
3976 #########################################################################*/
3978 /**
3979  *
3980  */
3981 class SVGFEMorphologyElementImpl : virtual public SVGFEMorphologyElement,
3982                                    public SVGElementImpl
3984 public:
3986     /**
3987      *
3988      */
3989     virtual SVGAnimatedString getIn1()
3990         { return in1; }
3993     /**
3994      *
3995      */
3996     virtual SVGAnimatedEnumeration getOperator()
3997         { return me_operator; }
3999     /**
4000      *
4001      */
4002     virtual SVGAnimatedLength getRadiusX()
4003         { return radiusX; }
4005     /**
4006      *
4007      */
4008     virtual SVGAnimatedLength getRadiusY()
4009         { return radiusY; }
4013     //##################
4014     //# Non-API methods
4015     //##################
4017     /**
4018      *
4019      */
4020     virtual ~SVGFEMorphologyElementImpl() {}
4022 protected:
4024     SVGAnimatedString      in1;
4025     SVGAnimatedEnumeration me_operator;
4026     SVGAnimatedLength      radiusX;
4027     SVGAnimatedLength      radiusY;
4029 };
4037 /*#########################################################################
4038 ## SVGFEOffsetElementImpl
4039 #########################################################################*/
4041 /**
4042  *
4043  */
4044 class SVGFEOffsetElementImpl : virtual public SVGFEOffsetElement,
4045                                public SVGElementImpl
4047 public:
4051     /**
4052      *
4053      */
4054     virtual SVGAnimatedString getIn1()
4055         { return in1; }
4057     /**
4058      *
4059      */
4060     virtual SVGAnimatedLength getDx()
4061         { return dx; }
4063     /**
4064      *
4065      */
4066     virtual SVGAnimatedLength getDy()
4067         { return dy; }
4069     //##################
4070     //# Non-API methods
4071     //##################
4073     /**
4074      *
4075      */
4076     virtual ~SVGFEOffsetElementImpl() {}
4078 protected:
4080     SVGAnimatedString in1;
4081     SVGAnimatedLength dx, dy;
4083 };
4091 /*#########################################################################
4092 ## SVGFESpecularLightingElementImpl
4093 #########################################################################*/
4095 /**
4096  *
4097  */
4098 class SVGFESpecularLightingElementImpl :
4099                        virtual public SVGFESpecularLightingElement,
4100                        public SVGElementImpl
4102 public:
4104     /**
4105      *
4106      */
4107     virtual SVGAnimatedString getIn1()
4108         { return in1; }
4110     /**
4111      *
4112      */
4113     virtual SVGAnimatedNumber getSurfaceScale()
4114         { return surfaceScale; }
4116     /**
4117      *
4118      */
4119     virtual SVGAnimatedNumber getSpecularConstant()
4120         { return specularConstant; }
4122     /**
4123      *
4124      */
4125     virtual SVGAnimatedNumber getSpecularExponent()
4126         { return specularExponent; }
4129     //##################
4130     //# Non-API methods
4131     //##################
4133     /**
4134      *
4135      */
4136     virtual ~SVGFESpecularLightingElementImpl() {}
4138 protected:
4140     SVGAnimatedString in1;
4141     SVGAnimatedNumber surfaceScale;
4142     SVGAnimatedNumber specularConstant;
4143     SVGAnimatedNumber specularExponent;
4144 };
4152 /*#########################################################################
4153 ## SVGFETileElementImpl
4154 #########################################################################*/
4156 /**
4157  *
4158  */
4159 class SVGFETileElementImpl : virtual public SVGFETileElement,
4160                              public SVGElementImpl
4162 public:
4165     /**
4166      *
4167      */
4168     virtual SVGAnimatedString getIn1()
4169         { return in1; }
4173     //##################
4174     //# Non-API methods
4175     //##################
4177     /**
4178      *
4179      */
4180     virtual ~SVGFETileElementImpl() {}
4182 protected:
4184     SVGAnimatedString in1;
4186 };
4194 /*#########################################################################
4195 ## SVGFETurbulenceElementImpl
4196 #########################################################################*/
4198 /**
4199  *
4200  */
4201 class SVGFETurbulenceElementImpl : virtual public SVGFETurbulenceElement,
4202                                    public SVGElementImpl
4204 public:
4206     /**
4207      *
4208      */
4209     virtual SVGAnimatedNumber getBaseFrequencyX()
4210         { return baseFrequencyX; }
4212     /**
4213      *
4214      */
4215     virtual SVGAnimatedNumber getBaseFrequencyY()
4216         { return baseFrequencyY; }
4218     /**
4219      *
4220      */
4221     virtual SVGAnimatedInteger getNumOctaves()
4222         { return numOctaves; }
4224     /**
4225      *
4226      */
4227     virtual SVGAnimatedNumber getSeed()
4228         { return seed; }
4230     /**
4231      *
4232      */
4233     virtual SVGAnimatedEnumeration getStitchTiles()
4234         { return stitchTiles; }
4236     /**
4237      *
4238      */
4239     virtual SVGAnimatedEnumeration getType()
4240         { return type; }
4244     //##################
4245     //# Non-API methods
4246     //##################
4248     /**
4249      *
4250      */
4251     virtual ~SVGFETurbulenceElementImpl() {}
4253 protected:
4255     SVGAnimatedNumber      baseFrequencyX;
4256     SVGAnimatedNumber      baseFrequencyY;
4257     SVGAnimatedInteger     numOctaves;
4258     SVGAnimatedNumber      seed;
4259     SVGAnimatedEnumeration stitchTiles;
4260     SVGAnimatedEnumeration type;
4262 };
4270 /*#########################################################################
4271 ## SVGCursorElementImpl
4272 #########################################################################*/
4274 /**
4275  *
4276  */
4277 class SVGCursorElementImpl : virtual public SVGCursorElement,
4278                              public SVGElementImpl
4280 public:
4282     /**
4283      *
4284      */
4285     virtual SVGAnimatedLength getX()
4286         { return x; }
4288     /**
4289      *
4290      */
4291     virtual SVGAnimatedLength getY()
4292         { return x; }
4294     //##################
4295     //# Non-API methods
4296     //##################
4298     /**
4299      *
4300      */
4301     virtual ~SVGCursorElementImpl() {}
4303 protected:
4305     SVGAnimatedLength x, y;
4306 };
4314 /*#########################################################################
4315 ## SVGAElementImpl
4316 #########################################################################*/
4318 /**
4319  *
4320  */
4321 class SVGAElementImpl : virtual public SVGAElement,
4322                         public SVGElementImpl
4324 public:
4326     /**
4327      *
4328      */
4329     virtual SVGAnimatedString getTarget()
4330         { return target; }
4334     //##################
4335     //# Non-API methods
4336     //##################
4338     /**
4339      *
4340      */
4341     virtual ~SVGAElementImpl() {}
4343 protected:
4345     SVGAnimatedString target;
4346 };
4354 /*#########################################################################
4355 ## SVGViewElementImpl
4356 #########################################################################*/
4358 /**
4359  *
4360  */
4361 class SVGViewElementImpl : virtual public SVGViewElement,
4362                            public SVGElementImpl
4364 public:
4366     /**
4367      *
4368      */
4369     virtual SVGStringList getViewTarget()
4370         { return viewTarget; }
4374     //##################
4375     //# Non-API methods
4376     //##################
4378     /**
4379      *
4380      */
4381     virtual ~SVGViewElementImpl() {}
4383 protected:
4385     SVGStringList viewTarget;
4386 };
4394 /*#########################################################################
4395 ## SVGScriptElementImpl
4396 #########################################################################*/
4398 /**
4399  *
4400  */
4401 class SVGScriptElementImpl : virtual public SVGScriptElement,
4402                              public SVGElementImpl
4404 public:
4406     /**
4407      *
4408      */
4409     virtual DOMString getType()
4410         { return type; }
4412     /**
4413      *
4414      */
4415     virtual void setType(const DOMString &val) throw (DOMException)
4416         { type = val; }
4419     //##################
4420     //# Non-API methods
4421     //##################
4423     /**
4424      *
4425      */
4426     virtual ~SVGScriptElementImpl() {}
4428 protected:
4430     DOMString type;
4431 };
4438 /*#########################################################################
4439 ## SVGAnimationElementImpl
4440 #########################################################################*/
4442 /**
4443  *
4444  */
4445 class SVGAnimationElementImpl : virtual public SVGAnimationElement,
4446                                 public SVGElementImpl
4448 public:
4451     /**
4452      *
4453      */
4454     virtual SVGElementPtr getTargetElement()
4455         { return targetElement; }
4458     /**
4459      *
4460      */
4461     virtual double getStartTime (  )
4462         { return startTime; }
4464     /**
4465      *
4466      */
4467     virtual double getCurrentTime (  )
4468         { return currentTime; }
4470     /**
4471      *
4472      */
4473     virtual double getSimpleDuration (  ) throw( DOMException )
4474         { return simpleDuration; }
4478     //##################
4479     //# Non-API methods
4480     //##################
4482     /**
4483      *
4484      */
4485     virtual ~SVGAnimationElementImpl() {}
4487 protected:
4489     SVGElementPtr targetElement;
4490     double startTime, currentTime, simpleDuration;
4491 };
4499 /*#########################################################################
4500 ## SVGAnimateElementImpl
4501 #########################################################################*/
4503 /**
4504  *
4505  */
4506 class SVGAnimateElementImpl : virtual public SVGAnimateElement,
4507                               public SVGAnimationElementImpl
4509 public:
4511     //##################
4512     //# Non-API methods
4513     //##################
4515     /**
4516      *
4517      */
4518     virtual ~SVGAnimateElementImpl() {}
4520 protected:
4523 };
4529 /*#########################################################################
4530 ## SVGSetElementImpl
4531 #########################################################################*/
4533 /**
4534  *
4535  */
4536 class SVGSetElementImpl : virtual public SVGSetElement,
4537                           public SVGAnimationElementImpl
4539 public:
4541     //##################
4542     //# Non-API methods
4543     //##################
4545     /**
4546      *
4547      */
4548     virtual ~SVGSetElementImpl() {}
4550 protected:
4553 };
4559 /*#########################################################################
4560 ## SVGAnimateMotionElementImpl
4561 #########################################################################*/
4563 /**
4564  *
4565  */
4566 class SVGAnimateMotionElementImpl : virtual public SVGAnimateMotionElement,
4567                                     public SVGAnimationElementImpl
4569 public:
4571     //##################
4572     //# Non-API methods
4573     //##################
4575     /**
4576      *
4577      */
4578     virtual ~SVGAnimateMotionElementImpl() {}
4580 protected:
4583 };
4589 /*#########################################################################
4590 ## SVGMPathElementImpl
4591 #########################################################################*/
4593 /**
4594  *
4595  */
4596 class SVGMPathElementImpl : virtual public SVGMPathElement,
4597                             public SVGElementImpl
4599 public:
4601     //##################
4602     //# Non-API methods
4603     //##################
4605     /**
4606      *
4607      */
4608     virtual ~SVGMPathElementImpl() {}
4610 protected:
4613 };
4619 /*#########################################################################
4620 ## SVGAnimateColorElementImpl
4621 #########################################################################*/
4623 /**
4624  *
4625  */
4626 class SVGAnimateColorElementImpl : virtual public SVGAnimateColorElement,
4627                                    public SVGAnimationElementImpl
4629 public:
4631     //##################
4632     //# Non-API methods
4633     //##################
4635     /**
4636      *
4637      */
4638     virtual ~SVGAnimateColorElementImpl() {}
4640 protected:
4643 };
4649 /*#########################################################################
4650 ## SVGAnimateTransformElementImpl
4651 #########################################################################*/
4653 /**
4654  *
4655  */
4656 class SVGAnimateTransformElementImpl : virtual public SVGAnimateTransformElement,
4657                                        public SVGAnimationElementImpl
4659 public:
4661     //##################
4662     //# Non-API methods
4663     //##################
4665     /**
4666      *
4667      */
4668     virtual ~SVGAnimateTransformElementImpl() {}
4670 protected:
4673 };
4679 /*#########################################################################
4680 ## SVGFontElementImpl
4681 #########################################################################*/
4683 /**
4684  *
4685  */
4686 class SVGFontElementImpl :  virtual public SVGFontElement,
4687                             public SVGElementImpl
4689 public:
4691     //##################
4692     //# Non-API methods
4693     //##################
4695     /**
4696      *
4697      */
4698     virtual ~SVGFontElementImpl() {}
4700 protected:
4703 };
4709 /*#########################################################################
4710 ## SVGGlyphElementImpl
4711 #########################################################################*/
4713 /**
4714  *
4715  */
4716 class SVGGlyphElementImpl : virtual public SVGGlyphElement,
4717                             public SVGElementImpl
4719 public:
4721     //##################
4722     //# Non-API methods
4723     //##################
4725     /**
4726      *
4727      */
4728     virtual ~SVGGlyphElementImpl() {}
4730 protected:
4733 };
4739 /*#########################################################################
4740 ## SVGMissingGlyphElementImpl
4741 #########################################################################*/
4743 /**
4744  *
4745  */
4746 class SVGMissingGlyphElementImpl : virtual public SVGMissingGlyphElement,
4747                                    public SVGElementImpl
4749 public:
4751     //##################
4752     //# Non-API methods
4753     //##################
4755     /**
4756      *
4757      */
4758     virtual ~SVGMissingGlyphElementImpl() {}
4760 protected:
4763 };
4769 /*#########################################################################
4770 ## SVGHKernElementImpl
4771 #########################################################################*/
4773 /**
4774  *
4775  */
4776 class SVGHKernElementImpl : virtual public SVGHKernElement,
4777                             public SVGElementImpl
4779 public:
4781     //##################
4782     //# Non-API methods
4783     //##################
4785     /**
4786      *
4787      */
4788     virtual ~SVGHKernElementImpl() {}
4790 protected:
4793 };
4799 /*#########################################################################
4800 ## SVGVKernElementImpl
4801 #########################################################################*/
4803 /**
4804  *
4805  */
4806 class SVGVKernElementImpl : virtual public SVGVKernElement,
4807                             public SVGElementImpl
4809 public:
4811     //##################
4812     //# Non-API methods
4813     //##################
4815     /**
4816      *
4817      */
4818     virtual ~SVGVKernElementImpl() {}
4820 protected:
4823 };
4829 /*#########################################################################
4830 ## SVGFontFaceElementImpl
4831 #########################################################################*/
4833 /**
4834  *
4835  */
4836 class SVGFontFaceElementImpl : virtual public SVGFontFaceElement,
4837                                public SVGElementImpl
4839 public:
4841     //##################
4842     //# Non-API methods
4843     //##################
4845     /**
4846      *
4847      */
4848     virtual ~SVGFontFaceElementImpl() {}
4850 protected:
4853 };
4859 /*#########################################################################
4860 ## SVGFontFaceSrcElementImpl
4861 #########################################################################*/
4863 /**
4864  *
4865  */
4866 class SVGFontFaceSrcElementImpl : virtual public SVGFontFaceSrcElement,
4867                                   public SVGElementImpl
4869 public:
4871     //##################
4872     //# Non-API methods
4873     //##################
4875     /**
4876      *
4877      */
4878     virtual ~SVGFontFaceSrcElementImpl() {}
4880 protected:
4883 };
4889 /*#########################################################################
4890 ## SVGFontFaceUriElementImpl
4891 #########################################################################*/
4893 /**
4894  *
4895  */
4896 class SVGFontFaceUriElementImpl : virtual public SVGFontFaceUriElement,
4897                                   public SVGElementImpl
4899 public:
4901     //##################
4902     //# Non-API methods
4903     //##################
4905     /**
4906      *
4907      */
4908     virtual ~SVGFontFaceUriElementImpl() {}
4910 protected:
4913 };
4919 /*#########################################################################
4920 ## SVGFontFaceFormatElementImpl
4921 #########################################################################*/
4923 /**
4924  *
4925  */
4926 class SVGFontFaceFormatElementImpl : virtual public SVGFontFaceFormatElement,
4927                                      public SVGElementImpl
4929 public:
4931     //##################
4932     //# Non-API methods
4933     //##################
4935     /**
4936      *
4937      */
4938     virtual ~SVGFontFaceFormatElementImpl() {}
4940 protected:
4943 };
4949 /*#########################################################################
4950 ## SVGFontFaceNameElementImpl
4951 #########################################################################*/
4953 /**
4954  *
4955  */
4956 class SVGFontFaceNameElementImpl : virtual public SVGFontFaceNameElement,
4957                                    public SVGElementImpl
4959 public:
4961     //##################
4962     //# Non-API methods
4963     //##################
4965     /**
4966      *
4967      */
4968     virtual ~SVGFontFaceNameElementImpl() {}
4970 protected:
4973 };
4979 /*#########################################################################
4980 ## SVGDefinitionSrcElementImpl
4981 #########################################################################*/
4983 /**
4984  *
4985  */
4986 class SVGDefinitionSrcElementImpl : virtual public SVGDefinitionSrcElement,
4987                                     public SVGElementImpl
4989 public:
4991     //##################
4992     //# Non-API methods
4993     //##################
4995     /**
4996      *
4997      */
4998     virtual ~SVGDefinitionSrcElementImpl() {}
5000 protected:
5003 };
5009 /*#########################################################################
5010 ## SVGMetadataElementImpl
5011 #########################################################################*/
5013 /**
5014  *
5015  */
5016 class SVGMetadataElementImpl : virtual public SVGMetadataElement,
5017                                public SVGElementImpl
5019 public:
5021     //##################
5022     //# Non-API methods
5023     //##################
5025     /**
5026      *
5027      */
5028     virtual ~SVGMetadataElementImpl() {}
5030 protected:
5033 };
5038 /*#########################################################################
5039 ## SVGForeignObjectElementImpl
5040 #########################################################################*/
5042 /**
5043  *
5044  */
5045 class SVGForeignObjectElementImpl :  virtual public SVGForeignObjectElement,
5046                                      public SVGElementImpl
5048 public:
5051     /**
5052      *
5053      */
5054     virtual SVGAnimatedLength getX()
5055         { return x; }
5057     /**
5058      *
5059      */
5060     virtual SVGAnimatedLength getY()
5061         { return y; }
5063     /**
5064      *
5065      */
5066     virtual SVGAnimatedLength getWidth()
5067         { return width; }
5069     /**
5070      *
5071      */
5072     virtual SVGAnimatedLength getHeight()
5073         { return height; }
5077     //##################
5078     //# Non-API methods
5079     //##################
5082     /**
5083      *
5084      */
5085     virtual ~SVGForeignObjectElementImpl() {}
5087 protected:
5089     SVGAnimatedLength x, y, width, height;
5090 };
5097 }  //namespace svg
5098 }  //namespace dom
5099 }  //namespace w3c
5100 }  //namespace org
5102 #endif // __SVG_H__
5103 /*#########################################################################
5104 ## E N D    O F    F I L E
5105 #########################################################################*/