32 const
a2dCommandId a2dFastSelect::COMID_PushTool_FastSelect( wxT( "PushTool_FastSelect" ) );
33 const
a2dCommandId a2dFastSelect2::COMID_PushTool_FastSelect2( wxT( "PushTool_FastDeSelect" ) );
34 const
a2dCommandId a2dFastDragMultiTool::COMID_PushTool_FastDragMulti( wxT( "PushTool_FastDragMulti" ) );
35 const
a2dCommandId a2dFastCopyMultiTool::COMID_PushTool_FastCopyMulti( wxT( "PushTool_FastCopyMulti" ) );
57 m_AllowModifyTemplate =
true;
126 if ( GetDrawingPart()->GetDrawer2D()->HasAlpha() || GetDrawingPart()->GetTrippleBuf() )
128 SetFill(
a2dFill( wxColour( 66, 159, 235, 50 ) ) );
174 wxCoord w, h, descent, external;
187 switch( event.GetKeyCode() )
207 void a2dZoomFast::OnMouseEvent( wxMouseEvent& event )
223 if ( event.LeftDClick() && !
GetBusy() )
227 else if ( event.LeftDown() && !
GetBusy() )
250 else if ( event.LeftUp() &&
GetBusy() )
260 if ( fabs( w ) < 3 && fabs( h ) < 3 )
296 else if ( ( event.Dragging() &&
GetBusy() ) )
320 m_shift_is_add =
false;
326 if ( GetDrawingPart()->GetDrawer2D()->HasAlpha() || GetDrawingPart()->GetTrippleBufHasAlpha() )
328 SetFill(
a2dFill( wxColour( 233, 15, 23, 20 ) ) );
338 a2dFastSelect::~a2dFastSelect()
346 void a2dFastSelect::DeselectAll()
361 wxCoord w, h, descent, external;
374 switch( event.GetKeyCode() )
394 void a2dFastSelect::OnMouseEvent( wxMouseEvent& event )
414 if ( event.Moving() )
418 double xWorld, yWorld;
430 if ( hitobject != oldhitobject )
438 oldhitobject = hitobject;
448 oldhitobject = hitobject;
451 else if ( oldhitobject )
474 if ( event.LeftDClick() && !
GetBusy() )
478 else if ( event.LeftDown() && !
GetBusy() )
500 else if ( event.LeftUp() &&
GetBusy() )
513 if ( fabs( w ) < 3 && fabs( h ) < 3 )
521 if ( !event.m_shiftDown )
562 if ( event.m_shiftDown || hitobject->
GetSelected() )
583 if ( !event.m_shiftDown )
611 if ( event.m_shiftDown )
644 else if ( ( event.Dragging() &&
GetBusy() ) )
651 int x, y, width, height;
657 width = absarea.GetWidth();
658 height = absarea.GetHeight();
666 absarea2.Union( absarea );
669 width = absarea2.GetWidth();
670 height = absarea2.GetHeight();
711 a2dFastSelect2::~a2dFastSelect2()
715 void a2dFastSelect2::SelectAll(
bool select )
735 wxCoord w, h, descent, external;
748 switch( event.GetKeyCode() )
768 void a2dFastSelect2::OnMouseEvent( wxMouseEvent& event )
793 if ( event.Moving() )
797 double xWorld, yWorld;
809 if ( event.LeftDClick() && !
GetBusy() )
813 else if ( event.LeftDown() && !
GetBusy() )
831 else if ( event.LeftUp() &&
GetBusy() )
842 if ( fabs( w ) < 3 && fabs( h ) < 3 )
848 if ( event.m_shiftDown && event.m_controlDown )
859 SelectAll( m_selectMode );
869 collector.SetRecursionDepth( 2 );
872 collector.SetBoundingBox( rec->
GetBbox() );
873 collector.SetSkipNotRenderedInDrawing(
true );
876 if ( event.m_shiftDown && event.m_controlDown )
896 else if ( ( event.Dragging() &&
GetBusy() ) )
942 a2dFastDragMultiTool::~a2dFastDragMultiTool()
946 void a2dFastDragMultiTool::OnChar( wxKeyEvent& event )
948 switch( event.GetKeyCode() )
968 bool a2dFastDragMultiTool::StartDragging(
int x,
int y,
a2dCanvasObject* original )
995 m_prevxanotation =
m_x;
996 m_prevyanotation =
m_y;
1008 void a2dFastDragMultiTool::OnMouseEvent( wxMouseEvent& event )
1027 if ( event.LeftDown() )
1030 if ( !StartDragging(
m_x,
m_y, original ) )
1033 else if ( event.LeftUp() &&
GetBusy() )
1045 double dxm =
m_xwprev - m_startMousexw;
1046 double dym =
m_ywprev - m_startMouseyw;
1072 void a2dFastDragMultiTool::FinishBusyMode()
1129 a2dCanvasObjectList::iterator iter;
1130 for( iter = m_copies.begin(); iter != m_copies.end(); ++iter )
1136 copy->
Render( ic, clipparent );
1143 for( iter = m_copies.begin(); iter != m_copies.end(); ++iter )
1149 for( iter = m_copies.begin(); iter != m_copies.end(); ++iter )
1155 copy->
Render( ic, clipparent );
1192 view->SetEvtHandlerEnabled(
false );
1207 for( a2dCanvasObjectList::iterator iter = m_copies.begin(); iter != m_copies.end(); ++iter )
1213 copy->
Render( ic, clipparent );
1238 a2dCanvasObjectList::iterator iter;
1245 copy->SetAlgoSkip(
true );
1249 m_copies.push_back( copy );
1269 void a2dFastDragMultiTool::OnIdle( wxIdleEvent& event )
1285 wxCoord w, h, descent, external;
1317 m_mindist = GetDrawer2D()->DeviceToWorldXRel( 5 );
1320 void a2dFastCopyMultiTool::OnChar( wxKeyEvent& event )
1324 switch( event.GetKeyCode() )
1339 bool a2dFastCopyMultiTool::StartDragging(
int x,
int y,
a2dCanvasObject* original )
1365 bool originalfound =
false;
1366 a2dCanvasObjectList::iterator iter;
1381 originalfound =
true;
1385 wxASSERT( originalfound );
1389 ( *iter )->SetSelected(
true );
1413 double dxm =
m_xwprev - m_startMousexw;
1414 double dym =
m_ywprev - m_startMouseyw;
1429 void a2dFastCopyMultiTool::OnMouseEvent( wxMouseEvent& event )
1448 if ( event.LeftDown() )
1451 if ( !StartDragging(
m_x,
m_y, original ) )
1454 else if ( event.LeftUp() &&
GetBusy() )
1470 if( ( *dx ) * ( *dx ) + ( *dy ) * ( *dy ) < m_mindist )
1472 if( ( *dx ) == 0 && ( *dy ) == 0 )
1474 ( *dx ) = m_mindist * 1.0;
1475 ( *dy ) = m_mindist * 0.5;
1479 double fac = m_mindist / sqrt( ( *dx ) * ( *dx ) + ( *dy ) * ( *dy ) );
1486 void a2dFastCopyMultiTool::FinishBusyMode()
1494 a2dCanvasObjectList::iterator iter;
1514 EVT_MOUSE_EVENTS( a2dDrawRectangleToolFast::OnMouseEvent )
1527 a2dDrawRectangleToolFast::~a2dDrawRectangleToolFast()
1531 void a2dDrawRectangleToolFast::OnComEvent(
a2dComEvent& event )
1547 mouse_worldx *= scaleToMeters / multi;
1548 mouse_worldy *= scaleToMeters / multi;
1552 str.Printf( _T(
"x=%6.3f, y=%6.3f, width=%6.3f, height=%6.3f" ),
1553 mouse_worldx, mouse_worldy,
1555 str = str + _T(
" " ) + unitmeasure + _T(
" :" ) + GetClassInfo()->GetClassName();
1562 void a2dDrawRectangleToolFast::OnMouseEvent( wxMouseEvent& event )
1587 if ( event.LeftDown() && !
GetBusy() )
1591 else if ( event.LeftDown() &&
GetBusy() )
1597 else if ( ( event.Dragging() &&
GetBusy() ) || ( event.Moving() &&
GetBusy() ) )
1635 EVT_CHAR( a2dDrawCircleToolFast::OnChar )
1636 EVT_MOUSE_EVENTS( a2dDrawCircleToolFast::OnMouseEvent )
1661 mouse_worldx *= scaleToMeters / multi;
1662 mouse_worldy *= scaleToMeters / multi;
1666 str.Printf( _T(
"x=%6.3f, y=%6.3f, radius=%6.3f" ), mouse_worldx, mouse_worldy, cir->
GetRadius() );
1667 str = str + _T(
" " ) + unitmeasure + _T(
" :" ) + GetClassInfo()->GetClassName();
1675 void a2dDrawCircleToolFast::OnChar( wxKeyEvent& event )
1679 switch( event.GetKeyCode() )
1714 dx = (
m_xwprev - m_start_x ) / 2 ;
1715 m_radius = fabs( dx );
1723 dy = (
m_ywprev - m_start_y ) / 2 ;
1724 m_radius = fabs( dy );
1730 cir->
SetPosXY( m_start_x + dx , m_start_y + dy );
1731 cirorg->SetPosXY( m_start_x + dx , m_start_y + dy );
1736 cir->
SetPosXY( m_start_x, m_start_y );
1737 cirorg->SetPosXY( m_start_x, m_start_y );
1744 cirorg->SetPosXY( (
m_xwprev + m_start_x ) / 2, (
m_ywprev + m_start_y ) / 2 );
1745 m_radius = sqrt( pow(
m_xwprev - m_start_x, 2 ) + pow(
m_ywprev - m_start_y, 2 ) ) / 2;
1753 cirorg->SetRadius( m_radius );
1757 void a2dDrawCircleToolFast::OnMouseEvent( wxMouseEvent& event )
1782 if ( event.LeftDown() && !
GetBusy() )
1791 else if ( event.LeftDown() &&
GetBusy() )
1797 else if ( ( event.Dragging() &&
GetBusy() ) || ( event.Moving() &&
GetBusy() ) )
1822 EVT_IDLE( a2dDrawPolygonLToolFast::OnIdle )
1823 EVT_CHAR( a2dDrawPolygonLToolFast::OnChar )
1824 EVT_MOUSE_EVENTS( a2dDrawPolygonLToolFast::OnMouseEvent )
1825 EVT_UNDO( a2dDrawPolygonLToolFast::OnUndoEvent )
1826 EVT_REDO( a2dDrawPolygonLToolFast::OnRedoEvent )
1832 m_points->push_front( point );
1834 m_points->push_back( point );
1850 if ( templateObject )
1854 a2dDrawPolygonLToolFast::~a2dDrawPolygonLToolFast()
1863 void a2dDrawPolygonLToolFast::OnIdle( wxIdleEvent& event )
1939 OnUndoEvent( event );
1953 void a2dDrawPolygonLToolFast::OnChar( wxKeyEvent& event )
1961 switch( event.GetKeyCode() )
1996 if ( event.m_controlDown )
2019 void a2dDrawPolygonLToolFast::OnMouseEvent( wxMouseEvent& event )
2036 if ( event.LeftDown() && !
GetBusy() )
2086 else if ( event.LeftDown() &&
GetBusy() )
2095 if ( abs(
m_x - x ) >= 3 || abs(
m_y - y ) >= 3 )
2111 else if ( event.Moving() &&
GetBusy() )
2124 else if ( event.LeftDClick() &&
GetBusy() )
2145 EVT_MOUSE_EVENTS( a2dDrawPolylineLToolFast::OnMouseEvent )
2146 EVT_DO( a2dDrawPolylineLToolFast::OnDoEvent )
2150 a2dDrawPolygonLToolFast( controller, templateObject )
2156 m_pathtype = GetDrawing()->GetHabitat()->GetPathType();
2157 m_contourwidth = GetDrawing()->GetHabitat()->GetContourWidthInDataBaseUnits();
2160 a2dDrawPolylineLToolFast::~a2dDrawPolylineLToolFast()
2213 if ( event.GetId() == a2dHabitat::sig_SetContourWidth )
2222 if ( event.GetId() == a2dHabitat::sig_SetPathType )
2237 void a2dDrawPolylineLToolFast::OnMouseEvent( wxMouseEvent& event )
2255 if ( event.LeftDown() && !
GetBusy() )
2331 else if ( event.Moving() &&
GetBusy() )
Display Part of a a2dDrawing, in which a2dCanvasObjects are shown.
int WorldToDeviceXRel(double x) const
convert x relative from world to device coordinates
a2dCircle at x,y, and with radius
void Freeze()
prevent changing the a2dDrawingPart buffer and blitting it to the window
a2dPATH_END_TYPE
defines the way a polyline with a contour width is ended.
virtual void Render(a2dIterC &ic, OVERLAP clipparent)
Render this object to the active a2dDrawingPart.
void OnChar(wxKeyEvent &event)
character handling
Base class for all types of strokes, understood by a2dDrawer2D classes.
void SetRoot(a2dDrawing *root, bool recurse=true)
Sets this object to a a2dCanvasDocument.
a2dZoomFast(a2dStToolContr *controller)
constructor
void SetDrawStyle(a2dDrawStyle drawstyle)
set drawstyle to use for drawing,
int WorldToDeviceY(double y) const
convert y from world to device coordinates
const a2dStroke * a2dBLACK_STROKE
global a2dStroke stock object for BLACK stroking
virtual void DeviceDrawAnnotation(const wxString &text, wxCoord x, wxCoord y, const wxFont &font)
text drawn in device coordinates
const a2dAffineMatrix & GetTransformMatrix() const
get the matrix used to position the object
void SetEndScaleX(double xs)
scale begin and end object with this factor in X
if set, set in the clone the PROPID_Original property to the copied object
class to map references to objects stored in XML, in order to make the connection later on...
void SetRadius(double radius)
set radius
double GetRadius() const
return radius
void ResetStyle()
set a pre-defined style reseting cashed values.
polygon defined with list of points.
used to add points to polygon objects
static a2dPropertyIdVoidPtr * PROPID_ToolObject
set for objects that act as tool object, when a tool is in action.
void SetRenderDC(wxDC *dc)
set the DC that is used for rendering
virtual void SetContourWidth(double width)
set the Contour width of the shape
#define EVT_DO(func)
event sent from a2DocumentCommandProcessor when a command is initially done
double GetBboxMinY()
get minimum Y of the boundingbox in world coordinates relative to its parents
virtual bool Update(UpdateMode mode)
Update the state of the object according to its current position etc.
void SetSpline(bool on)
set to true, the polygon will be drawn as a spline
virtual void BeginDraw()
start to draw on this context (used to initialize a specific drawer)
void SetDrawerStroke(const a2dStroke &stroke)
Used to set the current stroke.
This class implements drawing functions for wxDC based drawing.
if set, clone childs, otherwise ref-copy them
a2dPATH_END_TYPE GetPathType()
get when m_contourwidth != 0 what is the end of the line looks like.
void Update(unsigned int how=(a2dCANVIEW_UPDATE_ALL|a2dCANVIEW_UPDATE_BLIT), wxObject *hintObject=NULL)
see OnUpdate
virtual void SetPending(bool pending)
set this object pending for update
#define EVT_REDO(func)
event sent from a2DocumentCommandProcessor when a command is redone
OVERLAP
Result of a a2dBoundingBox intersection or hittest.
void Render()
implement rendering
double GetWidth() const
return width
double GetBboxMinX()
get minimum X of the boundingbox in world coordinates relative to its parents
virtual void GenerateAnotation()
to display a string along with a tool drawing.
a2dCanvasObject is the base class for Canvas Objects.
a2dAffineMatrix a2dIDENTITY_MATRIX
global a2dAffineMatrix to set/pass the identity matrix.
for changing boolean values inside canvas objects
void SetWidth(double w)
set width of rectangle
a2dCanvasObjectList * GetChildObjectList()
get the list where the child objects are stored in.
vertex list of line and arc segments.
void SetObjectFilter(a2dCanvasObjectFilter *filter)
set object filter class.
virtual void BlitBuffer(int x, int y, int width, int height, int xbuf, int ybuf)
blit part of the drawing buffer to the canvas
bool GetSelected() const
is the object selected flag set
void SetSelected(bool selected)
Set the object selected flag if allowed.
bool GetSpline() const
certain drawing tools like polygon drawing use this setting
double GetBboxWidth()
get width of the boundingbox in world coordinates relative to its parents
void SetDrawerFill(const a2dFill &fill)
Used to set the current fill.
int WorldToDeviceYRel(double y) const
convert y relative from world to device coordinates
void SetHeight(double h)
set height of rectangle
virtual bool SubmitMultiple(a2dCommand *command, a2dCanvasObjectList *objects, bool storeIt=true)
submit a command template with multiple objects
Interactive (De)selection Selection of an Object(s).
void SetHasToolObjectsBelow(bool value)
selected object itself or one of its recursive children
collect a2dCanvasObject's in a hierarchy of a a2dCanvasDocument
void SetPathType(a2dPATH_END_TYPE pathtype)
Set when m_contourwidth != 0 what is the end of the line should be.
double GetMinX() const
get minimum X of the boundingbox
virtual void DrawRoundedRectangle(double x, double y, double width, double height, double radius, bool pixelsize=false)
Draw RoundedRectangle in world coordinates.
command on selected objects
void AddPendingUpdateArea(a2dCanvasObject *obj, wxUint8 id=0, bool refsalso=true)
add pending update for the area that is the boundingbox of the given object
void SetIgnorePendingObjects(bool onoff)
Switches ignorance of pending objects on and off.
virtual void ResetStyle()
set a pre-defined style reseting cashed values.
polyline defined with list of points.
void SetPropertyToObject(a2dObject *obj, const basetype &value, SetFlags setflags=set_none) const
Set the property in obj to value.
void AddOverlayObject(a2dCanvasObject *obj)
add to list of overlay objects (must be children of m_top)
double GetPosX() const
get x position from affine matrix
#define EVT_COM_EVENT(func)
static wxEvtHandler for communication event
a2dDrawer2D * GetDrawer2D() const
get current a2dDrawer2D
#define wxStaticCast(obj, className)
The wxWindows 2.4.2 wxStaticCast is buggy. It evaluates its argument twice.
a2dVertexListPtr GetSegments()
Get the list of points ( this is not a copy! )
Drawing context abstraction.
a2dCanvasObject * GetShowObject() const
return pointer of then currently shown object on the drawer.
void SetDisableDrawing(bool disableDrawing)
when set, all drawing functions return immediately.
Normal straight line segment in a2dVertexList and a2dVertexArray.
void SetDisableInvert(bool disableInvert)
when true, disable inversion of matrixes
void SetEndScaleY(double ys)
scale begin and end object with this factor in Y
A2DGENERALDLLEXP a2dSmrtPtr< a2dGeneralGlobal > a2dGeneralGlobals
a global pointer to get to global instance of important classes.
void Translate(double x, double y)
relative translate the object to position x,y in world coordinates
de-select objects in a rectangle area
Restriction engine for editing restrictions like snapping.
objects which fit the mask are copied to target and translated
int CollectObjects(a2dCanvasObjectList *total, const wxString &type=wxT(""), a2dCanvasObjectFlagsMask mask=a2dCanvasOFlags::ALL, const a2dPropertyId *id=NULL, const a2dBoundingBox &bbox=wxNonValidBbox)
Copy objects fitting the given filter to the total list.
static bool GetMultiplierFromString(const wxString &mul, double &multi)
calculate how to get to meters from a multiplier string e.g. um => 1e-6
int WorldToDeviceX(double x) const
convert x from world to device coordinates
if set, respect layer order, hit testing is done per layer from the top.
static const a2dCanvasObjectFlagsMask SELECTED
bool IsSelected() const
Is the object selected flag set.
void SetBegin(a2dCanvasObject *begin)
set object to draw as begin point
bool GetSpline()
Get the polygon spline setting.
Each a2dCommand is given a command id at construction.
used to add object to a a2dCanvasDocument in the current parent
void Thaw(bool update)
to release Freeze()
void SetVisible(bool visible)
set if this object will visible (be rendered or not)
void SetLastXyEntry(double x, double y)
set last mouse X position in world coordinates, as set by tools.
void SetSnapTo(bool snap)
Sets snap_to flag.
A 2x3 affine matrix class for 2D transformations.
double GetMaxX() const
get maximum X of the boundingbox
Interactive Selection of an Object.
if set, set in the clone the PROPID_editcopy property to the original object
double GetPosY() const
get y position from affine matrix
while iterating a a2dCanvasDocument, this holds the context.
virtual void GenerateAnotation()
to display a string along with a tool drawing.
double m_x
x endpoint of line
All updates of these modes force an update (e.g. update non-pending valid bounding boxes) ...
double m_y
y endpoint of line
virtual bool Submit(a2dCommand *command, bool storeIt=true)
void SetStroke(const wxColour &strokecolor, double width=0, a2dStrokeStyle style=a2dSTROKE_SOLID)
Set a stroke for the object which will be used instead of the layer stroke.
static const a2dCanvasObjectFlagsMask VISIBLE
a2dRestrictionEngine * GetRestrictionEngine()
Get restriction engine (grid snapping)
double GetUnitsScale()
this is the number that defines the physical dimension in meters / inch/ etc.
void Render()
implement rendering
virtual void BeginDraw()=0
start to draw on this context (used to initialize a specific drawer)
void SetShiftKeyDown(bool shiftDown)
some snapping may depend on shift key being down
double GetMaxY() const
get maximum Y of the boundingbox
An object of this class will update a a2dIterC with the required information.
a2dCanvasObject * SetShowObject(const wxString &name)
set object available in the a2dDrawing to be shown on the drawer
virtual void DeviceDrawAnnotation(const wxString &text, wxCoord x, wxCoord y, const wxFont &font)
text drawn in device coordinates
void BlitBuffer()
blit whole buffer to device
void OnChar(wxKeyEvent &event)
character handling
void SetLayer(wxUint16 layer)
set the layer that is to be rendered
select objects in a rectangle area
void SetPosXY(double x, double y, bool restrict=false)
set position to x,y
a2dCanvasObject * IsHitWorld(double x, double y, int layer=wxLAYER_ALL, a2dHitOption option=a2dCANOBJHITOPTION_NONE, bool filterSelectableLayers=false)
do a hittest on the view at coordinates x,y
wxString GetUnits()
this string defines the unit e.g. meters / inch/ etc.
double GetBboxHeight()
get height of the boundingbox in world coordinates relative to its parents
Event sent to a2dCommandProcessor.
virtual bool EliminateMatrix()
reduce matrix to identity
if set, clone members (e.g. line end styles), otherwise ref-copy them
void RemoveOverlayObject(a2dCanvasObject *obj)
remove from the list of overlay objects (must be children of m_top)
double GetContourWidthInDataBaseUnits() const
get the Contour width of shapes in the document its units
bool m_shift_is_add
false: shift key will unselect, true: shift will add to selection
static const wxEventType sm_showCursor
The a2dBoundingBox class stores one a2dBoundingBox of a a2dCanvasObject.
bool Invert(void)
Invert matrix.
void OnChar(wxKeyEvent &event)
character handling
void AssertUnique()
Check if all objects are only once in the list.
double GetMinY() const
get minimum Y of the boundingbox
virtual void EndDraw()=0
end drawing on this context (used to reset a specific drawer)
void SetCaptured(a2dCanvasObject *captured)
set the object that is captured for events in the a2dDrawing.
a2dCanvasGlobal * a2dCanvasGlobals
global a2dCanvasGlobal to have easy access to global settings
all headers of the canvas module
#define EVT_UNDO(func)
event sent from a2DocumentCommandProcessor when a command is undone
size_t GetNumberOfSegments()
get the number of points in the pointlist
void Reset()
Reset this object for beeing reused. It will keep the drawer but NULL object infos.
wxRect GetAbsoluteArea(a2dIterC &ic, int inflate=2)
Get absolute occupied area in the device coordinates.
objects which fit the mask are moved to target and translated
int CollectObjects(a2dCanvasObjectList *total, const wxString &classname=wxT(""), a2dCanvasObjectFlagsMask mask=a2dCanvasOFlags::ALL, const a2dPropertyId *id=0, const a2dBoundingBox &bbox=wxNonValidBbox) const
Copy objects with the right conditions to the total list.
double GetHeight() const
return height
virtual void SetLayer(wxUint16 layer)
set layer index where this object is drawn upon.
void SetEnd(a2dCanvasObject *end)
set object to draw as end point
virtual void EndDraw()
end drawing on this context (used to reset a specific drawer)
virtual bool LinkReferences(bool ignoreNonResolved=false)
link references to their destination
void SetRestrictPoint(double xSnap, double ySnap)
sets the point for snapping to
void MouseToToolWorld(int x, int y, double &xWorldLocal, double &yWorldLocal)
double DeviceToWorldXRel(double x) const
convert x relative from device to world coordinates
CloneOptions
options for cloning
virtual void SetMappingWidthHeight(double vx1, double vy1, double width, double height)
Give the virtual size to be displayed, the mapping matrix will be calculated.
bool GetDraggable() const
get if the object can be dragged
a2dBoundingBox & GetBbox()
get boundingbox in world coordinates exclusive stroke width relative to its parent ...
virtual bool RestrictPoint(double &x, double &y, wxUint32 sourceRequired=snapToAll, bool ignoreEngine=false)
Restrict a single point of a line or polyline.
void SetFill(const a2dFill &fill)
Set a fill for the object which will be used instead of the layer fill.
static void SetIgnoreAllSetpending(bool value=true)
set static IgnoreAllSetpending flag
bool EliminateMatrix()
reduce matrix to identity without replacing object
virtual void GenerateAnotation()
to display a string along with a tool drawing.
const a2dFill * a2dTRANSPARENT_FILL
global a2dFill stock object for TRANSPARENT filling
void OverRuleFixedStyle()
id style is FIXED, saves current style and sets style to a2dFILLED