wxArt2D
Modules | Classes | Typedefs | Enumerations | Variables
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  a2dCameleon
 object to show several appearance views on what it contains More...
 
class  a2dCanvasOFlags
 a2dCanvasObject flags as a structure 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...
 
struct  a2dCanvasOHitFlags
 a2dCanvasObject hit flags as a structure More...
 
class  a2dCanvasObject
 a2dCanvasObject is the base class for Canvas Objects. More...
 
class  a2dHandle
 a2dHandle is used inside editing versions of a certain objects. More...
 
class  a2dPin
 a2dPin is used in a2dCanvasObject to add pins to it. More...
 
class  a2dOrigin
 a2dOrigin stays at World Coordinate Zero (0,0) not matter what. 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  a2dTextGDS
 a2dTextGDS text based on wxDC text drawing. More...
 
class  a2dWidgetButton
 a2dWidgetButton is a a2dCanvasObject based button in a canvas More...
 
class  a2dLayerView
 Used by a2dDrawingPart 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  a2dSymbolicReference
 a2dSymbolicReference does not render referenced object. 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  a2dCanvasDocument
 Each a2dCanvasView needs to have a a2dCanvasDocument set in order to render data. More...
 
class  a2dCanvasDocumentReference
 to display a2dCanvasObject references More...
 
class  a2dCanvasDocumentReference2
 to display a2dCanvasObject references More...
 
class  a2dCanvasDocumentReferenceAsText
 to display a2dCanvasObject references More...
 
class  a2dCanvasObjectLua
 Lua script used to draw the object. More...
 

Typedefs

typedef wxUint64 a2dCanvasObjectFlagsMask
 mask flags for a2dCanvasObject
 

Enumerations

enum  OVERLAP { _IN = 0x01, _ON = 0x02, _OUT = 0x04 }
 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. 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 More...
 
double a2dCanvasObject::GetBboxMinY ()
 get minimum Y of the boundingbox in world coordinates relative to its parents More...
 
double a2dCanvasObject::GetBboxMaxX ()
 get maximum X of the boundingbox in world coordinates relative to its parents More...
 
double a2dCanvasObject::GetBboxMaxY ()
 get maximum Y of the boundingbox in world coordinates relative to its parents More...
 
double a2dCanvasObject::GetBboxWidth ()
 get width of the boundingbox in world coordinates relative to its parents More...
 
double a2dCanvasObject::GetBboxHeight ()
 get height of the boundingbox in world coordinates relative to its parents More...
 
a2dBoundingBoxa2dCanvasObject::GetBbox ()
 get boundingbox in world coordinates exclusive stroke width relative to its parent More...
 
virtual a2dBoundingBox a2dCanvasObject::GetUnTransformedBbox (a2dBboxFlags flags=a2dCANOBJ_BBOX_CHILDREN) const
 Get boundingbox without the affine matrix transform included. More...
 
a2dBoundingBox a2dCanvasObject::GetCalculatedBoundingBox (int nChildLevels)
 Like GetBbox, but it always calculcates the bounding box from scratch. More...
 
a2dBoundingBox a2dCanvasObject::GetMappedBbox (a2dIterC &ic, bool withExtend=true)
 first translate boundingbox with cworld and recalculate at new position More...
 
a2dBoundingBox a2dCanvasObject::GetMappedBbox (const a2dAffineMatrix &cworld)
 first translate boundingbox with cworld and recalculate at new position More...
 
wxRect a2dCanvasObject::GetAbsoluteArea (a2dIterC &ic, int inflate=2)
 Get absolute occupied area in the device coordinates. More...
 
float a2dCanvasObject::GetWorldExtend () const
 get world extend More...
 
int a2dCanvasObject::GetPixelExtend () const
 get pixel extend More...
 
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. More...
 
a2dBoundingBox a2dCanvasObject::GetClipBox (a2dIterC &ic)
 returns boundingbox clipping object if clipping property is set More...
 

Detailed Description

Enumeration Type Documentation

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 663 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 158 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 
)

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
iciterative context to get matrix which is applied first to get to absolute position
inflateextra pxiels added on each size, to get rid of double to int rounding problems.

Definition at line 3199 of file canobj.cpp.

a2dBoundingBox & a2dCanvasObject::GetBbox ( )

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 3175 of file canobj.cpp.

double a2dCanvasObject::GetBboxHeight ( )
inline

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

Remarks
stroke width is not included.

Definition at line 706 of file canobj.h.

double a2dCanvasObject::GetBboxMaxX ( )
inline

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

Remarks
stroke width is not included.

Definition at line 688 of file canobj.h.

double a2dCanvasObject::GetBboxMaxY ( )
inline

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

Remarks
stroke width is not included.

Definition at line 694 of file canobj.h.

double a2dCanvasObject::GetBboxMinX ( )
inline

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

Remarks
stroke width is not included.

Definition at line 676 of file canobj.h.

double a2dCanvasObject::GetBboxMinY ( )
inline

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

Remarks
stroke width is not included.

Definition at line 682 of file canobj.h.

double a2dCanvasObject::GetBboxWidth ( )
inline

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

Remarks
stroke width is not included.

Definition at line 700 of file canobj.h.

a2dBoundingBox a2dCanvasObject::GetCalculatedBoundingBox ( int  nChildLevels)

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
nChildLevelsnumber of child levels to include (0=no childs, 1=direct childs, ...)

Definition at line 5072 of file canobj.cpp.

a2dBoundingBox a2dCanvasObject::GetClipBox ( a2dIterC ic)

returns boundingbox clipping object if clipping property is set

See Also
a2dClipPathProperty
Parameters
iciterative context contains matrix which is applied first to get to absolute position

Definition at line 5899 of file canobj.cpp.

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.

Parameters
iciterative context contains matrix which is applied first to get to absolute position
clipparentclipping status of parent object ( to optimize )

Definition at line 3273 of file canobj.cpp.

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

first translate boundingbox with cworld and recalculate at new position

Remarks
a2dDrawingPart for the a2dCanvasDocument must be set.
Parameters
iciterative context contains matrix which is applied first to get to absolute position
withExtendif true boundingbox includes extend in world and pixels ( a2dDrawingPart must be set for m_root )

Definition at line 3256 of file canobj.cpp.

a2dBoundingBox a2dCanvasObject::GetMappedBbox ( const a2dAffineMatrix cworld)

first translate boundingbox with cworld and recalculate at new position

Parameters
cworldmatrix applied first to get to absolute position

Definition at line 3246 of file canobj.cpp.

int a2dCanvasObject::GetPixelExtend ( ) const
inline

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 795 of file canobj.h.

a2dBoundingBox a2dCanvasObject::GetUnTransformedBbox ( a2dBboxFlags  flags = a2dCANOBJ_BBOX_CHILDREN) const
virtual

Get boundingbox without the affine matrix transform included.

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

Parameters
flagsdefault a2dCANOBJ_BBOX_CHILDREN to include child objects in the boundingbox

Definition at line 5036 of file canobj.cpp.

float a2dCanvasObject::GetWorldExtend ( ) const
inline

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 777 of file canobj.h.

Variable Documentation

const a2dCanvasObjectFlagsMask a2dCanvasOFlags::NON = 0x00000000
static

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
a2dCanvasObjectFlagsMaskNo flags

No flags

Definition at line 179 of file candefs.h.

a2dCanvasObject related objects -- Sun Oct 12 2014 17:04:27 -- Sun Oct 12 2014 -- 1.8.5 -- wxArt2D -- . -- Main Page Reference Documentation