a2dBooleanWalkerHandler Class Reference
[a2dCanvasObject related objects]

walk a document tree and perform boolean opration on primitives. More...

#include <booloper.h>

Inheritance diagram for a2dBooleanWalkerHandler:

Inheritance graph
[legend]
Collaboration diagram for a2dBooleanWalkerHandler:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 a2dBooleanWalkerHandler (a2dCanvasObjectFlagsMask mask=a2dCanvasOFlags::ALL)
Bool_Engine * GetBooleanEngine ()
void Initialize ()
 used from constructor
void SetClearTarget (bool clearTarget)
 clear the target layer before adding result.
void SetMarge (double marge)
void SetGrid (long grid)
void SetDGrid (double dgrid)
void SetCorrectionAber (double aber)
void SetCorrectionFactor (double aber)
void SetMaxlinemerge (double maxline)
void SetWindingRule (bool rule)
void SetRoundfactor (double roundfac)
void SetSmoothAber (double aber)
void SetLinkHoles (bool doLinkHoles)
void SetOrientationEntryMode (bool orientationEntryMode)
void SetReleaseOrignals (bool releaseOrignals)
 when an object takes part in operation, and this flag is true, the original is removed.
void SetResultOnSameLayer (bool resultOnSameLayer)
 if set, the result will be placed on same layer as the first object in the operation
void SetResultStroke (const a2dStroke &resultStroke)
 Set the Result stroke style.
void SetResultFill (const a2dFill &resultFill)
 Set the Result fill style.
void SetStyleOfFirstChild (bool useStyle)
 when set the style of the resulting polygons
virtual bool Start (a2dCanvasObject *object)
 called for boolean operation
bool WalkTask (wxObject *parent, wxObject *object, a2dWalkEvent event)
 called from within a2dCanvasDocument

Static Public Attributes

static const long Boolean_NON = wxGenNewId()
static const long Boolean_OR = wxGenNewId()
static const long Boolean_AND = wxGenNewId()
static const long Boolean_EXOR = wxGenNewId()
static const long Boolean_A_SUB_B = wxGenNewId()
static const long Boolean_B_SUB_A = wxGenNewId()
static const long Boolean_CORRECTION = wxGenNewId()
static const long Boolean_SMOOTHEN = wxGenNewId()
static const long Boolean_MAKERING = wxGenNewId()
static const long Boolean_Polygon2Surface = wxGenNewId()
static const long Boolean_Surface2Polygon = wxGenNewId()

Protected Member Functions

bool CallEngine (a2dCanvasObject *canobjToAddChildren)
bool GetObjectsForSurface (a2dCanvasObject *booleanobject, GroupType A_or_B)
 search objects that are convertable to Surface and add them to m_foundA
bool GetObjectsSurface (a2dCanvasObject *booleanobject, GroupType A_or_B)
 search objects that are Surface and add them to m_foundA
bool VectorPathPolygonsToEngine (a2dCanvasObjectList *vpath, GroupType A_or_B)
 vector path split ino polygons, and added to engine
bool ConvertToPolygons (a2dCanvasObject *booleanobject, GroupType A_or_B)
 convert obj to polygons and add to m_foundA and m_foundB

Protected Attributes

Bool_Engine * m_booleng
 the boolean engine
a2dStroke m_resultStroke
a2dFill m_resultFill
bool m_useFirstChildStyle
 use first child style or not.
bool m_clearTarget
 clear the target layer before adding result.
bool m_releaseOrignals
 when an object takes part in operation, and this flag is true, the original is removed.
a2dCanvasObjectList m_foundA
 objects found for groupA
a2dCanvasObjectList m_foundB
 objects found for groupB
wxUint16 m_lastdepth
 to keep track of levels to do boolean operations
a2dStroke m_useFirstChildStyleStroke
a2dFill m_useFirstChildStyleFill
wxUint16 m_useFirstChildLayer
bool m_firstLevelChild
bool m_resultOnSameLayer


Detailed Description

walk a document tree and perform boolean opration on primitives.

For each object fitting the group and mask, and is at the same child level, can be merged with other objects at that same level. Only if the object can be converted to polygons, this will be the case. For new polygons created this way, the BIN2 flags is set, so one is able to find them. The reuslting polygons are added to the target layer.

Definition at line 39 of file booloper.h.


Member Function Documentation

void a2dBooleanWalkerHandler::SetLinkHoles ( bool  doLinkHoles  )  [inline]

If set false a2dSurfaces will be produced, meaning holes stored seperately If true, the result will be a2dPolygonL objects, with holes linked in to outer contour. Only if operation is Boolean_Polygon2Surface, linked holes is ignored, and holes are not linked.

Definition at line 79 of file booloper.h.

void a2dBooleanWalkerHandler::SetResultStroke ( const a2dStroke resultStroke  )  [inline]

Set the Result stroke style.

When set ( non wxNullStroke ), the style will be used for polygons resulting from a boolean operation.

Definition at line 93 of file booloper.h.

void a2dBooleanWalkerHandler::SetResultFill ( const a2dFill resultFill  )  [inline]

Set the Result fill style.

When set ( non wxNullFill ), the style will be used for polygons resulting from a boolean operation.

Definition at line 100 of file booloper.h.

void a2dBooleanWalkerHandler::SetStyleOfFirstChild ( bool  useStyle  )  [inline]

when set the style of the resulting polygons

will be the same as the first child (being part of the operation) found in a parent object. Unless m_resultStroke or m_resultFill or set.

Definition at line 107 of file booloper.h.

bool a2dBooleanWalkerHandler::Start ( a2dCanvasObject object  )  [virtual]

called for boolean operation

All child objects of this parent and below, will be converted to polygons, and next a boolean operation will be applied.

Reimplemented from a2dWalker_LayerGroup.

Definition at line 117 of file booloper.cpp.


Member Data Documentation

const long a2dBooleanWalkerHandler::Boolean_NON = wxGenNewId() [static]

No operation

Definition at line 44 of file booloper.h.

const long a2dBooleanWalkerHandler::Boolean_OR = wxGenNewId() [static]

boolean OR operation

Definition at line 45 of file booloper.h.

const long a2dBooleanWalkerHandler::Boolean_AND = wxGenNewId() [static]

boolean AND operation

Definition at line 46 of file booloper.h.

const long a2dBooleanWalkerHandler::Boolean_EXOR = wxGenNewId() [static]

boolean EX_OR operation

Definition at line 47 of file booloper.h.

const long a2dBooleanWalkerHandler::Boolean_A_SUB_B = wxGenNewId() [static]

boolean Group A - Group B operation

Definition at line 48 of file booloper.h.

const long a2dBooleanWalkerHandler::Boolean_B_SUB_A = wxGenNewId() [static]

boolean Group B - Group A operation

Definition at line 49 of file booloper.h.

const long a2dBooleanWalkerHandler::Boolean_CORRECTION = wxGenNewId() [static]

polygon correction/offset operation

Definition at line 50 of file booloper.h.

const long a2dBooleanWalkerHandler::Boolean_SMOOTHEN = wxGenNewId() [static]

smooth operation

Definition at line 51 of file booloper.h.

const long a2dBooleanWalkerHandler::Boolean_MAKERING = wxGenNewId() [static]

create a ring on all polygons

Definition at line 52 of file booloper.h.

const long a2dBooleanWalkerHandler::Boolean_Polygon2Surface = wxGenNewId() [static]

convert selected polygon shapes to surfaces

Definition at line 53 of file booloper.h.

const long a2dBooleanWalkerHandler::Boolean_Surface2Polygon = wxGenNewId() [static]

convert selected surfaces shapes to polygons

Definition at line 54 of file booloper.h.

See also:
resultStroke

Definition at line 139 of file booloper.h.

See also:
resultFill

Definition at line 142 of file booloper.h.


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