svgtypes.h revision 4cb9ed4c3d183554e888e636844f8e3c2e666c40
#ifndef __SVGTYPES_H__
#define __SVGTYPES_H__
/**
* Phoebe DOM Implementation.
*
* This is a C++ approximation of the W3C DOM model, which follows
* fairly closely the specifications in the various .idl files, copies of
* which are provided for reference. Most important is this one:
*
*
* Authors:
* Bob Jamison
*
* Copyright (C) 2006-2008 Bob Jamison
*
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
* =======================================================================
* NOTES
*
* This API follows:
*
* This file contains the definitions of the non-Node SVG classes. DOM Nodes
* for SVG are defined in svg.h.
*
*/
// For access to DOM2 core
// For access to DOM2 events
// For access to those parts from DOM2 CSS OM used by SVG DOM.
// For access to those parts from DOM2 Views OM used by SVG DOM.
// For access to the SMIL OM used by SVG DOM.
#include <cstdio>
#include <math.h>
//local definitions
/*#########################################################################
## SVGException
#########################################################################*/
/**
*
*/
{
// unsigned short code; //inherited
};
/**
* SVGExceptionCode
*/
typedef enum
{
SVG_WRONG_TYPE_ERR = 0,
/*#########################################################################
## SVGMatrix
#########################################################################*/
/**
* In SVG, a Matrix is defined like this:
*
* | a c e |
* | b d f |
* | 0 0 1 |
*
*/
{
/**
*
*/
{ return a; }
/**
*
*/
{ a = val; }
/**
*
*/
{ return b; }
/**
*
*/
{ b = val; }
/**
*
*/
{ return c; }
/**
*
*/
{ c = val; }
/**
*
*/
{ return d; }
/**
*
*/
{ d = val; }
/**
*
*/
{ return e; }
/**
*
*/
{ e = val; }
/**
*
*/
{ return f; }
/**
*
*/
{ f = val; }
/**
* Return the result of postmultiplying this matrix with another.
*/
{
return result;
}
/**
* Calculate the inverse of this matrix
*
*/
{
/*###########################################
The determinant of a 3x3 matrix E
(let's use our own notation for a bit)
A B C
D E F
G H I
is
AEI - AFH - BDI + BFG + CDH - CEG
Since in our affine transforms, G and H==0 and I==1,
this reduces to:
AE - BD
In SVG's naming scheme, that is: a * d - c * b . SIMPLE!
In a similar method of attack, SVG's adjunct matrix is:
d -c cf-ed
-b a eb-af
0 0 ad-cb
To get the inverse matrix, we divide the adjunct matrix by
the determinant. Notice that (ad-cb)/(ad-cb)==1. Very cool.
So what we end up with is this:
a = d/(ad-cb) c = -c/(ad-cb) e = (cf-ed)/(ad-cb)
b = -b/(ad-cb) d = a/(ad-cb) f = (eb-af)/(ad-cb)
(Since this would be in all SVG-DOM implementations,
somebody needed to document this! ^^ )
#############################################*/
double determinant = a * d - c * b;
{
return result;
}
return result;
}
/**
* Equivalent to multiplying by:
* | 1 0 x |
* | 0 1 y |
* | 0 0 1 |
*
*/
{
result.a = a;
result.b = b;
result.c = c;
result.d = d;
result.e = a * x + c * y + e;
result.f = b * x + d * y + f;
return result;
}
/**
* Equivalent to multiplying by:
* | scale 0 0 |
* | 0 scale 0 |
* | 0 0 1 |
*
*/
{
result.e = e;
result.f = f;
return result;
}
/**
* Equivalent to multiplying by:
* | scaleX 0 0 |
* | 0 scaleY 0 |
* | 0 0 1 |
*
*/
double scaleY )
{
result.e = e;
result.f = f;
return result;
}
/**
* Equivalent to multiplying by:
* | cos(a) -sin(a) 0 |
* | sin(a) cos(a) 0 |
* | 0 0 1 |
*
*/
{
result.e = e;
result.f = f;
return result;
}
/**
* Equivalent to multiplying by:
* | cos(a) -sin(a) 0 |
* | sin(a) cos(a) 0 |
* | 0 0 1 |
* In this case, angle 'a' is computed as the artangent
* of the slope y/x . It is negative if the slope is negative.
*/
{
if (y < 0.0)
result.e = e;
result.f = f;
return result;
}
/**
* Equivalent to multiplying by:
* | -1 0 0 |
* | 0 1 0 |
* | 0 0 1 |
*
*/
{
result.a = -a;
result.b = -b;
result.c = c;
result.d = d;
result.e = e;
result.f = f;
return result;
}
/**
* Equivalent to multiplying by:
* | 1 0 0 |
* | 0 -1 0 |
* | 0 0 1 |
*
*/
{
result.a = a;
result.b = b;
result.c = -c;
result.d = -d;
result.e = e;
result.f = f;
return result;
}
/**
* | 1 tan(a) 0 |
* | 0 1 0 |
* | 0 0 1 |
*
*/
{
result.a = a;
result.b = b;
result.e = e;
result.f = f;
return result;
}
/**
* Equivalent to multiplying by:
* | 1 0 0 |
* | tan(a) 1 0 |
* | 0 0 1 |
*
*/
{
result.c = c;
result.d = d;
result.e = e;
result.f = f;
return result;
}
//##################
//# Non-API methods
//##################
/**
*
*/
{
identity();
}
/**
*
*/
{
}
/**
* Copy constructor
*/
{
a = other.a;
b = other.b;
c = other.c;
d = other.d;
e = other.e;
f = other.f;
}
/**
*
*/
/*
* Set to the identify matrix
*/
void identity()
{
a = 1.0;
b = 0.0;
c = 0.0;
d = 1.0;
e = 0.0;
f = 0.0;
}
double a, b, c, d, e, f;
};
/*#########################################################################
## SVGTransform
#########################################################################*/
/**
*
*/
{
/**
* Transform Types
*/
typedef enum
{
SVG_TRANSFORM_MATRIX = 1,
SVG_TRANSFORM_SCALE = 3,
SVG_TRANSFORM_ROTATE = 4,
SVG_TRANSFORM_SKEWX = 5,
SVG_TRANSFORM_SKEWY = 6,
/**
*
*/
{ return type; }
/**
*
*/
{
return matrix;
}
/**
*
*/
{
return angle;
}
/**
*
*/
{
}
/**
*
*/
{
}
/**
*
*/
{
}
/**
*
*/
{
}
/**
*
*/
{
}
/**
*
*/
{
}
//##################
//# Non-API methods
//##################
/**
*
*/
{
angle = 0.0;
}
/**
*
*/
{
}
/**
*
*/
{}
int type;
double angle;
};
/*#########################################################################
## SVGTransformList
#########################################################################*/
/**
*
*/
{
/**
*
*/
virtual unsigned long getNumberOfItems()
/**
*
*/
/**
*
*/
{
return newItem;
}
/**
*
*/
{
{
return transform;
}
}
/**
*
*/
unsigned long index )
{
else
{
}
return newItem;
}
/**
*
*/
unsigned long index )
{
{
return transform;
}
else
{
}
return newItem;
}
/**
*
*/
{
{
return transform;
}
return oldItem;
}
/**
*
*/
{
return newItem;
}
/**
*
*/
{
return transform;
}
/**
*
*/
{
return transform;
}
//##################
//# Non-API methods
//##################
/**
*
*/
{}
/**
*
*/
{
}
/**
*
*/
virtual ~SVGTransformList() {}
};
/*#########################################################################
## SVGAnimatedTransformList
#########################################################################*/
/**
*
*/
{
/**
*
*/
{ return baseVal; }
/**
*
*/
{ return animVal; }
//##################
//# Non-API methods
//##################
/**
*
*/
{}
/**
*
*/
{
}
/**
*
*/
};
/*#########################################################################
## SVGAnimatedBoolean
#########################################################################*/
/**
*
*/
{
/**
*
*/
virtual bool getBaseVal()
{
return baseVal;
}
/**
*
*/
{
}
/**
*
*/
virtual bool getAnimVal()
{
return animVal;
}
//##################
//# Non-API methods
//##################
/**
*
*/
{
}
/**
*
*/
{
}
/**
*
*/
virtual ~SVGAnimatedBoolean() {}
};
/*#########################################################################
## SVGAnimatedString
#########################################################################*/
/**
*
*/
{
/**
*
*/
{
return baseVal;
}
/**
*
*/
{
}
/**
*
*/
{
return animVal;
}
//##################
//# Non-API methods
//##################
/**
*
*/
{
baseVal = "";
animVal = "";
}
/**
*
*/
{
}
/**
*
*/
virtual ~SVGAnimatedString() {}
};
/*#########################################################################
## SVGStringList
#########################################################################*/
/**
*
*/
{
/**
*
*/
virtual unsigned long getNumberOfItems()
{
}
/**
*
*/
{
}
/**
*
*/
{
return newItem;
}
/**
*
*/
{
return "";
}
/**
*
*/
unsigned long index )
{
{
}
else
{
}
return newItem;
}
/**
*
*/
unsigned long index )
{
return "";
return newItem;
}
/**
*
*/
{
return "";
return oldstr;
}
/**
*
*/
{
return newItem;
}
//##################
//# Non-API methods
//##################
/**
*
*/
SVGStringList() {}
/**
*
*/
{
}
/**
*
*/
virtual ~SVGStringList() {}
};
/*#########################################################################
## SVGAnimatedEnumeration
#########################################################################*/
/**
*
*/
{
/**
*
*/
virtual unsigned short getBaseVal()
{
return baseVal;
}
/**
*
*/
{
}
/**
*
*/
virtual unsigned short getAnimVal()
{
return animVal;
}
//##################
//# Non-API methods
//##################
/**
*
*/
{
}
/**
*
*/
{
}
/**
*
*/
};
/*#########################################################################
## SVGAnimatedInteger
#########################################################################*/
/**
*
*/
{
/**
*
*/
virtual long getBaseVal()
{
return baseVal;
}
/**
*
*/
{
}
/**
*
*/
virtual long getAnimVal()
{
return animVal;
}
//##################
//# Non-API methods
//##################
/**
*
*/
/**
*
*/
SVGAnimatedInteger(long value)
{
animVal = 0L;
}
/**
*
*/
{
}
/**
*
*/
{
}
/**
*
*/
virtual ~SVGAnimatedInteger() {}
};
/*#########################################################################
## SVGNumber
#########################################################################*/
/**
*
*/
{
/**
*
*/
{
return value;
}
/**
*
*/
{
}
//##################
//# Non-API methods
//##################
/**
*
*/
{
value = 0.0;
}
/**
*
*/
{
}
/**
*
*/
double value;
};
/*#########################################################################
## SVGAnimatedNumber
#########################################################################*/
/**
*
*/
{
/**
*
*/
virtual double getBaseVal()
{
return baseVal;
}
/**
*
*/
{
}
/**
*
*/
virtual double getAnimVal()
{
return animVal;
}
//##################
//# Non-API methods
//##################
/**
*
*/
{
}
/**
*
*/
SVGAnimatedNumber(double val)
{
animVal = 0.0;
}
/**
*
*/
{
}
/**
*
*/
{
}
/**
*
*/
virtual ~SVGAnimatedNumber() {}
};
/*#########################################################################
## SVGNumberList
#########################################################################*/
/**
*
*/
{
/**
*
*/
virtual unsigned long getNumberOfItems()
{
}
/**
*
*/
{
}
/**
*
*/
{
return newItem;
}
/**
*
*/
{
{
return num;
}
}
/**
*
*/
unsigned long index )
{
{
}
else
{
}
return newItem;
}
/**
*
*/
unsigned long index )
{
{
return num;
}
return newItem;
}
/**
*
*/
{
{
return num;
}
return oldval;
}
/**
*
*/
{
return newItem;
}
//##################
//# Non-API methods
//##################
/**
*
*/
SVGNumberList() {}
/**
*
*/
{
}
/**
*
*/
virtual ~SVGNumberList() {}
};
/*#########################################################################
## SVGAnimatedNumberList
#########################################################################*/
/**
*
*/
{
/**
*
*/
{
return baseVal;
}
/**
*
*/
{
return animVal;
}
//##################
//# Non-API methods
//##################
/**
*
*/
/**
*
*/
{
}
/**
*
*/
virtual ~SVGAnimatedNumberList() {}
};
/*#########################################################################
## SVGLength
#########################################################################*/
/**
*
*/
{
/**
* Length Unit Types
*/
typedef enum
{
SVG_LENGTHTYPE_EMS = 3,
SVG_LENGTHTYPE_EXS = 4,
SVG_LENGTHTYPE_PX = 5,
SVG_LENGTHTYPE_CM = 6,
SVG_LENGTHTYPE_MM = 7,
SVG_LENGTHTYPE_IN = 8,
SVG_LENGTHTYPE_PT = 9,
SVG_LENGTHTYPE_PC = 10
/**
*
*/
virtual unsigned short getUnitType( )
{
return unitType;
}
/**
*
*/
{
return value;
}
/**
*
*/
{
}
/**
*
*/
virtual double getValueInSpecifiedUnits( )
{
double result = 0.0;
//fill this in
return result;
}
/**
*
*/
{
//fill this in
}
/**
*
*/
{
char buf[32];
return ret;
}
/**
*
*/
{
}
/**
*
*/
{
}
/**
*
*/
{
}
//##################
//# Non-API methods
//##################
/**
*
*/
{
value = 0.0;
}
/**
*
*/
{
}
/**
*
*/
int unitType;
double value;
};
/*#########################################################################
## SVGAnimatedLength
#########################################################################*/
/**
*
*/
{
/**
*
*/
{
return baseVal;
}
/**
*
*/
{
return animVal;
}
//##################
//# Non-API methods
//##################
/**
*
*/
SVGAnimatedLength() {}
/**
*
*/
{
}
/**
*
*/
virtual ~SVGAnimatedLength() {}
};
/*#########################################################################
## SVGLengthList
#########################################################################*/
/**
*
*/
{
/**
*
*/
virtual unsigned long getNumberOfItems()
{
}
/**
*
*/
{
}
/**
*
*/
{
return newItem;
}
/**
*
*/
{
{
return ret;
}
}
/**
*
*/
unsigned long index )
{
{
}
else
{
}
return newItem;
}
/**
*
*/
unsigned long index )
{
{
return ret;
}
return newItem;
}
/**
*
*/
{
{
return ret;
}
return oldval;
}
/**
*
*/
{
return newItem;
}
//##################
//# Non-API methods
//##################
/**
*
*/
SVGLengthList() {}
/**
*
*/
{
}
/**
*
*/
virtual ~SVGLengthList() {}
};
/*#########################################################################
## SVGAnimatedLengthList
#########################################################################*/
/**
*
*/
{
/**
*
*/
{
return baseVal;
}
/**
*
*/
{
return animVal;
}
//##################
//# Non-API methods
//##################
/**
*
*/
/**
*
*/
{
}
/**
*
*/
virtual ~SVGAnimatedLengthList() {}
};
/*#########################################################################
## SVGAngle
#########################################################################*/
/**
*
*/
{
/**
* Angle Unit Types
*/
typedef enum
{
SVG_ANGLETYPE_DEG = 2,
SVG_ANGLETYPE_RAD = 3,
/**
*
*/
virtual unsigned short getUnitType()
{
return unitType;
}
/**
*
*/
{
return value;
}
/**
*
*/
{
}
/**
*
*/
virtual double getValueInSpecifiedUnits()
{
double result = 0.0;
//convert here
return result;
}
/**
*
*/
{
//do conversion
}
/**
*
*/
{
char buf[32];
return result;
}
/**
*
*/
{
//convert here
}
/**
*
*/
double /*valueInSpecifiedUnits*/ )
{
//convert here
}
/**
*
*/
{
//convert here
}
//##################
//# Non-API methods
//##################
/**
*
*/
SVGAngle()
{
value = 0.0;
}
/**
*
*/
{
}
/**
*
*/
int unitType;
double value;
};
/*#########################################################################
## SVGAnimatedAngle
#########################################################################*/
/**
*
*/
{
/**
*
*/
{
return baseVal;
}
/**
*
*/
{
return animVal;
}
//##################
//# Non-API methods
//##################
/**
*
*/
SVGAnimatedAngle() {}
/**
*
*/
/**
*
*/
{
}
/**
*
*/
virtual ~SVGAnimatedAngle() {}
};
/*#########################################################################
## SVGICCColor
#########################################################################*/
/**
*
*/
{
/**
*
*/
{
return colorProfile;
}
/**
*
*/
{
colorProfile = val;
}
/**
*
*/
{
return colors;
}
//##################
//# Non-API methods
//##################
/**
*
*/
SVGICCColor() {}
/**
*
*/
{
}
/**
*
*/
virtual ~SVGICCColor() {}
};
/*#########################################################################
## SVGColor
#########################################################################*/
/**
*
*/
{
/**
* Color Types
*/
typedef enum
{
} ColorType;
/**
*
*/
virtual unsigned short getColorType()
{
return colorType;
}
/**
*
*/
{
return col;
}
/**
*
*/
{
return col;
}
/**
*
*/
{
}
/**
*
*/
const DOMString& /*iccColor*/ )
{
}
/**
*
*/
const DOMString& /*rgbColor*/,
const DOMString& /*iccColor*/ )
{
}
//##################
//# Non-API methods
//##################
/**
*
*/
SVGColor()
{
}
/**
*
*/
{
}
/**
*
*/
int colorType;
};
/*#########################################################################
## SVGRect
#########################################################################*/
/**
*
*/
{
/**
*
*/
{
return x;
}
/**
*
*/
{
x = val;
}
/**
*
*/
{
return y;
}
/**
*
*/
{
y = val;
}
/**
*
*/
{
return width;
}
/**
*
*/
{
}
/**
*
*/
{
return height;
}
/**
*
*/
{
}
//##################
//# Non-API methods
//##################
/**
*
*/
SVGRect()
{
}
/**
*
*/
{
x = other.x;
y = other.y;
}
/**
*
*/
};
/*#########################################################################
## SVGAnimatedRect
#########################################################################*/
/**
*
*/
{
/**
*
*/
{
return baseVal;
}
/**
*
*/
{
return animVal;
}
//##################
//# Non-API methods
//##################
/**
*
*/
{
}
/**
*
*/
{
}
/**
*
*/
virtual ~SVGAnimatedRect() {}
};
/*#########################################################################
## SVGPoint
#########################################################################*/
/**
*
*/
{
/**
*
*/
{ return x; }
/**
*
*/
{ x = val; }
/**
*
*/
{ return y; }
/**
*
*/
{ y = val; }
/**
*
*/
{
return point;
}
//##################
//# Non-API methods
//##################
/**
*
*/
SVGPoint()
{ x = y = 0; }
/**
*
*/
{
x = other.x;
y = other.y;
}
/**
*
*/
double x, y;
};
/*#########################################################################
## SVGPointList
#########################################################################*/
/**
*
*/
{
/**
*
*/
virtual unsigned long getNumberOfItems()
/**
*
*/
/**
*
*/
{
return newItem;
}
/**
*
*/
{
{
return point;
}
}
/**
*
*/
unsigned long index )
{
else
{
}
return newItem;
}
/**
*
*/
unsigned long index )
{
{
return point;
}
return newItem;
}
/**
*
*/
{
{
return point;
}
return oldItem;
}
/**
*
*/
{
return newItem;
}
//##################
//# Non-API methods
//##################
/**
*
*/
SVGPointList() {}
/**
*
*/
{
}
/**
*
*/
virtual ~SVGPointList() {}
};
/*#########################################################################
## SVGUnitTypes
#########################################################################*/
/**
*
*/
{
/**
* Unit Types
*/
typedef enum
{
} UnitType;
//##################
//# Non-API methods
//##################
/**
*
*/
SVGUnitTypes() {}
/**
*
*/
virtual ~SVGUnitTypes() {}
};
/*#########################################################################
## SVGStylable
#########################################################################*/
/**
*
*/
{
/**
*
*/
{
return className;
}
/**
*
*/
{
return style;
}
/**
*
*/
{
//perform a lookup
return val;
}
//##################
//# Non-API methods
//##################
/**
*
*/
SVGStylable() {}
/**
*
*/
{
}
/**
*
*/
virtual ~SVGStylable() {}
};
/*#########################################################################
## SVGLocatable
#########################################################################*/
/**
*
*/
{
/**
*
*/
{
return result;
}
/**
*
*/
{
return result;
}
/**
*
*/
{
return bbox;
}
/**
*
*/
{
return ctm;
}
/**
*
*/
{
return screenCtm;
}
/**
*
*/
{
//do calculations
return result;
}
//##################
//# Non-API methods
//##################
/**
*
*/
SVGLocatable() {}
/**
*
*/
{
}
/**
*
*/
virtual ~SVGLocatable() {}
};
/*#########################################################################
## SVGTransformable
#########################################################################*/
/**
*
*/
{
/**
*
*/
{
return transforms;
}
//##################
//# Non-API methods
//##################
/**
*
*/
SVGTransformable() {}
/**
*
*/
{
}
/**
*
*/
virtual ~SVGTransformable() {}
};
/*#########################################################################
## SVGTests
#########################################################################*/
/**
*
*/
{
/**
*
*/
{
return requiredFeatures;
}
/**
*
*/
{
return requiredExtensions;
}
/**
*
*/
{
return systemLanguage;
}
/**
*
*/
{
return false;
}
//##################
//# Non-API methods
//##################
/**
*
*/
SVGTests() {}
/**
*
*/
{
}
/**
*
*/
};
/*#########################################################################
## SVGLangSpace
#########################################################################*/
/**
*
*/
{
/**
*
*/
{
return xmlLang;
}
/**
*
*/
{
}
/**
*
*/
{
return xmlSpace;
}
/**
*
*/
{
}
//##################
//# Non-API methods
//##################
/**
*
*/
SVGLangSpace() {}
/**
*
*/
{
}
/**
*
*/
virtual ~SVGLangSpace() {}
};
/*#########################################################################
## SVGExternalResourcesRequired
#########################################################################*/
/**
*
*/
{
/**
*
*/
{ return required; }
//##################
//# Non-API methods
//##################
/**
*
*/
{ }
/**
*
*/
{
}
/**
*
*/
};
/*#########################################################################
## SVGPreserveAspectRatio
#########################################################################*/
/**
*
*/
{
/**
* Alignment Types
*/
typedef enum
{
/**
* Meet-or-slice Types
*/
typedef enum
{
SVG_MEETORSLICE_MEET = 1,
/**
*
*/
{ return align; }
/**
*
*/
/**
*
*/
virtual unsigned short getMeetOrSlice()
{ return meetOrSlice; }
/**
*
*/
{ meetOrSlice = val; }
//##################
//# Non-API methods
//##################
/**
*
*/
{
}
/**
*
*/
{
}
/**
*
*/
unsigned short align;
unsigned short meetOrSlice;
};
/*#########################################################################
## SVGAnimatedPreserveAspectRatio
#########################################################################*/
/**
*
*/
{
/**
*
*/
{ return baseVal; }
/**
*
*/
{ return animVal; }
//##################
//# Non-API methods
//##################
/**
*
*/
/**
*
*/
{
}
/**
*
*/
};
/*#########################################################################
## SVGFitToViewBox
#########################################################################*/
/**
*
*/
{
/**
*
*/
{ return viewBox; }
/**
*
*/
{ return preserveAspectRatio; }
//##################
//# Non-API methods
//##################
/**
*
*/
{}
/**
*
*/
{
}
/**
*
*/
virtual ~SVGFitToViewBox() {}
};
/*#########################################################################
## SVGZoomAndPan
#########################################################################*/
/**
*
*/
{
/**
* Zoom and Pan Types
*/
typedef enum
{
/**
*
*/
virtual unsigned short getZoomAndPan()
{ return zoomAndPan; }
/**
*
*/
{ zoomAndPan = val; }
//##################
//# Non-API methods
//##################
/**
*
*/
{ zoomAndPan = SVG_ZOOMANDPAN_UNKNOWN; }
/**
*
*/
/**
*
*/
virtual ~SVGZoomAndPan() {}
unsigned short zoomAndPan;
};
/*#########################################################################
## SVGViewSpec
#########################################################################*/
/**
*
*/
{
/**
*
*/
{ return transform; }
/**
*
*/
{ return viewTarget; }
/**
*
*/
{
return ret;
}
/**
*
*/
{
return ret;
}
/**
*
*/
{
return ret;
}
/**
*
*/
{
return ret;
}
//##################
//# Non-API methods
//##################
/**
*
*/
{
viewTarget = NULL;
}
/**
*
*/
{
}
/**
*
*/
virtual ~SVGViewSpec() {}
};
/*#########################################################################
## SVGURIReference
#########################################################################*/
/**
*
*/
{
/**
*
*/
{ return href; }
//##################
//# Non-API methods
//##################
/**
*
*/
SVGURIReference() {}
/**
*
*/
{
}
/**
*
*/
virtual ~SVGURIReference() {}
};
/*#########################################################################
## SVGCSSRule
#########################################################################*/
/**
*
*/
{
/**
* Additional CSS RuleType to support ICC color specifications
*/
typedef enum
{
//##################
//# Non-API methods
//##################
/**
*
*/
{ type = COLOR_PROFILE_RULE; }
/**
*
*/
{ type = COLOR_PROFILE_RULE; }
/**
*
*/
virtual ~SVGCSSRule() {}
};
/*#########################################################################
## SVGRenderingIntent
#########################################################################*/
/**
*
*/
{
/**
* Rendering Intent Types
*/
typedef enum
{
//##################
//# Non-API methods
//##################
/**
*
*/
{
}
/**
*
*/
{
}
/**
*
*/
virtual ~SVGRenderingIntent() {}
unsigned short renderingIntentType;
};
/*#########################################################################
###########################################################################
## P A T H S E G M E N T S
###########################################################################
#########################################################################*/
static char const *const pathSegLetters[] =
{
"@", // PATHSEG_UNKNOWN,
"z", // PATHSEG_CLOSEPATH
"M", // PATHSEG_MOVETO_ABS
"m", // PATHSEG_MOVETO_REL,
"L", // PATHSEG_LINETO_ABS
"l", // PATHSEG_LINETO_REL
"C", // PATHSEG_CURVETO_CUBIC_ABS
"c", // PATHSEG_CURVETO_CUBIC_REL
"Q", // PATHSEG_CURVETO_QUADRATIC_ABS,
"q", // PATHSEG_CURVETO_QUADRATIC_REL
"A", // PATHSEG_ARC_ABS
"a", // PATHSEG_ARC_REL,
"H", // PATHSEG_LINETO_HORIZONTAL_ABS,
"h", // PATHSEG_LINETO_HORIZONTAL_REL
"V", // PATHSEG_LINETO_VERTICAL_ABS
"v", // PATHSEG_LINETO_VERTICAL_REL
"S", // PATHSEG_CURVETO_CUBIC_SMOOTH_ABS
"s", // PATHSEG_CURVETO_CUBIC_SMOOTH_REL
"T", // PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS
"t" // PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL
};
/*#########################################################################
## SVGPathSeg
#########################################################################*/
/**
*
*/
{
/**
* Path Segment Types
*/
typedef enum
{
PATHSEG_UNKNOWN = 0,
PATHSEG_CLOSEPATH = 1,
PATHSEG_MOVETO_ABS = 2,
PATHSEG_MOVETO_REL = 3,
PATHSEG_LINETO_ABS = 4,
PATHSEG_LINETO_REL = 5,
PATHSEG_ARC_ABS = 10,
PATHSEG_ARC_REL = 11,
/**
*
*/
virtual unsigned short getPathSegType()
{ return type; }
/**
*
*/
{
return letter;
}
//##################
//# Non-API methods
//##################
/**
*
*/
{ type = PATHSEG_UNKNOWN; }
/**
*
*/
{
}
/**
*
*/
virtual ~SVGPathSeg() {}
int type;
};
/*#########################################################################
## SVGPathSegClosePath
#########################################################################*/
/**
*
*/
{
//##################
//# Non-API methods
//##################
/**
*
*/
{
}
/**
*
*/
{
}
/**
*
*/
virtual ~SVGPathSegClosePath() {}
};
/*#########################################################################
## SVGPathSegMovetoAbs
#########################################################################*/
/**
*
*/
{
/**
*
*/
{ return x; }
/**
*
*/
{ x = val; }
/**
*
*/
{ return y; }
/**
*
*/
{ y = val; }
//##################
//# Non-API methods
//##################
/**
*
*/
{
x = y = 0.0;
}
/**
*
*/
{
}
/**
*
*/
{
}
/**
*
*/
virtual ~SVGPathSegMovetoAbs() {}
double x,y;
};
/*#########################################################################
## SVGPathSegMovetoRel
#########################################################################*/
/**
*
*/
{
/**
*
*/
{ return x; }
/**
*
*/
{ x = val; }
/**
*
*/
{ return y; }
/**
*
*/
{ y = val; }
//##################
//# Non-API methods
//##################
/**
*
*/
{
x = y = 0.0;
}
/**
*
*/
{
}
/**
*
*/
{
}
/**
*
*/
virtual ~SVGPathSegMovetoRel() {}
double x,y;
};
/*#########################################################################
## SVGPathSegLinetoAbs
#########################################################################*/
/**
*
*/
{
/**
*
*/
{ return x; }
/**
*
*/
{ x = val; }
/**
*
*/
{ return y; }
/**
*
*/
{ y = val; }
//##################
//# Non-API methods
//##################
/**
*
*/
{
x = y = 0.0;
}
/**
*
*/
{
}
/**
*
*/
{
}
/**
*
*/
virtual ~SVGPathSegLinetoAbs() {}
double x,y;
};
/*#########################################################################
## SVGPathSegLinetoRel
#########################################################################*/
/**
*
*/
{
/**
*
*/
{ return x; }
/**
*
*/
{ x = val; }
/**
*
*/
{ return y; }
/**
*
*/
{ y = val; }
//##################
//# Non-API methods
//##################
/**
*
*/
{
x = y = 0.0;
}
/**
*
*/
{
}
/**
*
*/
{
}
/**
*
*/
virtual ~SVGPathSegLinetoRel() {}
double x,y;
};
/*#########################################################################
## SVGPathSegCurvetoCubicAbs
#########################################################################*/
/**
*
*/
{
/**
*
*/
{ return x; }
/**
*
*/
{ x = val; }
/**
*
*/
{ return y; }
/**
*
*/
{ y = val; }
/**
*
*/
{ return x1; }
/**
*
*/
/**
*
*/
{ return y1; }
/**
*
*/
/**
*
*/
{ return x2; }
/**
*
*/
/**
*
*/
{ return y2; }
/**
*
*/
//##################
//# Non-API methods
//##################
/**
*
*/
{
}
/**
*
*/
{
}
/**
*
*/
: SVGPathSeg(other)
{
}
/**
*
*/
};
/*#########################################################################
## SVGPathSegCurvetoCubicRel
#########################################################################*/
/**
*
*/
{
/**
*
*/
{ return x; }
/**
*
*/
{ x = val; }
/**
*
*/
{ return y; }
/**
*
*/
{ y = val; }
/**
*
*/
{ return x1; }
/**
*
*/
/**
*
*/
{ return y1; }
/**
*
*/
/**
*
*/
{ return x2; }
/**
*
*/
/**
*
*/
{ return y2; }
/**
*
*/
//##################
//# Non-API methods
//##################
/**
*
*/
{
}
/**
*
*/
{
}
/**
*
*/
: SVGPathSeg(other)
{
}
/**
*
*/
};
/*#########################################################################
## SVGPathSegCurvetoQuadraticAbs
#########################################################################*/
/**
*
*/
{
/**
*
*/
{ return x; }
/**
*
*/
{ x = val; }
/**
*
*/
{ return y; }
/**
*
*/
{ y = val; }
/**
*
*/
{ return x1; }
/**
*
*/
/**
*
*/
{ return y1; }
/**
*
*/
//##################
//# Non-API methods
//##################
/**
*
*/
{
}
/**
*
*/
{
}
/**
*
*/
: SVGPathSeg(other)
{
}
/**
*
*/
};
/*#########################################################################
## SVGPathSegCurvetoQuadraticRel
#########################################################################*/
/**
*
*/
{
/**
*
*/
{ return x; }
/**
*
*/
{ x = val; }
/**
*
*/
{ return y; }
/**
*
*/
{ y = val; }
/**
*
*/
{ return x1; }
/**
*
*/
/**
*
*/
{ return y1; }
/**
*
*/
//##################
//# Non-API methods
//##################
/**
*
*/
{
}
/**
*
*/
{
}
/**
*
*/
: SVGPathSeg(other)
{
}
/**
*
*/
};
/*#########################################################################
## SVGPathSegArcAbs
#########################################################################*/
/**
*
*/
{
/**
*
*/
{ return x; }
/**
*
*/
{ x = val; }
/**
*
*/
{ return y; }
/**
*
*/
{ y = val; }
/**
*
*/
{ return r1; }
/**
*
*/
/**
*
*/
{ return r2; }
/**
*
*/
/**
*
*/
{ return angle; }
/**
*
*/
/**
*
*/
virtual bool getLargeArcFlag()
{ return largeArcFlag; }
/**
*
*/
{ largeArcFlag = val; }
/**
*
*/
virtual bool getSweepFlag()
{ return sweepFlag; }
/**
*
*/
//##################
//# Non-API methods
//##################
/**
*
*/
{
largeArcFlag = sweepFlag = false;
}
/**
*
*/
double angleArg,
bool largeArcFlagArg,
bool sweepFlagArg )
{
}
/**
*
*/
: SVGPathSeg(other)
{
}
/**
*
*/
virtual ~SVGPathSegArcAbs() {}
bool largeArcFlag;
bool sweepFlag;
};
/*#########################################################################
## SVGPathSegArcRel
#########################################################################*/
/**
*
*/
{
/**
*
*/
{ return x; }
/**
*
*/
{ x = val; }
/**
*
*/
{ return y; }
/**
*
*/
{ y = val; }
/**
*
*/
{ return r1; }
/**
*
*/
/**
*
*/
{ return r2; }
/**
*
*/
/**
*
*/
{ return angle; }
/**
*
*/
/**
*
*/
virtual bool getLargeArcFlag()
{ return largeArcFlag; }
/**
*
*/
{ largeArcFlag = val; }
/**
*
*/
virtual bool getSweepFlag()
{ return sweepFlag; }
/**
*
*/
//##################
//# Non-API methods
//##################
/**
*
*/
{
largeArcFlag = sweepFlag = false;
}
/**
*
*/
double angleArg,
bool largeArcFlagArg,
bool sweepFlagArg )
{
}
/**
*
*/
: SVGPathSeg(other)
{
}
/**
*
*/
virtual ~SVGPathSegArcRel() {}
bool largeArcFlag;
bool sweepFlag;
};
/*#########################################################################
## SVGPathSegLinetoHorizontalAbs
#########################################################################*/
/**
*
*/
{
/**
*
*/
{ return x; }
/**
*
*/
{ x = val; }
//##################
//# Non-API methods
//##################
/**
*
*/
{
x = 0.0;
}
/**
*
*/
SVGPathSegLinetoHorizontalAbs(double xArg)
{
x = xArg;
}
/**
*
*/
: SVGPathSeg(other)
{
x = other.x;
}
/**
*
*/
double x;
};
/*#########################################################################
## SVGPathSegLinetoHorizontalRel
#########################################################################*/
/**
*
*/
{
/**
*
*/
{ return x; }
/**
*
*/
{ x = val; }
//##################
//# Non-API methods
//##################
/**
*
*/
{
x = 0.0;
}
/**
*
*/
SVGPathSegLinetoHorizontalRel(double xArg)
{
x = xArg;
}
/**
*
*/
: SVGPathSeg(other)
{
x = other.x;
}
/**
*
*/
double x;
};
/*#########################################################################
## SVGPathSegLinetoVerticalAbs
#########################################################################*/
/**
*
*/
{
/**
*
*/
{ return y; }
/**
*
*/
{ y = val; }
//##################
//# Non-API methods
//##################
/**
*
*/
{
y = 0.0;
}
/**
*
*/
SVGPathSegLinetoVerticalAbs(double yArg)
{
y = yArg;
}
/**
*
*/
: SVGPathSeg(other)
{
y = other.y;
}
/**
*
*/
double y;
};
/*#########################################################################
## SVGPathSegLinetoVerticalRel
#########################################################################*/
/**
*
*/
{
/**
*
*/
{ return y; }
/**
*
*/
{ y = val; }
//##################
//# Non-API methods
//##################
/**
*
*/
{
y = 0.0;
}
/**
*
*/
SVGPathSegLinetoVerticalRel(double yArg)
{
y = yArg;
}
/**
*
*/
: SVGPathSeg(other)
{
y = other.y;
}
/**
*
*/
double y;
};
/*#########################################################################
## SVGPathSegCurvetoCubicSmoothAbs
#########################################################################*/
/**
*
*/
{
/**
*
*/
{ return x; }
/**
*
*/
{ x = val; }
/**
*
*/
{ return y; }
/**
*
*/
{ y = val; }
/**
*
*/
{ return x2; }
/**
*
*/
/**
*
*/
{ return y2; }
/**
*
*/
//##################
//# Non-API methods
//##################
/**
*
*/
{
}
/**
*
*/
{
}
/**
*
*/
: SVGPathSeg(other)
{
}
/**
*
*/
};
/*#########################################################################
## SVGPathSegCurvetoCubicSmoothRel
#########################################################################*/
/**
*
*/
{
/**
*
*/
{ return x; }
/**
*
*/
{ x = val; }
/**
*
*/
{ return y; }
/**
*
*/
{ y = val; }
/**
*
*/
{ return x2; }
/**
*
*/
/**
*
*/
{ return y2; }
/**
*
*/
//##################
//# Non-API methods
//##################
/**
*
*/
{
}
/**
*
*/
{
}
/**
*
*/
: SVGPathSeg(other)
{
}
/**
*
*/
};
/*#########################################################################
## SVGPathSegCurvetoQuadraticSmoothAbs
#########################################################################*/
/**
*
*/
{
/**
*
*/
{ return x; }
/**
*
*/
{ x = val; }
/**
*
*/
{ return y; }
/**
*
*/
{ y = val; }
//##################
//# Non-API methods
//##################
/**
*
*/
{
x = y = 0.0;
}
/**
*
*/
{
}
/**
*
*/
: SVGPathSeg(other)
{
x = y = 0.0;
}
/**
*
*/
double x, y;
};
/*#########################################################################
## SVGPathSegCurvetoQuadraticSmoothRel
#########################################################################*/
/**
*
*/
{
/**
*
*/
{ return x; }
/**
*
*/
{ x = val; }
/**
*
*/
{ return y; }
/**
*
*/
{ y = val; }
//##################
//# Non-API methods
//##################
/**
*
*/
{
x = y = 0.0;
}
/**
*
*/
{
}
/**
*
*/
: SVGPathSeg(other)
{
x = y = 0.0;
}
/**
*
*/
double x, y;
};
/*#########################################################################
## SVGPathSegList
#########################################################################*/
/**
*
*/
{
/**
*
*/
virtual unsigned long getNumberOfItems()
/**
*
*/
/**
*
*/
{
return newItem;
}
/**
*
*/
{
{
return seg;
}
}
/**
*
*/
unsigned long index )
{
else
{
}
return newItem;
}
/**
*
*/
unsigned long index )
{
{
return seg;
}
return newItem;
}
/**
*
*/
{
{
return seg;
}
return olditem;
}
/**
*
*/
{
return newItem;
}
//##################
//# Non-API methods
//##################
/**
*
*/
SVGPathSegList() {}
/**
*
*/
{
}
/**
*
*/
virtual ~SVGPathSegList() {}
};
/*#########################################################################
## SVGAnimatedPathData
#########################################################################*/
/**
*
*/
{
/**
*
*/
{
return list;
}
/**
*
*/
{
return list;
}
/**
*
*/
{
return list;
}
/**
*
*/
{
return list;
}
//##################
//# Non-API methods
//##################
/**
*
*/
{}
/**
*
*/
{
}
/**
*
*/
virtual ~SVGAnimatedPathData() {}
};
/*#########################################################################
## SVGAnimatedPoints
#########################################################################*/
/**
*
*/
{
/**
*
*/
{ return points; }
/**
*
*/
{ return animatedPoints; }
//##################
//# Non-API methods
//##################
/**
*
*/
SVGAnimatedPoints() {}
/**
*
*/
{
}
/**
*
*/
virtual ~SVGAnimatedPoints() {}
};
/*#########################################################################
## SVGPaint
#########################################################################*/
/**
*
*/
{
/**
* Paint Types
*/
typedef enum
{
SVG_PAINTTYPE_NONE = 101,
SVG_PAINTTYPE_CURRENTCOLOR = 102,
SVG_PAINTTYPE_URI_NONE = 103,
SVG_PAINTTYPE_URI_RGBCOLOR = 105,
SVG_PAINTTYPE_URI = 107
} PaintType;
/**
*
*/
virtual unsigned short getPaintType()
{ return paintType; }
/**
*
*/
{ return uri; }
/**
*
*/
/**
*
*/
const DOMString& /*rgbColor*/,
const DOMString& /*iccColor*/ )
{
//do something with rgbColor
//do something with iccColor;
}
//##################
//# Non-API methods
//##################
/**
*
*/
SVGPaint()
{
uri = "";
}
/**
*
*/
{
uri = "";
}
/**
*
*/
unsigned int paintType;
};
/*#########################################################################
## SVGColorProfileRule
#########################################################################*/
/**
*
*/
{
/**
*
*/
{ return src; }
/**
*
*/
/**
*
*/
{ return name; }
/**
*
*/
/**
*
*/
virtual unsigned short getRenderingIntent()
{ return renderingIntent; }
/**
*
*/
{ renderingIntent = val; }
//##################
//# Non-API methods
//##################
/**
*
*/
SVGColorProfileRule() {}
/**
*
*/
{
}
/**
*
*/
virtual ~SVGColorProfileRule() {}
unsigned short renderingIntent;
};
/*#########################################################################
## SVGFilterPrimitiveStandardAttributes
#########################################################################*/
/**
*
*/
{
/**
*
*/
{ return x; }
/**
*
*/
{ return y; }
/**
*
*/
{ return width; }
/**
*
*/
{ return height; }
/**
*
*/
{ return result; }
//##################
//# Non-API methods
//##################
/**
*
*/
{}
/**
*
*/
: SVGStylable(other)
{
x = other.x;
y = other.y;
}
/**
*
*/
};
/*#########################################################################
## SVGEvent
#########################################################################*/
/**
*
*/
{
//##################
//# Non-API methods
//##################
/**
*
*/
SVGEvent() {}
/**
*
*/
{}
/**
*
*/
};
/*#########################################################################
## SVGZoomEvent
#########################################################################*/
/**
*
*/
{
/**
*
*/
{ return zoomRectScreen; }
/**
*
*/
virtual double getPreviousScale()
{ return previousScale; }
/**
*
*/
{ return previousTranslate; }
/**
*
*/
virtual double getNewScale()
{ return newScale; }
/**
*
*/
{ return newTranslate; }
//##################
//# Non-API methods
//##################
/**
*
*/
{}
/**
*
*/
{
}
/**
*
*/
virtual ~SVGZoomEvent() {}
double previousScale;
double newScale;
};
/*#########################################################################
## SVGElementInstance
#########################################################################*/
/**
*
*/
{
/**
*
*/
{ return correspondingElement; }
/**
*
*/
{ return correspondingUseElement; }
/**
*
*/
{
return ret;
}
/**
* Since we are using stack types and this is a circular definition,
* we will instead implement this as a global function below:
* SVGElementInstanceList getChildNodes(const SVGElementInstance instance);
*/
//virtual SVGElementInstanceList getChildNodes();
/**
*
*/
{
return ret;
}
/**
*
*/
{
return ret;
}
/**
*
*/
{
return ret;
}
/**
*
*/
{
return ret;
}
//##################
//# Non-API methods
//##################
/**
*
*/
SVGElementInstance() {}
/**
*
*/
{
}
/**
*
*/
virtual ~SVGElementInstance() {}
};
/*#########################################################################
## SVGElementInstanceList
#########################################################################*/
/**
*
*/
{
/**
*
*/
/**
*
*/
{
{
return ret;
}
}
/**
* This static method replaces the circular definition of:
* SVGElementInstanceList SVGElementInstance::getChildNodes()
*
*/
{
return list;
}
//##################
//# Non-API methods
//##################
/**
*
*/
/**
*
*/
{
}
/**
*
*/
};
} //namespace svg
} //namespace dom
} //namespace w3c
} //namespace org
#endif /* __SVGTYPES_H__ */
/*#########################################################################
## E N D O F F I L E
#########################################################################*/