a2dCanvasObject related objects

Collaboration diagram for a2dCanvasObject related objects:

Modules

 vector path a2dCanvasObject plus segment classes

Classes

class  a2dComEvent
 see a2dComEvent More...
class  a2dDrawingFrame
 To use as a drawing frame within a drawing. More...
class  a2d3DShape
 to make object having a shadow behind it OR to extrude them in 3D More...
class  a2dRenderImage
 a2dRenderImage is an a2dCanvasObject that is able to display a complete a2dCanvasDocument as a a2dCanvasObject. More...
class  a2dBoundingBox
 The a2dBoundingBox class stores one a2dBoundingBox of a a2dCanvasObject. More...
class  a2dTicFormatter
 base class for axis tic formatter More...
class  a2dCurveAxis
 base class for axis in a2dCanvasXYDisplayGroup More...
class  a2dCurveAxisLin
 base class for axis in a2dCanvasXYDisplayGroup More...
class  a2dCurveObject
 a2dCurveObject for objects needing to know its parent a2dCurvesArea. More...
class  a2dCurve
 Base class for curves. More...
class  a2dFunctionCurve
 Object to plot a Curve defined by a Function in form of a string. More...
class  a2dVertexCurve
 Curve represented by a number of vertexes. More...
class  a2dSweepCurve
 Curve represented by a number of vertexes. More...
class  a2dBandCurve
 Curve represented by a number of vertexes. More...
class  a2dBarCurve
 Bars in a Curve represented by a number of vertexes. More...
class  a2dVertexListCurve
 Curve represented by a number of vertexes in a List. More...
class  a2dPieCurve
 Curve represented by a number of vertexes. More...
class  a2dCurvesArea
 base class for curve area in a a2dCurvesAreaList, like used in a2dCanvasXYDisplayGroups More...
class  a2dCanvasXYDisplayGroupAreas
 Special object group to plot a2dCurve Objects but also any other a2dCanvasObject. More...
class  a2dBaseMarker
 For Markers on a Plot. More...
class  a2dAxisMarker
 For Markers on an Axis. More...
class  a2dMarker
 For Markers on a Curve. More...
class  a2dMarkerShow
 For Showing Marker position of Markers on a Curve. More...
class  a2dBooleanWalkerHandler
 walk a document tree and perform boolean opration on primitives. More...
class  a2dCanvasDocument
 Each a2dCanvasView needs to have a a2dCanvasDocument set in order to render data. More...
class  a2dImage
 a2dImage (will scale/rotate image when needed) More...
class  a2dRgbaImage
 a2dRgbaImage More...
class  a2dImageMM
 a2dImageMM (will scale/rotate image when needed) More...
class  a2dCanvasOFlags
 a2dCanvasObject flags as a structure More...
struct  a2dCanvasOHitFlags
 a2dCanvasObject hit flags as a structure More...
class  a2dCanvasObject
 a2dCanvasObject is the base class for Canvas Objects. More...
class  a2dOrigin
 a2dOrigin stays at World Coordinate Zero (0,0) not matter what. More...
class  a2dHandle
 a2dHandle is used inside editing versions of a certain objects. More...
class  a2dPin
 a2dPin used in a2dCanvasObject to add pins to it. More...
class  a2dRectC
 a2dRectC is a centered rectangle More...
class  a2dArrow
 a2dArrow is used for having line begin and ends on specific objects. More...
class  a2dWH
 a2dWH More...
class  a2dWHCenter
 a2dWHCenter More...
class  a2dRect
 a2dRect More...
class  a2dCircle
 a2dCircle at x,y, and with radius More...
class  a2dEllipse
 a2dEllipse centered at x,y. More...
class  a2dEllipticArc
 a2dEllipticArc centered at x,y More...
class  a2dArc
 a2dArc centered at x,y More...
class  a2dSLine
 a2dSLine More...
class  a2dEndsLine
 a2dEndsLine with begin and/or end object. More...
class  a2dScaledEndLine
 a2dScaledEndLine More...
class  a2dEndsEllipticChord
 a2dEndsEllipticChord with begin and/or end object. More...
class  a2dControl
 a2dControl captures a wxWindow inside More...
class  a2dWires
 a2dWires is used to generate wires to Connect other a2dCanvasObject's More...
class  a2dText
 a2dText is an abstract base class. More...
class  a2dWidgetButton
 a2dWidgetButton is a a2dCanvasObject based button in a canvas More...
class  a2dLayerView
 Used by a2dCanvasView to decide what layers are to be rendered. More...
class  a2dLayerInfo
 contains the layer properties for one layer, More...
class  a2dLayers
class  a2dPolygonL
 polygon defined with list of points. More...
class  a2dPolylineL
 polyline defined with list of points. More...
class  a2dSurface
 polygon defined with list of points for outer contour plus a list of hole polygons More...
class  a2dPolygonLClipper
 clips all children to a polygon More...
class  a2dPolygonLClipper2
 clips all children to a polygon More...
class  a2dRectMM
 a2dRectMM More...
class  a2dWindowMM
 a2dWindowMM More...
class  a2dCanvasObjectReference
 a2dCanvasObjectReference is a reference to any a2dCanvasObject derived class. More...
class  a2dCanvasObjectArrayReference
 a2dCanvasObjectArrayReference is an array of a reference to any a2dCanvasObject derived class. More...
class  a2dLibraryReference
 a2dLibraryReference is a symbol object, it holds a reference More...
class  a2dExternalReference
 a2dExternalReference is a text like object, but next to that it holds a reference More...
class  a2dNameReference
 a2dNameReference is a text like object, but next to that it holds a reference More...
class  a2dCanvasDocumentReference
 to display a2dCanvasObject references More...
class  a2dVectorPath
 a2dCanvasObject for a Vector Path More...
class  a2dWirePolylineL
 a2dWirePolylineL is a polyline that adjusts itself when the objects it connects move More...
class  a2dTextGDS
 a2dTextGDS text based on wxDC text drawing. More...

Bounding box

Each a2dCanvasObject has a Bounding box for efficient drawing and hit testing. The bounding box is always the bounding box of the vertices. It is extended in pixels or would units to cope for stroke width and decorations like handles.

enum  a2dCanvasObject::a2dBboxFlag { a2dCanvasObject::a2dCANOBJ_BBOX_NON = 0x0000, a2dCanvasObject::a2dCANOBJ_BBOX_EDIT = 0x0001, a2dCanvasObject::a2dCANOBJ_BBOX_CHILDREN = 0x0002 }
 flags for calculating boundingbox of derived object More...
typedef unsigned int a2dCanvasObject::a2dBboxFlags
double a2dCanvasObject::GetBboxMinX ()
 get minimum X of the boundingbox in world coordinates relative to its parents
double a2dCanvasObject::GetBboxMinY ()
 get minimum Y of the boundingbox in world coordinates relative to its parents
double a2dCanvasObject::GetBboxMaxX ()
 get maximum X of the boundingbox in world coordinates relative to its parents
double a2dCanvasObject::GetBboxMaxY ()
 get maximum Y of the boundingbox in world coordinates relative to its parents
double a2dCanvasObject::GetBboxWidth ()
 get width of the boundingbox in world coordinates relative to its parents
double a2dCanvasObject::GetBboxHeight ()
 get height of the boundingbox in world coordinates relative to its parents
a2dBoundingBoxa2dCanvasObject::GetBbox ()
 get boundingbox in world coordinates exclusive stroke width relative to its parent
virtual a2dBoundingBox a2dCanvasObject::GetUnTransformedBbox (a2dBboxFlags flags=a2dCANOBJ_BBOX_CHILDREN) const
 Get boundingbox without the affine matrix transform included.
a2dBoundingBox a2dCanvasObject::GetCalculatedBoundingBox (int nChildLevels)
 Like GetBbox, but it always calculcates the bounding box from scratch.
a2dBoundingBox a2dCanvasObject::GetMappedBbox (a2dIterC &ic, bool withExtend=true)
 first translate boundingbox with cworld and recalculate at new position
a2dBoundingBox a2dCanvasObject::GetMappedBbox (const a2dAffineMatrix &cworld)
 first translate boundingbox with cworld and recalculate at new position
wxRect a2dCanvasObject::GetAbsoluteArea (a2dIterC &ic, int inflate=2)
 Get absolute occupied area in the device coordinates.
float a2dCanvasObject::GetWorldExtend () const
 get world extend
int a2dCanvasObject::GetPixelExtend () const
 get pixel extend
OVERLAP a2dCanvasObject::GetClipStatus (a2dIterC &ic, OVERLAP clipparent)
 used for deciding if the object needs to be rendered against the current clipping area of the active drawer.
a2dBoundingBox a2dCanvasObject::GetClipBox (a2dIterC &ic)
 returns boundingbox clipping object if clipping property is set

Typedefs

typedef wxUint64 a2dCanvasObjectFlagsMask
 mask flags for a2dCanvasObject
typedef unsigned int wxIterCFlagsMask
 mask flags for a2dIterC

Enumerations

enum  OVERLAP { _IN, _ON, _OUT }
 Result of a a2dBoundingBox intersection or hittest. More...
enum  a2dCanvasObjectHitFlags {
  a2dCANOBJ_EVENT_NON = 0x0001, a2dCANOBJ_EVENT_FILL = 0x0002, a2dCANOBJ_EVENT_STROKE = 0x0004, a2dCANOBJ_EVENT_FILL_NON_TRANSPARENT = 0x0008,
  a2dCANOBJ_EVENT_STROKE_NON_TRANSPARENT = 0x0010, a2dCANOBJ_EVENT_VISIBLE = 0x0020, a2dCANOBJ_EVENT_ALL = 0x0040
}
 event mask flags for a2dCanvasObject hit More...

Variables

static const
a2dCanvasObjectFlagsMask 
a2dCanvasOFlags::NON = 0x00000000
 Flags for a2dCanvasObject.

Enumeration Type Documentation

enum a2dCanvasObject::a2dBboxFlag [inherited]

flags for calculating boundingbox of derived object

Those flags are used in a a2dBboxFlags to indicate different ways of bounding boxes to be calculated.

See also:
DoGetUnTransformedBbox()

GetUnTransformedBbox()

Enumerator:
a2dCANOBJ_BBOX_NON  return full boundingbox of derived object
a2dCANOBJ_BBOX_EDIT  return to contain edit bbox, suitable for editing matrix of object
a2dCANOBJ_BBOX_CHILDREN  return to contain children bbox

Definition at line 1027 of file canobj.h.

event mask flags for a2dCanvasObject hit

a2dCanvasObjectHitFlags used in a mask for defining how an object should be hit

Enumerator:
a2dCANOBJ_EVENT_NON  no hit will be reported
a2dCANOBJ_EVENT_FILL  hit if filled
a2dCANOBJ_EVENT_STROKE  hit if stroked
a2dCANOBJ_EVENT_FILL_NON_TRANSPARENT  hit if filling is not transparent
a2dCANOBJ_EVENT_STROKE_NON_TRANSPARENT  hit if stroke is not transparent
a2dCANOBJ_EVENT_VISIBLE  hit if visible
a2dCANOBJ_EVENT_ALL  always hit

Definition at line 347 of file canobj.h.

enum OVERLAP

Result of a a2dBoundingBox intersection or hittest.

Enumerator:
_IN  Test was completely in the boundingbox
_ON  Test was overlapping the boundingbox its border
_OUT  Test was completely out of the boundingbox

Definition at line 24 of file bbox.h.


Function Documentation

wxRect a2dCanvasObject::GetAbsoluteArea ( a2dIterC ic,
int  inflate = 2 
) [inherited]

Get absolute occupied area in the device coordinates.

The object its boundingbox in world coordinates is first translated using the matrix cworld. Cworld will normally contain the accumulated matrix to the object with in the object Tree structure.

Remarks:
pixel and world extend are included.
Parameters:
ic iterative context to get matrix which is applied first to get to absolute position
inflate extra pxiels added on each size, to get rid of double to int rounding problems.

Definition at line 3800 of file canobj.cpp.

a2dBoundingBox & a2dCanvasObject::GetBbox (  )  [inherited]

get boundingbox in world coordinates exclusive stroke width relative to its parent

Remarks:
stroke width is not included.

if the boundingbox is not valid, it will be calculated right now, and to make sure parent object will have the right boundingbox, the object is set pending. That will in the update of a2dCanvasDocument, lead to redrawing and recalculation of this object and parent boundingbox will be recalculated.

Definition at line 3776 of file canobj.cpp.

double a2dCanvasObject::GetBboxHeight (  )  [inline, inherited]

get height of the boundingbox in world coordinates relative to its parents

Remarks:
stroke width is not included.

Definition at line 1070 of file canobj.h.

double a2dCanvasObject::GetBboxMaxX (  )  [inline, inherited]

get maximum X of the boundingbox in world coordinates relative to its parents

Remarks:
stroke width is not included.

Definition at line 1052 of file canobj.h.

double a2dCanvasObject::GetBboxMaxY (  )  [inline, inherited]

get maximum Y of the boundingbox in world coordinates relative to its parents

Remarks:
stroke width is not included.

Definition at line 1058 of file canobj.h.

double a2dCanvasObject::GetBboxMinX (  )  [inline, inherited]

get minimum X of the boundingbox in world coordinates relative to its parents

Remarks:
stroke width is not included.

Definition at line 1040 of file canobj.h.

double a2dCanvasObject::GetBboxMinY (  )  [inline, inherited]

get minimum Y of the boundingbox in world coordinates relative to its parents

Remarks:
stroke width is not included.

Definition at line 1046 of file canobj.h.

double a2dCanvasObject::GetBboxWidth (  )  [inline, inherited]

get width of the boundingbox in world coordinates relative to its parents

Remarks:
stroke width is not included.

Definition at line 1064 of file canobj.h.

a2dBoundingBox a2dCanvasObject::GetCalculatedBoundingBox ( int  nChildLevels  )  [inherited]

Like GetBbox, but it always calculcates the bounding box from scratch.

This is usefull, when you need the bounding box, but the stored bounding box is not up to date. The rendering system relies on doing this update on its own, because it needs the old bounding box for update area calculation.

Parameters:
nChildLevels number of child levels to include (0=no childs, 1=direct childs, ...)

Definition at line 5511 of file canobj.cpp.

a2dBoundingBox a2dCanvasObject::GetClipBox ( a2dIterC ic  )  [inherited]

returns boundingbox clipping object if clipping property is set

See also:
a2dClipPathProperty
Parameters:
ic iterative context contains matrix which is applied first to get to absolute position

Definition at line 6368 of file canobj.cpp.

OVERLAP a2dCanvasObject::GetClipStatus ( a2dIterC ic,
OVERLAP  clipparent 
) [inherited]

used for deciding if the object needs to be rendered against the current clipping area of the active drawer.

Parameters:
ic iterative context contains matrix which is applied first to get to absolute position
clipparent clipping status of parent object ( to optimize )

Definition at line 3874 of file canobj.cpp.

a2dBoundingBox a2dCanvasObject::GetMappedBbox ( const a2dAffineMatrix cworld  )  [inherited]

first translate boundingbox with cworld and recalculate at new position

Parameters:
cworld matrix applied first to get to absolute position

Definition at line 3847 of file canobj.cpp.

a2dBoundingBox a2dCanvasObject::GetMappedBbox ( a2dIterC ic,
bool  withExtend = true 
) [inherited]

first translate boundingbox with cworld and recalculate at new position

Remarks:
a2dCanvasView for the a2dCanvasDocument must be set.
Parameters:
ic iterative context contains matrix which is applied first to get to absolute position
withExtend if true boundingbox includes extend in world and pixels ( a2dCanvasView must be set for m_root )

Definition at line 3857 of file canobj.cpp.

int a2dCanvasObject::GetPixelExtend (  )  const [inline, inherited]

get pixel extend

pixel extend is the amount that the boundingbox is enlarged because of the stroke its size in case of a storke with width defined in pixel coordinates. Other things may be included to get the total extend to the boundingbox of the object.

The complete area occupied by a a2dCanvasObject in general is the boundingbox enlarged with the worldExtend + the pixelExtend ( expressed in worldcoordinates ). But if needed one can add to the both extends whatever is needed.

Remarks:
pixelExtend is calculated while Updating document/object

a trick to be able to use objects complete in pixel coordinates, the boundingbox can be made zero while the pixel extend account for the rest. a2dHandle uses this approach. It will result in a total area that is square.

Definition at line 1159 of file canobj.h.

a2dBoundingBox a2dCanvasObject::GetUnTransformedBbox ( a2dBboxFlags  flags = a2dCANOBJ_BBOX_CHILDREN  )  const [virtual, inherited]

Get boundingbox without the affine matrix transform included.

Extends as a result of stroke etc. is not included.

Parameters:
flags default a2dCANOBJ_BBOX_CHILDREN to include child objects in the boundingbox

Definition at line 5475 of file canobj.cpp.

float a2dCanvasObject::GetWorldExtend (  )  const [inline, inherited]

get world extend

world extend is the amount that the boundingbox is enlarged because of the stroke its size in case of a stroke with width defined in world coordinates. Other things may be included to get the total extend to the boundingbox of the object.

The complete area occupied by a a2dCanvasObject in general is the boundingbox enlarged with the worldExtend + the pixelExtend ( expressed in worldcoordinates ). But if needed one can add to the both extends whatever is needed.

Remarks:
worldExtend is calculated while Updating document/object

Definition at line 1141 of file canobj.h.


Variable Documentation

const a2dCanvasObjectFlagsMask a2dCanvasOFlags::NON = 0x00000000 [static, inherited]

Flags for a2dCanvasObject.

Those flags or used in mask for set flag inside a a2dCanvasObject or to get the value of a flag.

See also:
a2dCanvasObject_FlagsS

a2dCanvasObjectFlagsMask No flags

No flags

Definition at line 166 of file canobj.h.

a2dCanvasObject related objects -- Tue Aug 31 18:10:58 2010 -- 31 Aug 2010 -- 1.5.5 -- wxArt2D -- . -- Main Page Reference Documentation