a2dVertexListCurve Class Reference
[a2dCanvasObject related objectscomplex canvasobject'scomplex canvasobject's for drawing sets of curves]

Curve represented by a number of vertexes in a List. More...

#include <curve.h>

Inheritance diagram for a2dVertexListCurve:

Inheritance graph
[legend]
Collaboration diagram for a2dVertexListCurve:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 a2dVertexListCurve (a2dVertexList *points)
 a2dVertexListCurve (const a2dVertexListCurve &other, CloneOptions options)
virtual a2dObjectClone (CloneOptions options) const
 This is here so that this class cannot be used directly.
virtual bool GetXyAtSweep (double sweepValue, a2dPoint2D &point) const
 calculate Y at X
a2dVertexListGetPoints ()
 return the array of points.
int GetNumberOfPoints ()
 return the number of point in the curve
void AddPoint (const a2dPoint2D &P, int index=-1, bool afterinversion=true)
 Append a new point.
void AddPoint (double x, double y, int index=-1, bool afterinversion=true)
 Append a new point, which is owned by this class now.
void RemovePoint (double &x, double &y, int index=-1, bool transformed=true)
 removes point at index
bool EliminateMatrix ()
 reduce matrix to identity without replacing object
void SetPosXYPoint (int index, double x, double y, bool afterinversion=true)
 modify point at index to x,y
void GetPosXYPoint (int index, double &x, double &y, bool transform=true)
 get point x and y at index
void SetSpline (bool on)
 set to true, the polygon will be drawn as a spline
bool GetSpline ()
 Get the polygon spline setting.
bool PointOnCurve (const a2dPoint2D &P, double marge)
 test if a point is on the curve.
void SetRenderMode (wxUint32 rendermode)
 sets which parts or how the curve is rendered
int GetRenderMode ()
 get which parts or how the curve is rendered
void SetEditMode (wxUint32 editmode)
 sets how the curve is edited
int GetEditMode ()
 get how the curve is edited

Protected Member Functions

bool DoStartEdit (wxUint16 editmode, wxEditStyle editstyle)
 only used for editable objects and under control of a editing tool.
void OnHandleEvent (a2dHandleMouseEvent &event)
 called if a mouse event occured on a child object, that is a handle
void OnEnterObject (a2dCanvasObjectMouseEvent &event)
 called when the mouse enters the object
void OnLeaveObject (a2dCanvasObjectMouseEvent &event)
 called when the mouse leaves the object
void OnCanvasObjectMouseEvent (a2dCanvasObjectMouseEvent &event)
 default handler for mouse events, sent to the object from the a2dCanvasView.
virtual void DoSave (wxObject *parent, a2dIOHandlerXmlSerOut &out, a2dXmlSer_flag xmlparts, a2dObjectList *towrite)
 write object specific CVGL data
void DoLoad (wxObject *parent, a2dIOHandlerXmlSerIn &parser, a2dXmlSer_flag xmlparts)
 load object specific CVG data
a2dBoundingBox DoGetUnTransformedBbox (a2dBboxFlags flags=a2dCANOBJ_BBOX_NON) const
bool DoUpdate (UpdateMode mode, const a2dBoundingBox &childbox, const a2dBoundingBox &clipbox, const a2dBoundingBox &propbox)
 Update derived Object specific things ( mainly boundingbox).
void DoRender (a2dIterC &ic, OVERLAP clipparent)
 render derived object
bool DoIsHitWorld (a2dIterC &ic, a2dHitEvent &hitEvent)
 Does hit test on the object (exclusif child objects).

Protected Attributes

bool m_spline
int m_rendermode
int m_editmode
a2dVertexListm_lpoints


Detailed Description

Curve represented by a number of vertexes in a List.

Use this for time running curves, since vertexes can be added and removed at both sides quickly.

Definition at line 1037 of file curve.h.


Member Function Documentation

void a2dVertexListCurve::RemovePoint ( double &  x,
double &  y,
int  index = -1,
bool  transformed = true 
)

removes point at index

Parameters:
x x value of removed point
y y value of removed point
index index of point to remove (-1 means last point)
transformed if true returned values x,y are transformed with local matrix

Definition at line 3244 of file curve.cpp.

void a2dVertexListCurve::SetPosXYPoint ( int  index,
double  x,
double  y,
bool  afterinversion = true 
)

modify point at index to x,y

Set the coordinates of the point at index to x,y.

Parameters:
index the index of the point to change
x new x for the point
y new y for the point
afterinversion if true the input x,y or first inverted with the local matrix of the object. The inverted values are used to set the point.
Remarks:
afterinversion = true should be used if you have x,y relative to the polygon object, while afterinversion = false should be used when x,y are relative to the point in the polygon.

Definition at line 3192 of file curve.cpp.

void a2dVertexListCurve::GetPosXYPoint ( int  index,
double &  x,
double &  y,
bool  transform = true 
)

get point x and y at index

Parameters:
index the index of the point to change
x new x for the point
y new y for the point
transform if true return x y transformed with local matrix

Definition at line 3282 of file curve.cpp.

void a2dVertexListCurve::SetRenderMode ( wxUint32  rendermode  )  [inline]

sets which parts or how the curve is rendered

See wxCurveRenderFlags for flags in the mask.

Definition at line 1116 of file curve.h.

void a2dVertexListCurve::SetEditMode ( wxUint32  editmode  )  [inline]

sets how the curve is edited

See wxCurveEditFlags for flags in the mask.

Definition at line 1125 of file curve.h.

bool a2dVertexListCurve::DoStartEdit ( wxUint16  editmode,
wxEditStyle  editstyle 
) [protected, virtual]

only used for editable objects and under control of a editing tool.

If object is editable this function is used to initialize the object for editing. In general this means adding editing handles to the child list. In the event handling of the object those handles are hit and moved, the object itself is changed accordingly.

Returns:
true is this object can be edited and is initialized for that.

Todo:
edit of bbox ( children or not included )

Reimplemented from a2dCanvasObject.

Definition at line 3316 of file curve.cpp.

void a2dVertexListCurve::OnCanvasObjectMouseEvent ( a2dCanvasObjectMouseEvent event  )  [protected]

default handler for mouse events, sent to the object from the a2dCanvasView.

Mouse events are sent to the object when the mouse pointer is hiting the object. The default is used when the object is in edit mode. Else it will detect if the special object tip property named __OBJECTTIP__ is available, and switch it on or off when the mouse eneter or leaves the object.

&& m_flags.m_subEditAsChild )

Reimplemented from a2dCanvasObject.

Definition at line 3782 of file curve.cpp.

void a2dVertexListCurve::DoLoad ( wxObject *  parent,
a2dIOHandlerXmlSerIn parser,
a2dXmlSer_flag  xmlparts 
) [protected, virtual]

load object specific CVG data

todo ignore until this down here is fully converted.

Reimplemented from a2dCurve.

Definition at line 3615 of file curve.cpp.

bool a2dVertexListCurve::DoUpdate ( UpdateMode  mode,
const a2dBoundingBox childbox,
const a2dBoundingBox clipbox,
const a2dBoundingBox propbox 
) [protected, virtual]

Update derived Object specific things ( mainly boundingbox).

Calculates the boundingbox of the object (exclusif base class child objects but with other nested objects).

Parameters:
mode way to update the objects
childbox size of children boundingbox
clipbox clip to this
propbox size of properties boundingbox
Remarks:
in a derived class this function can also be used to update object specific cache data.

force may or may not have direct influence on the object itself, if this function is called directly for some reason (e.g from derived objects), you must invalidate the boudingbox yourself. GetDrawerBox()->SetValid( false );

Reimplemented from a2dCurveObject.

Definition at line 3432 of file curve.cpp.

void a2dVertexListCurve::DoRender ( a2dIterC ic,
OVERLAP  clipparent 
) [protected, virtual]

render derived object

if the object has sub objects (apart from the childobject which are handled here), those subobject most rendered by iterating on layer when needed/wanted, simular to child objects. We do not iterate here, since that is only needed if indeed there or subobjects. This will be know in a "wxDerivedCanvasObject DoRender".

SO parent objects that call this function, must:

  • 1- clip object against area to redraw.
  • 2- iterate on layers when needed.
A a2dCanvasObject is rendered as a + (plus sign) when there or no children.

Reimplemented from a2dCanvasObject.

Definition at line 3472 of file curve.cpp.

bool a2dVertexListCurve::DoIsHitWorld ( a2dIterC ic,
a2dHitEvent hitEvent 
) [protected, virtual]

Does hit test on the object (exclusif child objects).

DoIsHitWorld() should return the way the object is hit by filling a2dHitEvent::m_how with the correct info.

Parameters:
ic iterative context ( e.g. current transform WITH the local transform applied )
hitEvent stores hit information
Returns:
true if hit

Reimplemented from a2dCanvasObject.

Definition at line 3641 of file curve.cpp.


The documentation for this class was generated from the following files:
a2dVertexListCurve Class Reference -- Tue Aug 31 18:36:29 2010 -- 31 Aug 2010 -- 1.5.5 -- wxArt2D -- . -- Main Page Reference Documentation