Online Documentation - Statistics - FAQ - Plugin Parts (All, Dependencies) - Class hierarchy
New in Version 22.2 22.3 22.4 22.5 23.0 23.1 23.2 23.3 23.4 23.5 24.0 24.1
The list of the topics, classes, interfaces, controls, modules, global methods by category, global methods by name, screenshots, licenses and examples.
Platforms to show: All Mac Windows Linux Cross-Platform
Back to ClipperEngineMBS class.
ClipperEngineMBS.AddPath(path as ClipperPathMBS, PolyType as ClipperMBS.PolyType, Closed as Boolean) as Boolean
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
method | Clipper | MBS Tools Plugin | 18.0 | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | All |
'Subject' paths may be either open (lines) or closed (polygons) or even a mixture of both, but 'clipping' paths must always be closed. Clipper allows polygons to clip both lines and other polygons, but doesn't allow lines to clip either lines or polygons.
With closed paths, orientation should conform with the filling rule that will be passed via Clippper's Execute method.
Path Coordinate range:
Path coordinates must be between ± &h3FFFFFFFFFFFFFFF (± 4.6e+18), otherwise a range error will be thrown when attempting to add the path to the Clipper object. If coordinates can be kept between ± 0x3FFFFFFF (± 1.0e+9), a modest increase in performance (approx. 15-20%) over the larger range can be achieved by avoiding large integer math.
Return Value:
The function will return false if the path is invalid for clipping. A path is invalid for clipping when:
See also:
ClipperEngineMBS.AddPath(path as ClipperPathMBS, PolyType as Integer, Closed as Boolean) as Boolean
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
method | Clipper | MBS Tools Plugin | 18.1 | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | All |
See also:
ClipperEngineMBS.AddPaths(paths as ClipperPathsMBS, PolyType as ClipperMBS.PolyType, Closed as Boolean) as Boolean
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
method | Clipper | MBS Tools Plugin | 18.0 | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | All |
'Subject' paths may be either open (lines) or closed (polygons) or even a mixture of both, but 'clipping' paths must always be closed. Clipper allows polygons to clip both lines and other polygons, but doesn't allow lines to clip either lines or polygons.
With closed paths, orientation should conform with the filling rule that will be passed via Clippper's Execute method.
Path Coordinate range:
Path coordinates must be between ± &h3FFFFFFFFFFFFFFF (± 4.6e+18), otherwise a range error will be thrown when attempting to add the path to the Clipper object. If coordinates can be kept between ± 0x3FFFFFFF (± 1.0e+9), a modest increase in performance (approx. 15-20%) over the larger range can be achieved by avoiding large integer math.
Return Value:
The function will return false if the path is invalid for clipping. A path is invalid for clipping when:
See also:
ClipperEngineMBS.AddPaths(paths as ClipperPathsMBS, PolyType as Integer, Closed as Boolean) as Boolean
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
method | Clipper | MBS Tools Plugin | 18.1 | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | All |
See also:
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
method | Clipper | MBS Tools Plugin | 18.0 | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | All |
ClipperEngineMBS.Constructor(initOptions as integer = 0)
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
method | Clipper | MBS Tools Plugin | 18.0 | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | All |
One or more InitOptions may be passed as a parameter to set the corresponding properties. (These properties can still be set or reset after construction.)
Options:
ReverseSolution | 1 |
StrictlySimple | 2 |
PreserveCollinear | 4 |
ClipperEngineMBS.Execute(clipType as ClipperMBS.ClipType, byref solution as ClipperPathsMBS, fillType as ClipperMBS.PolyFillType) as Boolean
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
method | Clipper | MBS Tools Plugin | 18.0 | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | All |
See also:
ClipperEngineMBS.Execute(clipType as ClipperMBS.ClipType, byref solution as ClipperPathsMBS, subjFillType as ClipperMBS.PolyFillType, clipFillType as ClipperMBS.PolyFillType) as Boolean
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
method | Clipper | MBS Tools Plugin | 18.0 | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | All |
See also:
ClipperEngineMBS.Execute(clipType as ClipperMBS.ClipType, byref solution as ClipperPolyTreeMBS, fillType as ClipperMBS.PolyFillType) as Boolean
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
method | Clipper | MBS Tools Plugin | 18.0 | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | All |
See also:
ClipperEngineMBS.Execute(clipType as ClipperMBS.ClipType, byref solution as ClipperPolyTreeMBS, subjFillType as ClipperMBS.PolyFillType, clipFillType as ClipperMBS.PolyFillType) as Boolean
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
method | Clipper | MBS Tools Plugin | 18.0 | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | All |
See also:
ClipperEngineMBS.Execute(clipType as Integer, byref solution as ClipperPathsMBS, fillType as Integer) as Boolean
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
method | Clipper | MBS Tools Plugin | 18.0 | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | All |
Once subject and clip paths have been assigned (via AddPath and/or AddPaths), Execute can then perform the clipping operation (intersection, union, difference or XOR) specified by the clipType parameter.
The solution parameter can be either a Paths or PolyTree. The Paths is simpler than the PolyTree. Because of this it is quicker to populate and hence clipping performance is a little better (it's roughly 10% faster). However, the PolyTree class provides more information about the returned paths which may be important to users. Firstly, the PolyTree class preserves nested parent-child polygon relationships (ie outer polygons owning/containing holes and holes owning/containing other outer polygons etc). Also, only the PolyTree class can differentiate between open and closed paths since each PolyNode has an IsOpen property. (The Path structure has no member indicating whether it's open or closed.) For this reason, when open paths are passed to a Clipper object, the user must use a PolyTree object as the solution parameter, otherwise an exception will be raised.
When a PolyTree object is used in a clipping operation on open paths, two ancilliary functions have been provided to quickly separate out open and closed paths from the solution - ClipperMBS.OpenPathsFromPolyTree and ClipperMBS.ClosedPathsFromPolyTree. PolyTreeToPaths is also available to convert path data to a Paths structure (irrespective of whether they're open or closed).
There are several things to note about the solution paths returned:
See also:
ClipperEngineMBS.Execute(clipType as Integer, byref solution as ClipperPathsMBS, subjFillType as Integer, clipFillType as Integer) as Boolean
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
method | Clipper | MBS Tools Plugin | 18.0 | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | All |
See also:
ClipperEngineMBS.Execute(clipType as Integer, byref solution as ClipperPolyTreeMBS, fillType as Integer) as Boolean
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
method | Clipper | MBS Tools Plugin | 18.0 | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | All |
See also:
ClipperEngineMBS.Execute(clipType as Integer, byref solution as ClipperPolyTreeMBS, subjFillType as Integer, clipFillType as Integer) as Boolean
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
method | Clipper | MBS Tools Plugin | 18.0 | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | All |
See also:
ClipperEngineMBS.GetBounds(byref left as integer, byref top as integer, byref right as integer, byref bottom as integer)
Type | Topic | Plugin | Version | macOS | Windows | Linux | iOS | Targets |
method | Clipper | MBS Tools Plugin | 18.0 | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | All |
This call is more efficient than querying all bounds properties.
The items on this page are in the following plugins: MBS Tools Plugin.