Hide menu
Loading...
Searching...
No Matches
cadex.Projector_PolyProjector Class Reference

The poly projection tool. More...

Inherits global.SystemIDisposable.

Public Member Functions

 Projector_PolyProjector (global::System.IntPtr cPtr, bool cMemoryOwn)
 
void Dispose ()
 
cadex.Projector_PolyData Perform (cadex.ModelData.Part thePart, cadex.Geom.Direction theNormal)
 Runs projection process for thePart.
 
cadex.Projector_PolyData Perform (cadex.Collections.IndexedTriangleSetList theITSVec, cadex.Geom.Direction theNormal)
 Runs projection process for theITSVec.
 
void SetProgressStatus (cadex.ProgressStatus theStatus)
 

Protected Member Functions

virtual void Dispose (bool disposing)
 

Detailed Description

The poly projection tool.

The filter helps find outer bound of the projection.

The filter uses the same approach as for processing images. In our case "image" is a bitmap of hits and misses of checked point with projection.

The filter uses 3x3 matrix to define the next point, order of filling is shown below: 0 1 2 3 4 5 6 7

The filter moves in CCW direction. To make a right direction it uses the following logic: 1) check corner directions:

  • if set only one of 0, 2, 7, 5 - use it
  • if 2 or 3 use the most right moving in CW direction

To make a more compact code we use a mask, all combination of it provided below:

dir|Mask variations 0 0001 1001 1101 2 0010 0011 1011 7 0100 0110 0111 5 1000 1100 1110

2) check the next value moving in CW direction:

  • if it set - use it
  • if not -> use found corner direction

Project the given part onto a specified plane defined by the normal direction. The information about the resulting projected data is stored in Projector_PolyData.

Example of projection making could be found on the Projector Example page.

Examples
projector/poly_projector/Program.cs, and projector/poly_projector/main.cxx.