#include <curve.h>


Public Member Functions | |
| a2dVertexCurve (a2dVertexArray *points) | |
| a2dVertexCurve (const a2dVertexCurve &other, CloneOptions options) | |
| virtual a2dObject * | Clone (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 | |
| a2dVertexArray * | GetPoints () |
| return the array of points. | |
| int | GetNumberOfPoints () |
| return the number of point in the curve | |
| void | SetPosXYPoint (int index, double x, double y) |
| modify point at index to x,y | |
| void | GetPosXYPoint (int index, double &x, double &y) |
| get point x and y at index | |
| void | GetPosXYPointWorld (int index, double &x, double &y, bool transform) |
| get point x and y at index in world coordinates | |
| void | RemovePoint (double &x, double &y, int index=-1) |
| removes point at index | |
| void | RemovePointWorld (double &x, double &y, int index=-1, bool transformed=true) |
| removes point at index | |
| bool | EliminateMatrix () |
| reduce matrix to identity without replacing object | |
| void | SetSpline (bool on) |
| set to true, the polygon will be drawn as a spline | |
| bool | GetSpline () |
| Get the polygon spline setting. | |
| void | AddPoint (const a2dPoint2D &P, int index=-1) |
| Append a new point in curve coordinates. | |
| void | AddPoint (double x, double y, int index=-1) |
| Append a new point in curve coordinates. | |
| void | Alloc (size_t count) |
| Preallocates memory for a given number of array elements. | |
| void | Clear () |
| This function does the same as Empty() and additionally frees the memory allocated to the array. | |
| bool | IsEmpty () const |
| Returns true if the array is empty, false otherwise. | |
| a2dLineSegmentPtr | operator[] (size_t index) const |
| get i'th point | |
| a2dLineSegmentPtr | Item (size_t index) const |
| Returns the point pointer at the given position in the array. | |
| a2dLineSegmentPtr | Last () const |
| Returns the last element in the array. | |
| void | RemoveAt (size_t index) |
| Removes a point from the array by index. | |
| 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 |
| wxUint32 | m_rendermode |
| wxUint32 | m_editmode |
| a2dVertexArray * | m_points |
Definition at line 295 of file curve.h.
| void a2dVertexCurve::SetPosXYPoint | ( | int | index, | |
| double | x, | |||
| double | y | |||
| ) |
modify point at index to x,y
Set the coordinates of the point at index to x,y.
| index | the index of the point to change | |
| x | new x for the point in curve coordinates | |
| y | new y for the point in curve coordinates |
| void a2dVertexCurve::GetPosXYPoint | ( | int | index, | |
| double & | x, | |||
| double & | y | |||
| ) |
| void a2dVertexCurve::GetPosXYPointWorld | ( | int | index, | |
| double & | x, | |||
| double & | y, | |||
| bool | transform | |||
| ) |
| void a2dVertexCurve::RemovePoint | ( | double & | x, | |
| double & | y, | |||
| int | index = -1 | |||
| ) |
| void a2dVertexCurve::RemovePointWorld | ( | double & | x, | |
| double & | y, | |||
| int | index = -1, |
|||
| bool | transformed = true | |||
| ) |
| void a2dVertexCurve::Alloc | ( | size_t | count | ) | [inline] |
Preallocates memory for a given number of array elements.
It is worth calling when the number of items which are going to be added to the array is known in advance because it will save unneeded memory reallocation. If the array already has enough memory for the given number of items, nothing happens.
| a2dLineSegmentPtr a2dVertexCurve::Item | ( | size_t | index | ) | const [inline] |
| a2dLineSegmentPtr a2dVertexCurve::Last | ( | ) | const [inline] |
| void a2dVertexCurve::RemoveAt | ( | size_t | index | ) | [inline] |
| void a2dVertexCurve::SetRenderMode | ( | wxUint32 | rendermode | ) | [inline] |
| void a2dVertexCurve::SetEditMode | ( | wxUint32 | editmode | ) | [inline] |
| bool a2dVertexCurve::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.
Reimplemented from a2dCanvasObject.
| void a2dVertexCurve::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.
| void a2dVertexCurve::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.
Reimplemented in a2dBarCurve.
| bool a2dVertexCurve::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).
| mode | way to update the objects | |
| childbox | size of children boundingbox | |
| clipbox | clip to this | |
| propbox | size of properties boundingbox |
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.
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:
Reimplemented from a2dCanvasObject.
Reimplemented in a2dBarCurve.
| bool a2dVertexCurve::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.
| ic | iterative context ( e.g. current transform WITH the local transform applied ) | |
| hitEvent | stores hit information |
Reimplemented from a2dCanvasObject.