JavaCAD
Classes | Public Member Functions | Static Public Member Functions | Static Public Attributes | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
eu.mihosoft.vrl.v3d.CSG Class Reference
Inheritance diagram for eu.mihosoft.vrl.v3d.CSG:
Inheritance graph
[legend]
Collaboration diagram for eu.mihosoft.vrl.v3d.CSG:
Collaboration graph
[legend]

Classes

enum  OptType
 

Public Member Functions

 CSG ()
 
CSG addDatumReference (Transform t)
 
CSG prepForManufacturing ()
 
Color getColor ()
 
CSG setColor (Color color)
 
CSG setTemporaryColor (Color color)
 
CSG setManipulator (Affine manipulator)
 
MeshView getMesh ()
 
MeshView newMesh ()
 
CSG toZMin (CSG target)
 
CSG toZMax (CSG target)
 
CSG toXMin (CSG target)
 
CSG toXMax (CSG target)
 
CSG toYMin (CSG target)
 
CSG toYMax (CSG target)
 
CSG toZMin ()
 
CSG toZMax ()
 
CSG toXMin ()
 
CSG toXMax ()
 
CSG toYMin ()
 
CSG toYMax ()
 
CSG move (Number x, Number y, Number z)
 
CSG move (Vertex v)
 
CSG move (Vector3d v)
 
CSG move (Number[] posVector)
 
CSG movey (Number howFarToMove)
 
CSG movez (Number howFarToMove)
 
CSG movex (Number howFarToMove)
 
CSG moveToCenterX ()
 
CSG moveToCenterY ()
 
CSG moveToCenterZ ()
 
CSG moveToCenter ()
 
ArrayList< CSGmove (ArrayList< Transform > p)
 
CSG mirrory ()
 
CSG mirrorz ()
 
CSG mirrorx ()
 
CSG rot (Number x, Number y, Number z)
 
CSG rot (Number[] posVector)
 
CSG rotz (Number degreesToRotate)
 
CSG roty (Number degreesToRotate)
 
CSG rotx (Number degreesToRotate)
 
CSG scalez (Number scaleValue)
 
CSG scaley (Number scaleValue)
 
CSG scalex (Number scaleValue)
 
CSG scale (Number scaleValue)
 
CSG clone ()
 
List< PolygongetPolygons ()
 
CSG optimization (OptType type)
 
CSG union (CSG csg)
 
CSG dumbUnion (CSG csg)
 
CSG union (List< CSG > csgs)
 
CSG union (CSG... csgs)
 
CSG hull ()
 
CSG hull (List< CSG > csgs)
 
CSG hull (CSG... csgs)
 
CSG difference (List< CSG > csgs)
 
CSG difference (CSG... csgs)
 
CSG difference (CSG csg)
 
CSG intersect (CSG csg)
 
CSG intersect (List< CSG > csgs)
 
CSG intersect (CSG... csgs)
 
String toStlString ()
 
StringBuilder toStlString (StringBuilder sb)
 
CSG triangulate ()
 
CSG triangulate (boolean fix)
 
CSG color (Color c)
 
StringBuilder toObjString (StringBuilder sb)
 
String toObjString ()
 
CSG weighted (WeightFunction f)
 
CSG transformed (Transform transform)
 
MeshContainer toJavaFXMesh (CadInteractionEvent interact)
 
MeshContainer toJavaFXMeshSimple (CadInteractionEvent interact)
 
Bounds getBounds ()
 
Vector3d getCenter ()
 
double getCenterX ()
 
double getCenterY ()
 
double getCenterZ ()
 
double getMaxX ()
 
double getMaxY ()
 
double getMaxZ ()
 
double getMinX ()
 
double getMinY ()
 
double getMinZ ()
 
double getTotalX ()
 
double getTotalY ()
 
double getTotalZ ()
 
void setOptType (OptType optType)
 
void setPolygons (List< Polygon > polygons)
 
ArrayList< CSGminovsky (CSG travelingShape)
 
ArrayList< CSGmink (CSG travelingShape)
 
ArrayList< CSGminkowskiHullShape (CSG travelingShape)
 
ArrayList< CSGminkowski (CSG travelingShape)
 
CSG minkowskiDifference (CSG itemToDifference, CSG minkowskiObject)
 
CSG minkowskiDifference (CSG itemToDifference, double tolerance)
 
CSG toolOffset (Number sn)
 
CSG makeKeepaway (Number sn)
 
Affine getManipulator ()
 
CSG addCreationEventStackTraceList (ArrayList< Exception > incoming)
 
CSG historySync (CSG dyingCSG)
 
CSG addCreationEventStringList (ArrayList< String > incoming)
 
CSG addCreationEventString (String thisline)
 
ArrayList< String > getCreationEventStackTraceList ()
 
CSG prepMfg ()
 
PrepForManufacturing getManufacturing ()
 
PrepForManufacturing getMfg ()
 
CSG setMfg (PrepForManufacturing manufactuing)
 
CSG setManufacturing (PrepForManufacturing manufactuing)
 
PrepForManufacturing getManufactuing ()
 
CSG setManufactuing (PrepForManufacturing manufactuing)
 
CSG setParameter (Parameter w, IParametric function)
 
CSG setParameter (Parameter w)
 
CSG setParameter (String key, double defaultValue, double upperBound, double lowerBound, IParametric function)
 
CSG setParameterIfNull (String key)
 
Set< String > getParameters ()
 
CSG setParameterNewValue (String key, double newValue)
 
CSG setRegenerate (IRegenerate function)
 
CSG regenerate ()
 
HashMap< String, IParametricgetMapOfparametrics ()
 
boolean isMarkedForRegeneration ()
 
void markForRegeneration ()
 
boolean touching (CSG incoming)
 
CSG getBoundingBox ()
 
String getName ()
 
CSG setName (String name)
 
String toString ()
 
ArrayList< TransformgetSlicePlanes ()
 
void addSlicePlane (Transform slicePlane)
 
ArrayList< String > getExportFormats ()
 
void clearExportFormats ()
 
void addExportFormat (String exportFormat)
 
ArrayList< TransformgetDatumReferences ()
 
PropertyStorage getStorage ()
 
void setStorage (PropertyStorage storage)
 
ArrayList< CSGaddTabs (Vector3d edgeDirection, CSG fastener) throws Exception
 
ArrayList< CSGaddTabs (Vector3d edgeDirection, LengthParameter fastenerHoleDiameter) throws Exception
 
PropertyStorage getAssemblyStorage ()
 
boolean isWireFrame ()
 
void setIsWireFrame (boolean b)
 
void setPrintBedNumber (int index)
 
int getPrintBedIndex ()
 

Static Public Member Functions

static ArrayList< CSGmove (ArrayList< CSG > slice, ArrayList< Transform > p)
 
static CSG fromPolygons (List< Polygon > polygons)
 
static CSG fromPolygons (Polygon... polygons)
 
static CSG fromPolygons (PropertyStorage storage, List< Polygon > polygons)
 
static CSG fromPolygons (PropertyStorage storage, Polygon... polygons)
 
static CSG unionAll (CSG... csgs)
 
static CSG unionAll (List< CSG > csgs)
 
static CSG hullAll (CSG... csgs)
 
static CSG hullAll (List< CSG > csgs)
 
static void setDefaultOptType (OptType optType)
 
static ICSGProgress getProgressMoniter ()
 
static void setProgressMoniter (ICSGProgress progressMoniter)
 
static Color getDefaultColor ()
 
static void setDefaultColor (Color defaultcolor)
 
static int getNumfacesinoffset ()
 
static int getNumFacesInOffset ()
 
static void setNumFacesInOffset (int numFacesInOffset)
 
static boolean isUseStackTraces ()
 
static void setUseStackTraces (boolean useStackTraces)
 
static CSG text (String text, double height, double fontSize)
 
static CSG text (String text, double height)
 
static CSG text (String text, double height, double fontSize, String fontType)
 
static CSG textToSize (String text, double x, double y, double z)
 

Static Public Attributes

static final int INDEX_OF_PARAMETRIC_DEFAULT = 0
 
static final int INDEX_OF_PARAMETRIC_LOWER = 1
 
static final int INDEX_OF_PARAMETRIC_UPPER = 2
 

Private Member Functions

CSG _unionCSGBoundsOpt (CSG csg)
 
CSG _unionPolygonBoundsOpt (CSG csg)
 
CSG _unionIntersectOpt (CSG csg)
 
CSG _unionNoOpt (CSG csg)
 
CSG _differenceCSGBoundsOpt (CSG csg)
 
CSG _differencePolygonBoundsOpt (CSG csg)
 
CSG _differenceNoOpt (CSG csg)
 
void fixDegenerates (ArrayList< Polygon > toAdd, Polygon p)
 
void updatePolygons (ArrayList< Polygon > toAdd, ArrayList< Polygon > degenerates, Polygon p)
 
OptType getOptType ()
 
int getNumFacesForOffsets ()
 
void addStackTrace (Exception creationEventStackTrace2)
 
void setDatumReferences (ArrayList< Transform > datumReferences)
 
Transform addTabsReorientation (Vector3d edgeDirection) throws Exception
 

Private Attributes

List< Polygonpolygons
 
OptType optType = null
 
PropertyStorage str
 
PropertyStorage assembly
 
MeshView current
 
Color color = getDefaultColor()
 
Affine manipulator
 
Bounds bounds
 
ArrayList< String > groovyFileLines = new ArrayList<>()
 
PrepForManufacturing manufactuing = null
 
HashMap< String, IParametricmapOfparametrics = null
 
IRegenerate regenerate = null
 
boolean markForRegeneration = false
 
String name = ""
 
ArrayList< TransformslicePlanes = null
 
ArrayList< String > exportFormats = null
 
ArrayList< TransformdatumReferences = null
 
boolean triangulated
 

Static Private Attributes

static IDebug3dProvider providerOf3d = null
 
static int numFacesInOffset = 15
 
static OptType defaultOptType = OptType.CSG_BOUND
 
static Color defaultcolor = Color.web("#007956")
 
static boolean needsDegeneratesPruned =false
 
static boolean useStackTraces = true
 
static ICSGProgress progressMoniter
 

Detailed Description

Constructive Solid Geometry (CSG).

This implementation is a Java port of

https://github.com/evanw/csg.js/ with some additional features like polygon extrude, transformations etc. Thanks to the author for creating the CSG.js library.

Implementation Details

All CSG operations are implemented in terms of two functions, Node#clipTo(eu.mihosoft.vrl.v3d.Node) and Node#invert(), which remove parts of a BSP tree inside another BSP tree and swap solid and empty space, respectively. To find the union of

a

and

b

, we want to remove everything in

a

inside

b

and everything in

b

inside

a

, then combine polygons from

a

and

b

into one solid:

    a.clipTo(b);
    b.clipTo(a);
    a.build(b.allPolygons());

The only tricky part is handling overlapping coplanar polygons in both trees. The code above keeps both copies, but we need to keep them in one tree and remove them in the other tree. To remove them from

b

we can clip the inverse of

b

against

a

. The code for union now looks like this:

    a.clipTo(b);
    b.clipTo(a);
    b.invert();
    b.clipTo(a);
    b.invert();
    a.build(b.allPolygons());

Subtraction and intersection naturally follow from set operations. If union is

A | B

, differenceion is

A - B = ~(~A | B)

and intersection is

A & B =
~(~A | ~B)

where

~

is the complement operator.

Definition at line 109 of file CSG.java.

Constructor & Destructor Documentation

◆ CSG()

eu.mihosoft.vrl.v3d.CSG.CSG ( )

Instantiates a new csg.

Definition at line 163 of file CSG.java.

Member Function Documentation

◆ _differenceCSGBoundsOpt()

CSG eu.mihosoft.vrl.v3d.CSG._differenceCSGBoundsOpt ( CSG  csg)
private

◆ _differenceNoOpt()

CSG eu.mihosoft.vrl.v3d.CSG._differenceNoOpt ( CSG  csg)
private

◆ _differencePolygonBoundsOpt()

CSG eu.mihosoft.vrl.v3d.CSG._differencePolygonBoundsOpt ( CSG  csg)
private

◆ _unionCSGBoundsOpt()

CSG eu.mihosoft.vrl.v3d.CSG._unionCSGBoundsOpt ( CSG  csg)
private

_union csg bounds opt.

Parameters
csgthe csg
Returns
the csg

Definition at line 937 of file CSG.java.

◆ _unionIntersectOpt()

CSG eu.mihosoft.vrl.v3d.CSG._unionIntersectOpt ( CSG  csg)
private

Optimizes for intersection. If csgs do not intersect create a new csg that consists of the polygon lists of this csg and the specified csg. In this case no further space partitioning is performed.

Parameters
csgcsg
Returns
the union of this csg and the specified csg

Definition at line 990 of file CSG.java.

References eu.mihosoft.vrl.v3d.CSG.fromPolygons(), eu.mihosoft.vrl.v3d.CSG.getBounds(), eu.mihosoft.vrl.v3d.CSG.getName(), eu.mihosoft.vrl.v3d.CSG.getPolygons(), eu.mihosoft.vrl.v3d.Bounds.intersects(), eu.mihosoft.vrl.v3d.CSG.optimization(), and eu.mihosoft.vrl.v3d.CSG.setName().

Referenced by eu.mihosoft.vrl.v3d.CSG._differenceCSGBoundsOpt().

Here is the call graph for this function:

◆ _unionNoOpt()

CSG eu.mihosoft.vrl.v3d.CSG._unionNoOpt ( CSG  csg)
private

◆ _unionPolygonBoundsOpt()

CSG eu.mihosoft.vrl.v3d.CSG._unionPolygonBoundsOpt ( CSG  csg)
private

◆ addCreationEventStackTraceList()

CSG eu.mihosoft.vrl.v3d.CSG.addCreationEventStackTraceList ( ArrayList< Exception >  incoming)

Definition at line 2120 of file CSG.java.

◆ addCreationEventString()

CSG eu.mihosoft.vrl.v3d.CSG.addCreationEventString ( String  thisline)

Definition at line 2188 of file CSG.java.

◆ addCreationEventStringList()

CSG eu.mihosoft.vrl.v3d.CSG.addCreationEventStringList ( ArrayList< String >  incoming)

Definition at line 2179 of file CSG.java.

◆ addDatumReference()

CSG eu.mihosoft.vrl.v3d.CSG.addDatumReference ( Transform  t)

Definition at line 172 of file CSG.java.

◆ addExportFormat()

void eu.mihosoft.vrl.v3d.CSG.addExportFormat ( String  exportFormat)
Parameters
exportFormatthe exportFormat to add

Definition at line 2420 of file CSG.java.

◆ addSlicePlane()

void eu.mihosoft.vrl.v3d.CSG.addSlicePlane ( Transform  slicePlane)

Definition at line 2398 of file CSG.java.

◆ addStackTrace()

void eu.mihosoft.vrl.v3d.CSG.addStackTrace ( Exception  creationEventStackTrace2)
private

Definition at line 2128 of file CSG.java.

◆ addTabs() [1/2]

ArrayList<CSG> eu.mihosoft.vrl.v3d.CSG.addTabs ( Vector3d  edgeDirection,
CSG  fastener 
) throws Exception

Adds construction tabs to a given CSG object in order to facilitate connection with other boards and returns the CSG with tabs added plus separate fastener objects interspersed between tabs. Assumes board thickness is the thinnest dimension. Assumes board thickness can be arbitrary but uniform height. Assumes the edge having tabs added extends fully between Min and Max in that dimension.

TODO: Find the polygon defined by the XY plane slice that is perhaps 0.5mm into the normalized +Y. Add tabs to THAT polygon's minX/maxX instead of part's global minX/maxX.

Example usage: // Create a temporary copy of the target object, without any tabs CSG boardTemp = board

// Instantiate a bucket to hold fastener CSG objects in ArrayList<CSG> fasteners = []

// Define the direction of the edge to be tabbed using a Vector3d object, in this case the edge facing in the negative Y direction Vector3d edgeDirection = new Vector3d(0, -1, 0);

// Define the diameter of the fastener holes to be added using a LengthParameter object LengthParameter screwDiameter = new LengthParameter("Screw Hole Diameter (mm)", 3, [0, 20])

// Add tabs to the temporary object using the edgeDirection and screwDiameter parameters ArrayList<CSG> returned = boardTemp.addTabs(edgeDirection, screwDiameter);

// Combine the modified temporary object with the original object, to add the new tabs board = boardTemp.union(returned.get(0));

// Add the separate fastener hole objects to the list fasteners = returned.subList(1, returned.size());

Parameters
edgeDirectiona Vector3d object representing the direction of the edge of the board to which tabs and fastener holes will be added
fastenera CSG object representing a template fastener to be added between the tabs
Returns
an ArrayList of CSG objects representing the original board with added tabs and separate fastener hole objects
Exceptions
Exceptionif the edgeDirection parameter is not a cartesian unit Vector3d object or uses an unimplemented orientation

Definition at line 2513 of file CSG.java.

References eu.mihosoft.vrl.v3d.CSG.getMaxX(), eu.mihosoft.vrl.v3d.CSG.getMaxY(), eu.mihosoft.vrl.v3d.CSG.getMaxZ(), eu.mihosoft.vrl.v3d.CSG.getMinY(), eu.mihosoft.vrl.v3d.CSG.getTotalX(), eu.mihosoft.vrl.v3d.Transform.inverse(), eu.mihosoft.vrl.v3d.CSG.movex(), eu.mihosoft.vrl.v3d.CSG.movey(), eu.mihosoft.vrl.v3d.CSG.movez(), eu.mihosoft.vrl.v3d.CSG.rotx(), eu.mihosoft.vrl.v3d.Primitive.toCSG(), eu.mihosoft.vrl.v3d.CSG.transformed(), and eu.mihosoft.vrl.v3d.CSG.union().

Here is the call graph for this function:

◆ addTabs() [2/2]

ArrayList<CSG> eu.mihosoft.vrl.v3d.CSG.addTabs ( Vector3d  edgeDirection,
LengthParameter  fastenerHoleDiameter 
) throws Exception

Definition at line 2625 of file CSG.java.

References eu.mihosoft.vrl.v3d.CSG.getMaxZ(), and eu.mihosoft.vrl.v3d.Primitive.toCSG().

Here is the call graph for this function:

◆ addTabsReorientation()

Transform eu.mihosoft.vrl.v3d.CSG.addTabsReorientation ( Vector3d  edgeDirection) throws Exception
private

◆ clearExportFormats()

void eu.mihosoft.vrl.v3d.CSG.clearExportFormats ( )

Definition at line 2412 of file CSG.java.

◆ clone()

CSG eu.mihosoft.vrl.v3d.CSG.clone ( )

◆ color()

CSG eu.mihosoft.vrl.v3d.CSG.color ( Color  c)

Color.

Parameters
cthe c
Returns
the csg

Definition at line 1555 of file CSG.java.

◆ difference() [1/3]

CSG eu.mihosoft.vrl.v3d.CSG.difference ( CSG  csg)

Return a new CSG solid representing the difference of this csg and the specified csg.

Note: Neither this csg nor the specified csg are weighted.

A.difference(B)

+-------+            +-------+
|       |            |       |
|   A   |            |       |
|    +--+----+   =   |    +--+
+----+--+    |       +----+
     |   B   |
     |       |
     +-------+
Parameters
csgother csg
Returns
difference of this csg and the specified csg

Definition at line 1129 of file CSG.java.

References eu.mihosoft.vrl.v3d.CSG.getPolygons(), eu.mihosoft.vrl.v3d.CSG.historySync(), and eu.mihosoft.vrl.v3d.CSG.intersect().

Here is the call graph for this function:

◆ difference() [2/3]

CSG eu.mihosoft.vrl.v3d.CSG.difference ( CSG...  csgs)

Return a new CSG solid representing the difference of this csg and the specified csgs.

Note: Neither this csg nor the specified csgs are weighted.

A.difference(B)

+-------+            +-------+
|       |            |       |
|   A   |            |       |
|    +--+----+   =   |    +--+
+----+--+    |       +----+
     |   B   |
     |       |
     +-------+
Parameters
csgsother csgs
Returns
difference of this csg and the specified csgs

Definition at line 1102 of file CSG.java.

◆ difference() [3/3]

CSG eu.mihosoft.vrl.v3d.CSG.difference ( List< CSG csgs)

Return a new CSG solid representing the difference of this csg and the specified csgs.

Note: Neither this csg nor the specified csgs are weighted.

A.difference(B)

+-------+            +-------+
|       |            |       |
|   A   |            |       |
|    +--+----+   =   |    +--+
+----+--+    |       +----+
     |   B   |
     |       |
     +-------+
Parameters
csgsother csgs
Returns
difference of this csg and the specified csgs

Definition at line 1061 of file CSG.java.

References eu.mihosoft.vrl.v3d.CSG.historySync(), eu.mihosoft.vrl.v3d.ICSGProgress.progressUpdate(), and eu.mihosoft.vrl.v3d.CSG.union().

Referenced by eu.mihosoft.vrl.v3d.Fillet.corner(), eu.mihosoft.vrl.v3d.CSG.minkowskiDifference(), eu.mihosoft.vrl.v3d.TextExtrude.TextExtrude(), and eu.mihosoft.vrl.v3d.Fillet.toPolygons().

Here is the call graph for this function:

◆ dumbUnion()

CSG eu.mihosoft.vrl.v3d.CSG.dumbUnion ( CSG  csg)

Returns a csg consisting of the polygons of this csg and the specified csg.

The purpose of this method is to allow fast union operations for objects that do not intersect.

WARNING: this method does not apply the csg algorithms. Therefore, please ensure that this csg and the specified csg do not intersect.

Parameters
csgcsg
Returns
a csg consisting of the polygons of this csg and the specified csg

Definition at line 763 of file CSG.java.

References eu.mihosoft.vrl.v3d.CSG.clone(), eu.mihosoft.vrl.v3d.CSG.getPolygons(), eu.mihosoft.vrl.v3d.CSG.historySync(), and eu.mihosoft.vrl.v3d.CSG.triangulated.

Referenced by eu.mihosoft.vrl.v3d.CSG.text().

Here is the call graph for this function:

◆ fixDegenerates()

void eu.mihosoft.vrl.v3d.CSG.fixDegenerates ( ArrayList< Polygon toAdd,
Polygon  p 
)
private

◆ fromPolygons() [1/4]

static CSG eu.mihosoft.vrl.v3d.CSG.fromPolygons ( List< Polygon polygons)
static

◆ fromPolygons() [2/4]

static CSG eu.mihosoft.vrl.v3d.CSG.fromPolygons ( Polygon...  polygons)
static

Constructs a CSG from the specified Polygon instances.

Parameters
polygonspolygons
Returns
a CSG instance

Definition at line 634 of file CSG.java.

◆ fromPolygons() [3/4]

static CSG eu.mihosoft.vrl.v3d.CSG.fromPolygons ( PropertyStorage  storage,
List< Polygon polygons 
)
static

Constructs a CSG from a list of Polygon instances.

Parameters
storageshared storage
polygonspolygons
Returns
a CSG instance

Definition at line 645 of file CSG.java.

References eu.mihosoft.vrl.v3d.CSG.setPolygons(), and eu.mihosoft.vrl.v3d.CSG.setStorage().

Here is the call graph for this function:

◆ fromPolygons() [4/4]

static CSG eu.mihosoft.vrl.v3d.CSG.fromPolygons ( PropertyStorage  storage,
Polygon...  polygons 
)
static

Constructs a CSG from the specified Polygon instances.

Parameters
storageshared storage
polygonspolygons
Returns
a CSG instance

Definition at line 665 of file CSG.java.

◆ getAssemblyStorage()

PropertyStorage eu.mihosoft.vrl.v3d.CSG.getAssemblyStorage ( )

Definition at line 2660 of file CSG.java.

◆ getBoundingBox()

CSG eu.mihosoft.vrl.v3d.CSG.getBoundingBox ( )

Get Bounding box

Returns
A CSG that completely encapsulates the base CSG, centered around it

Definition at line 2372 of file CSG.java.

References eu.mihosoft.vrl.v3d.CSG.movex(), eu.mihosoft.vrl.v3d.CSG.movey(), eu.mihosoft.vrl.v3d.CSG.movez(), eu.mihosoft.vrl.v3d.Primitive.toCSG(), eu.mihosoft.vrl.v3d.CSG.toXMax(), eu.mihosoft.vrl.v3d.CSG.toYMax(), and eu.mihosoft.vrl.v3d.CSG.toZMax().

Here is the call graph for this function:

◆ getBounds()

Bounds eu.mihosoft.vrl.v3d.CSG.getBounds ( )

◆ getCenter()

Vector3d eu.mihosoft.vrl.v3d.CSG.getCenter ( )

Definition at line 1788 of file CSG.java.

◆ getCenterX()

double eu.mihosoft.vrl.v3d.CSG.getCenterX ( )

Helper function wrapping bounding box values

Returns
CenterX

Definition at line 1797 of file CSG.java.

◆ getCenterY()

double eu.mihosoft.vrl.v3d.CSG.getCenterY ( )

Helper function wrapping bounding box values

Returns
CenterY

Definition at line 1806 of file CSG.java.

◆ getCenterZ()

double eu.mihosoft.vrl.v3d.CSG.getCenterZ ( )

Helper function wrapping bounding box values

Returns
CenterZ

Definition at line 1815 of file CSG.java.

◆ getColor()

Color eu.mihosoft.vrl.v3d.CSG.getColor ( )

Gets the color.

Returns
the color

Definition at line 198 of file CSG.java.

Referenced by eu.mihosoft.vrl.v3d.CSG.historySync().

◆ getCreationEventStackTraceList()

ArrayList<String> eu.mihosoft.vrl.v3d.CSG.getCreationEventStackTraceList ( )

Definition at line 2205 of file CSG.java.

Referenced by eu.mihosoft.vrl.v3d.CSG.historySync().

◆ getDatumReferences()

ArrayList<Transform> eu.mihosoft.vrl.v3d.CSG.getDatumReferences ( )

Definition at line 2451 of file CSG.java.

◆ getDefaultColor()

static Color eu.mihosoft.vrl.v3d.CSG.getDefaultColor ( )
static

Definition at line 2359 of file CSG.java.

◆ getExportFormats()

ArrayList<String> eu.mihosoft.vrl.v3d.CSG.getExportFormats ( )
Returns
the exportFormats

Definition at line 2408 of file CSG.java.

◆ getManipulator()

Affine eu.mihosoft.vrl.v3d.CSG.getManipulator ( )

Definition at line 2114 of file CSG.java.

◆ getManufactuing()

PrepForManufacturing eu.mihosoft.vrl.v3d.CSG.getManufactuing ( )

Definition at line 2231 of file CSG.java.

◆ getManufacturing()

PrepForManufacturing eu.mihosoft.vrl.v3d.CSG.getManufacturing ( )

Definition at line 2213 of file CSG.java.

◆ getMapOfparametrics()

HashMap<String, IParametric> eu.mihosoft.vrl.v3d.CSG.getMapOfparametrics ( )

Definition at line 2312 of file CSG.java.

Referenced by eu.mihosoft.vrl.v3d.CSG.historySync().

◆ getMaxX()

double eu.mihosoft.vrl.v3d.CSG.getMaxX ( )

Helper function wrapping bounding box values

Returns
MaxX

Definition at line 1824 of file CSG.java.

Referenced by eu.mihosoft.vrl.v3d.CSG.addTabs(), eu.mihosoft.vrl.v3d.CSG.addTabsReorientation(), and eu.mihosoft.vrl.v3d.CSG.touching().

◆ getMaxY()

double eu.mihosoft.vrl.v3d.CSG.getMaxY ( )

Helper function wrapping bounding box values

Returns
MaxY

Definition at line 1833 of file CSG.java.

Referenced by eu.mihosoft.vrl.v3d.CSG.addTabs(), and eu.mihosoft.vrl.v3d.CSG.touching().

◆ getMaxZ()

double eu.mihosoft.vrl.v3d.CSG.getMaxZ ( )

Helper function wrapping bounding box values

Returns
MaxZ

Definition at line 1842 of file CSG.java.

Referenced by eu.mihosoft.vrl.v3d.CSG.addTabs(), and eu.mihosoft.vrl.v3d.CSG.touching().

◆ getMesh()

MeshView eu.mihosoft.vrl.v3d.CSG.getMesh ( )

Gets the mesh.

Returns
the mesh

Definition at line 252 of file CSG.java.

◆ getMfg()

PrepForManufacturing eu.mihosoft.vrl.v3d.CSG.getMfg ( )

Definition at line 2217 of file CSG.java.

◆ getMinX()

double eu.mihosoft.vrl.v3d.CSG.getMinX ( )

Helper function wrapping bounding box values

Returns
MinX

Definition at line 1851 of file CSG.java.

Referenced by eu.mihosoft.vrl.v3d.CSG.addTabsReorientation(), and eu.mihosoft.vrl.v3d.CSG.touching().

◆ getMinY()

double eu.mihosoft.vrl.v3d.CSG.getMinY ( )

Helper function wrapping bounding box values

Returns
MinY

Definition at line 1860 of file CSG.java.

Referenced by eu.mihosoft.vrl.v3d.CSG.addTabs(), eu.mihosoft.vrl.v3d.CSG.addTabsReorientation(), and eu.mihosoft.vrl.v3d.CSG.touching().

◆ getMinZ()

double eu.mihosoft.vrl.v3d.CSG.getMinZ ( )

Helper function wrapping bounding box values

Returns
tMinZ

Definition at line 1869 of file CSG.java.

Referenced by eu.mihosoft.vrl.v3d.CSG.addTabsReorientation(), and eu.mihosoft.vrl.v3d.CSG.touching().

◆ getName()

String eu.mihosoft.vrl.v3d.CSG.getName ( )

◆ getNumFacesForOffsets()

int eu.mihosoft.vrl.v3d.CSG.getNumFacesForOffsets ( )
private

Definition at line 2086 of file CSG.java.

◆ getNumfacesinoffset()

static int eu.mihosoft.vrl.v3d.CSG.getNumfacesinoffset ( )
static

Definition at line 2431 of file CSG.java.

◆ getNumFacesInOffset()

static int eu.mihosoft.vrl.v3d.CSG.getNumFacesInOffset ( )
static

Definition at line 2435 of file CSG.java.

◆ getOptType()

OptType eu.mihosoft.vrl.v3d.CSG.getOptType ( )
private

Gets the opt type.

Returns
the optType

Definition at line 1905 of file CSG.java.

◆ getParameters()

Set<String> eu.mihosoft.vrl.v3d.CSG.getParameters ( )

Definition at line 2284 of file CSG.java.

Referenced by eu.mihosoft.vrl.v3d.CSG.historySync().

◆ getPolygons()

List<Polygon> eu.mihosoft.vrl.v3d.CSG.getPolygons ( )

◆ getPrintBedIndex()

int eu.mihosoft.vrl.v3d.CSG.getPrintBedIndex ( )

Definition at line 2680 of file CSG.java.

◆ getProgressMoniter()

static ICSGProgress eu.mihosoft.vrl.v3d.CSG.getProgressMoniter ( )
static

Definition at line 2351 of file CSG.java.

◆ getSlicePlanes()

ArrayList<Transform> eu.mihosoft.vrl.v3d.CSG.getSlicePlanes ( )

Definition at line 2394 of file CSG.java.

◆ getStorage()

PropertyStorage eu.mihosoft.vrl.v3d.CSG.getStorage ( )

Definition at line 2459 of file CSG.java.

◆ getTotalX()

double eu.mihosoft.vrl.v3d.CSG.getTotalX ( )

Helper function wrapping bounding box values

Returns
MinX

Definition at line 1878 of file CSG.java.

Referenced by eu.mihosoft.vrl.v3d.CSG.addTabs(), eu.mihosoft.vrl.v3d.CSG.addTabsReorientation(), and eu.mihosoft.vrl.v3d.CSG.textToSize().

◆ getTotalY()

double eu.mihosoft.vrl.v3d.CSG.getTotalY ( )

Helper function wrapping bounding box values

Returns
MinY

Definition at line 1887 of file CSG.java.

Referenced by eu.mihosoft.vrl.v3d.CSG.textToSize().

◆ getTotalZ()

double eu.mihosoft.vrl.v3d.CSG.getTotalZ ( )

Helper function wrapping bounding box values

Returns
tMinZ

Definition at line 1896 of file CSG.java.

Referenced by eu.mihosoft.vrl.v3d.CSG.addTabsReorientation().

◆ historySync()

CSG eu.mihosoft.vrl.v3d.CSG.historySync ( CSG  dyingCSG)

◆ hull() [1/3]

CSG eu.mihosoft.vrl.v3d.CSG.hull ( )

Returns the convex hull of this csg.

Returns
the convex hull of this csg

Definition at line 866 of file CSG.java.

References eu.mihosoft.vrl.v3d.CSG.historySync(), and eu.mihosoft.vrl.v3d.ext.quickhull3d.HullUtil.hull().

Referenced by eu.mihosoft.vrl.v3d.CSG.hull(), eu.mihosoft.vrl.v3d.ChamferedCube.toPolygons(), eu.mihosoft.vrl.v3d.ChamferedCylinder.toPolygons(), and eu.mihosoft.vrl.v3d.RoundedCube.toPolygons().

Here is the call graph for this function:

◆ hull() [2/3]

CSG eu.mihosoft.vrl.v3d.CSG.hull ( CSG...  csgs)

Returns the convex hull of this csg and the union of the specified csgs.

Parameters
csgscsgs
Returns
the convex hull of this csg and the specified csgs

Definition at line 926 of file CSG.java.

◆ hull() [3/3]

CSG eu.mihosoft.vrl.v3d.CSG.hull ( List< CSG csgs)

Returns the convex hull of this csg and the union of the specified csgs.

Parameters
csgscsgs
Returns
the convex hull of this csg and the specified csgs

Definition at line 895 of file CSG.java.

References eu.mihosoft.vrl.v3d.CSG.getPolygons(), eu.mihosoft.vrl.v3d.CSG.historySync(), eu.mihosoft.vrl.v3d.CSG.hull(), eu.mihosoft.vrl.v3d.CSG.optType, and eu.mihosoft.vrl.v3d.CSG.setPolygons().

Here is the call graph for this function:

◆ hullAll() [1/2]

static CSG eu.mihosoft.vrl.v3d.CSG.hullAll ( CSG...  csgs)
static

Definition at line 880 of file CSG.java.

Referenced by eu.mihosoft.vrl.v3d.Extrude.revolve().

◆ hullAll() [2/2]

static CSG eu.mihosoft.vrl.v3d.CSG.hullAll ( List< CSG csgs)
static

Definition at line 884 of file CSG.java.

References eu.mihosoft.vrl.v3d.ext.quickhull3d.HullUtil.hull().

Here is the call graph for this function:

◆ intersect() [1/3]

CSG eu.mihosoft.vrl.v3d.CSG.intersect ( CSG  csg)

Return a new CSG solid representing the intersection of this csg and the specified csg.

Note: Neither this csg nor the specified csg are weighted.

    A.intersect(B)

    +-------+
    |       |
    |   A   |
    |    +--+----+   =   +--+
    +----+--+    |       +--+
         |   B   |
         |       |
         +-------+
}
Parameters
csgother csg
Returns
intersection of this csg and the specified csg

Definition at line 1275 of file CSG.java.

References eu.mihosoft.vrl.v3d.CSG.clone(), eu.mihosoft.vrl.v3d.CSG.fromPolygons(), eu.mihosoft.vrl.v3d.CSG.getName(), eu.mihosoft.vrl.v3d.CSG.getPolygons(), eu.mihosoft.vrl.v3d.CSG.historySync(), eu.mihosoft.vrl.v3d.CSG.optimization(), and eu.mihosoft.vrl.v3d.CSG.setName().

Referenced by eu.mihosoft.vrl.v3d.CSG.difference(), and eu.mihosoft.vrl.v3d.CSG.toolOffset().

Here is the call graph for this function:

◆ intersect() [2/3]

CSG eu.mihosoft.vrl.v3d.CSG.intersect ( CSG...  csgs)

Return a new CSG solid representing the intersection of this csg and the specified csgs.

Note: Neither this csg nor the specified csgs are weighted.

    A.intersect(B)

    +-------+
    |       |
    |   A   |
    |    +--+----+   =   +--+
    +----+--+    |       +--+
         |   B   |
         |       |
         +-------+
}
Parameters
csgsother csgs
Returns
intersection of this csg and the specified csgs

Definition at line 1360 of file CSG.java.

◆ intersect() [3/3]

CSG eu.mihosoft.vrl.v3d.CSG.intersect ( List< CSG csgs)

Return a new CSG solid representing the intersection of this csg and the specified csgs.

Note: Neither this csg nor the specified csgs are weighted.

    A.intersect(B)

    +-------+
    |       |
    |   A   |
    |    +--+----+   =   +--+
    +----+--+    |       +--+
         |   B   |
         |       |
         +-------+
}
Parameters
csgsother csgs
Returns
intersection of this csg and the specified csgs

Definition at line 1318 of file CSG.java.

References eu.mihosoft.vrl.v3d.CSG.historySync(), eu.mihosoft.vrl.v3d.ICSGProgress.progressUpdate(), and eu.mihosoft.vrl.v3d.CSG.union().

Here is the call graph for this function:

◆ isMarkedForRegeneration()

boolean eu.mihosoft.vrl.v3d.CSG.isMarkedForRegeneration ( )

Definition at line 2319 of file CSG.java.

◆ isUseStackTraces()

static boolean eu.mihosoft.vrl.v3d.CSG.isUseStackTraces ( )
static

Definition at line 2443 of file CSG.java.

◆ isWireFrame()

boolean eu.mihosoft.vrl.v3d.CSG.isWireFrame ( )

Definition at line 2666 of file CSG.java.

◆ makeKeepaway()

CSG eu.mihosoft.vrl.v3d.CSG.makeKeepaway ( Number  sn)

Definition at line 2090 of file CSG.java.

References eu.mihosoft.vrl.v3d.CSG.historySync(), and eu.mihosoft.vrl.v3d.CSG.transformed().

Here is the call graph for this function:

◆ markForRegeneration()

void eu.mihosoft.vrl.v3d.CSG.markForRegeneration ( )

Definition at line 2323 of file CSG.java.

◆ mink()

ArrayList<CSG> eu.mihosoft.vrl.v3d.CSG.mink ( CSG  travelingShape)

Shortened name In case you forget the name of minkowski

Parameters
travelingShape
Returns

Definition at line 1971 of file CSG.java.

◆ minkowski()

ArrayList<CSG> eu.mihosoft.vrl.v3d.CSG.minkowski ( CSG  travelingShape)

This is a simplified version of a minkowski transform using convex hull and the internal list of convex polygons The shape is placed at the vertex of each point on a polygon, and the result is convex hulled together. This collection is returned. To make a normal insets, difference this collection To make an outset by the normals, union this collection with this object.

Parameters
travelingShapea shape to sweep around
Returns

Definition at line 2012 of file CSG.java.

References eu.mihosoft.vrl.v3d.CSG.getPolygons().

Here is the call graph for this function:

◆ minkowskiDifference() [1/2]

CSG eu.mihosoft.vrl.v3d.CSG.minkowskiDifference ( CSG  itemToDifference,
CSG  minkowskiObject 
)

minkowskiDifference performs an efficient difference of the minkowski transform of the intersection of an object. if you have 2 objects and need them to fit with a specific tolerance as described as the distance from he normal of the surface, then this function will effectinatly compute that value.

Parameters
itemToDifferencethe object that needs to fit
minkowskiObjectthe object to represent the offset
Returns

Definition at line 2034 of file CSG.java.

References eu.mihosoft.vrl.v3d.CSG.difference(), eu.mihosoft.vrl.v3d.CSG.minkowskiHullShape(), and eu.mihosoft.vrl.v3d.ICSGProgress.progressUpdate().

Here is the call graph for this function:

◆ minkowskiDifference() [2/2]

CSG eu.mihosoft.vrl.v3d.CSG.minkowskiDifference ( CSG  itemToDifference,
double  tolerance 
)

minkowskiDifference performs an efficient difference of the minkowski transform of the intersection of an object. if you have 2 objects and need them to fit with a specific tolerance as described as the distance from the normal of the surface, then this function will effectinatly compute that value.

Parameters
itemToDifferencethe object that needs to fit
tolerancethe tolerance distance
Returns

Definition at line 2057 of file CSG.java.

◆ minkowskiHullShape()

ArrayList<CSG> eu.mihosoft.vrl.v3d.CSG.minkowskiHullShape ( CSG  travelingShape)

This is a simplified version of a minkowski transform using convex hull and the internal list of convex polygons The shape is placed at the vertex of each point on a polygon, and the result is convex hulled together. This collection is returned. To make a normal insets, difference this collection To make an outset by the normals, union this collection with this object.

Parameters
travelingShapea shape to sweep around
Returns

Definition at line 1985 of file CSG.java.

References eu.mihosoft.vrl.v3d.CSG.getPolygons(), eu.mihosoft.vrl.v3d.ext.quickhull3d.HullUtil.hull(), eu.mihosoft.vrl.v3d.CSG.move(), and eu.mihosoft.vrl.v3d.Vertex.pos.

Referenced by eu.mihosoft.vrl.v3d.CSG.minkowskiDifference().

Here is the call graph for this function:

◆ minovsky()

ArrayList<CSG> eu.mihosoft.vrl.v3d.CSG.minovsky ( CSG  travelingShape)

Hail Zeon! In case you forget the name of minkowski and are a Gundam fan

Parameters
travelingShape
Returns

Definition at line 1960 of file CSG.java.

◆ mirrorx()

CSG eu.mihosoft.vrl.v3d.CSG.mirrorx ( )

mirror about x axis.

Returns
the csg

Definition at line 531 of file CSG.java.

◆ mirrory()

CSG eu.mihosoft.vrl.v3d.CSG.mirrory ( )

mirror about y axis.

Returns
the csg

Definition at line 513 of file CSG.java.

◆ mirrorz()

CSG eu.mihosoft.vrl.v3d.CSG.mirrorz ( )

mirror about z axis.

Returns
the csg

Definition at line 522 of file CSG.java.

◆ move() [1/6]

static ArrayList<CSG> eu.mihosoft.vrl.v3d.CSG.move ( ArrayList< CSG slice,
ArrayList< Transform p 
)
static

Definition at line 497 of file CSG.java.

◆ move() [2/6]

ArrayList<CSG> eu.mihosoft.vrl.v3d.CSG.move ( ArrayList< Transform p)

Definition at line 489 of file CSG.java.

◆ move() [3/6]

CSG eu.mihosoft.vrl.v3d.CSG.move ( Number  x,
Number  y,
Number  z 
)

◆ move() [4/6]

CSG eu.mihosoft.vrl.v3d.CSG.move ( Number[]  posVector)

Definition at line 418 of file CSG.java.

◆ move() [5/6]

CSG eu.mihosoft.vrl.v3d.CSG.move ( Vector3d  v)

Definition at line 414 of file CSG.java.

References eu.mihosoft.vrl.v3d.Vector3d.x(), eu.mihosoft.vrl.v3d.Vector3d.y(), and eu.mihosoft.vrl.v3d.Vector3d.z().

Here is the call graph for this function:

◆ move() [6/6]

CSG eu.mihosoft.vrl.v3d.CSG.move ( Vertex  v)

Definition at line 410 of file CSG.java.

References eu.mihosoft.vrl.v3d.Vertex.getX(), eu.mihosoft.vrl.v3d.Vertex.getY(), and eu.mihosoft.vrl.v3d.Vertex.getZ().

Here is the call graph for this function:

◆ moveToCenter()

CSG eu.mihosoft.vrl.v3d.CSG.moveToCenter ( )

Helper function moving CSG to center X, Y, Z moveToCenter. Moves in x, y, z

Returns
the csg

Definition at line 485 of file CSG.java.

References eu.mihosoft.vrl.v3d.CSG.movey(), and eu.mihosoft.vrl.v3d.CSG.movez().

Here is the call graph for this function:

◆ moveToCenterX()

CSG eu.mihosoft.vrl.v3d.CSG.moveToCenterX ( )

Helper function moving CSG to center X moveToCenterX.

Returns
the csg

Definition at line 458 of file CSG.java.

◆ moveToCenterY()

CSG eu.mihosoft.vrl.v3d.CSG.moveToCenterY ( )

Helper function moving CSG to center Y moveToCenterY.

Returns
the csg

Definition at line 467 of file CSG.java.

◆ moveToCenterZ()

CSG eu.mihosoft.vrl.v3d.CSG.moveToCenterZ ( )

Helper function moving CSG to center Z moveToCenterZ.

Returns
the csg

Definition at line 476 of file CSG.java.

◆ movex()

CSG eu.mihosoft.vrl.v3d.CSG.movex ( Number  howFarToMove)

Movex.

Parameters
howFarToMovethe how far to move
Returns
the csg

Definition at line 449 of file CSG.java.

References eu.mihosoft.vrl.v3d.Transform.translateX(), and eu.mihosoft.vrl.v3d.Transform.unity().

Referenced by eu.mihosoft.vrl.v3d.CSG.addTabs(), and eu.mihosoft.vrl.v3d.CSG.getBoundingBox().

Here is the call graph for this function:

◆ movey()

CSG eu.mihosoft.vrl.v3d.CSG.movey ( Number  howFarToMove)

Movey.

Parameters
howFarToMovethe how far to move
Returns
the csg

Definition at line 429 of file CSG.java.

References eu.mihosoft.vrl.v3d.Transform.translateY(), and eu.mihosoft.vrl.v3d.Transform.unity().

Referenced by eu.mihosoft.vrl.v3d.CSG.addTabs(), eu.mihosoft.vrl.v3d.CSG.getBoundingBox(), eu.mihosoft.vrl.v3d.CSG.moveToCenter(), eu.mihosoft.vrl.v3d.Extrude.revolve(), and eu.mihosoft.vrl.v3d.Fillet.toPolygons().

Here is the call graph for this function:

◆ movez()

CSG eu.mihosoft.vrl.v3d.CSG.movez ( Number  howFarToMove)

◆ newMesh()

MeshView eu.mihosoft.vrl.v3d.CSG.newMesh ( )

Gets the mesh.

Returns
the mesh

Definition at line 264 of file CSG.java.

References eu.mihosoft.vrl.v3d.MeshContainer.getAsMeshViews().

Here is the call graph for this function:

◆ optimization()

CSG eu.mihosoft.vrl.v3d.CSG.optimization ( OptType  type)

◆ prepForManufacturing()

CSG eu.mihosoft.vrl.v3d.CSG.prepForManufacturing ( )

◆ prepMfg()

CSG eu.mihosoft.vrl.v3d.CSG.prepMfg ( )

Definition at line 2209 of file CSG.java.

◆ regenerate()

CSG eu.mihosoft.vrl.v3d.CSG.regenerate ( )

◆ rot() [1/2]

CSG eu.mihosoft.vrl.v3d.CSG.rot ( Number  x,
Number  y,
Number  z 
)

Definition at line 535 of file CSG.java.

References eu.mihosoft.vrl.v3d.CSG.roty(), and eu.mihosoft.vrl.v3d.CSG.rotz().

Here is the call graph for this function:

◆ rot() [2/2]

CSG eu.mihosoft.vrl.v3d.CSG.rot ( Number[]  posVector)

Definition at line 539 of file CSG.java.

◆ rotx()

CSG eu.mihosoft.vrl.v3d.CSG.rotx ( Number  degreesToRotate)

Rotx.

Parameters
degreesToRotatethe degrees to rotate
Returns
the csg

Definition at line 570 of file CSG.java.

Referenced by eu.mihosoft.vrl.v3d.CSG.addTabs(), eu.mihosoft.vrl.v3d.Parabola.cone(), eu.mihosoft.vrl.v3d.CSG.text(), and eu.mihosoft.vrl.v3d.Fillet.toPolygons().

◆ roty()

CSG eu.mihosoft.vrl.v3d.CSG.roty ( Number  degreesToRotate)

Roty.

Parameters
degreesToRotatethe degrees to rotate
Returns
the csg

Definition at line 560 of file CSG.java.

Referenced by eu.mihosoft.vrl.v3d.CSG.rot(), eu.mihosoft.vrl.v3d.Isosceles.toPolygons(), and eu.mihosoft.vrl.v3d.Wedge.toPolygons().

◆ rotz()

CSG eu.mihosoft.vrl.v3d.CSG.rotz ( Number  degreesToRotate)

◆ scale()

CSG eu.mihosoft.vrl.v3d.CSG.scale ( Number  scaleValue)

◆ scalex()

CSG eu.mihosoft.vrl.v3d.CSG.scalex ( Number  scaleValue)

Scalex.

Parameters
scaleValuethe scale value
Returns
the csg

Definition at line 601 of file CSG.java.

Referenced by eu.mihosoft.vrl.v3d.CSG.textToSize().

◆ scaley()

CSG eu.mihosoft.vrl.v3d.CSG.scaley ( Number  scaleValue)

Scaley.

Parameters
scaleValuethe scale value
Returns
the csg

Definition at line 591 of file CSG.java.

Referenced by eu.mihosoft.vrl.v3d.CSG.textToSize().

◆ scalez()

CSG eu.mihosoft.vrl.v3d.CSG.scalez ( Number  scaleValue)

Scalez.

Parameters
scaleValuethe scale value
Returns
the csg

Definition at line 581 of file CSG.java.

◆ setColor()

CSG eu.mihosoft.vrl.v3d.CSG.setColor ( Color  color)

◆ setDatumReferences()

void eu.mihosoft.vrl.v3d.CSG.setDatumReferences ( ArrayList< Transform datumReferences)
private

Definition at line 2455 of file CSG.java.

◆ setDefaultColor()

static void eu.mihosoft.vrl.v3d.CSG.setDefaultColor ( Color  defaultcolor)
static

Definition at line 2363 of file CSG.java.

References eu.mihosoft.vrl.v3d.CSG.defaultcolor.

◆ setDefaultOptType()

static void eu.mihosoft.vrl.v3d.CSG.setDefaultOptType ( OptType  optType)
static

Sets the default opt type.

Parameters
optTypethe optType to set

Definition at line 1914 of file CSG.java.

◆ setIsWireFrame()

void eu.mihosoft.vrl.v3d.CSG.setIsWireFrame ( boolean  b)

Definition at line 2672 of file CSG.java.

◆ setManipulator()

CSG eu.mihosoft.vrl.v3d.CSG.setManipulator ( Affine  manipulator)

Sets the manipulator.

Parameters
manipulatorthe manipulator
Returns
the affine

Definition at line 235 of file CSG.java.

Referenced by eu.mihosoft.vrl.v3d.CSG.regenerate(), and eu.mihosoft.vrl.v3d.CSG.setParameterNewValue().

◆ setManufactuing()

CSG eu.mihosoft.vrl.v3d.CSG.setManufactuing ( PrepForManufacturing  manufactuing)

Definition at line 2236 of file CSG.java.

◆ setManufacturing()

CSG eu.mihosoft.vrl.v3d.CSG.setManufacturing ( PrepForManufacturing  manufactuing)

Definition at line 2225 of file CSG.java.

◆ setMfg()

CSG eu.mihosoft.vrl.v3d.CSG.setMfg ( PrepForManufacturing  manufactuing)

Definition at line 2221 of file CSG.java.

◆ setName()

CSG eu.mihosoft.vrl.v3d.CSG.setName ( String  name)

◆ setNumFacesInOffset()

static void eu.mihosoft.vrl.v3d.CSG.setNumFacesInOffset ( int  numFacesInOffset)
static

◆ setOptType()

void eu.mihosoft.vrl.v3d.CSG.setOptType ( OptType  optType)

Sets the opt type.

Parameters
optTypethe optType to set

Definition at line 1923 of file CSG.java.

Referenced by eu.mihosoft.vrl.v3d.CSG.clone().

◆ setParameter() [1/3]

CSG eu.mihosoft.vrl.v3d.CSG.setParameter ( Parameter  w)

◆ setParameter() [2/3]

CSG eu.mihosoft.vrl.v3d.CSG.setParameter ( Parameter  w,
IParametric  function 
)

◆ setParameter() [3/3]

CSG eu.mihosoft.vrl.v3d.CSG.setParameter ( String  key,
double  defaultValue,
double  upperBound,
double  lowerBound,
IParametric  function 
)

Definition at line 2262 of file CSG.java.

◆ setParameterIfNull()

CSG eu.mihosoft.vrl.v3d.CSG.setParameterIfNull ( String  key)

Definition at line 2271 of file CSG.java.

References eu.mihosoft.vrl.v3d.parametrics.CSGDatabase.get(), and eu.mihosoft.vrl.v3d.parametrics.Parameter.setValue().

Here is the call graph for this function:

◆ setParameterNewValue()

CSG eu.mihosoft.vrl.v3d.CSG.setParameterNewValue ( String  key,
double  newValue 
)

Definition at line 2289 of file CSG.java.

References eu.mihosoft.vrl.v3d.parametrics.IParametric.change(), eu.mihosoft.vrl.v3d.CSG.setColor(), and eu.mihosoft.vrl.v3d.CSG.setManipulator().

Here is the call graph for this function:

◆ setPolygons()

void eu.mihosoft.vrl.v3d.CSG.setPolygons ( List< Polygon polygons)

Sets the polygons.

Parameters
polygonsthe new polygons

Definition at line 1932 of file CSG.java.

Referenced by eu.mihosoft.vrl.v3d.CSG.clone(), eu.mihosoft.vrl.v3d.CSG.fromPolygons(), and eu.mihosoft.vrl.v3d.CSG.hull().

◆ setPrintBedNumber()

void eu.mihosoft.vrl.v3d.CSG.setPrintBedNumber ( int  index)

Definition at line 2676 of file CSG.java.

◆ setProgressMoniter()

static void eu.mihosoft.vrl.v3d.CSG.setProgressMoniter ( ICSGProgress  progressMoniter)
static

Definition at line 2355 of file CSG.java.

References eu.mihosoft.vrl.v3d.CSG.progressMoniter.

◆ setRegenerate()

CSG eu.mihosoft.vrl.v3d.CSG.setRegenerate ( IRegenerate  function)

Definition at line 2297 of file CSG.java.

◆ setStorage()

void eu.mihosoft.vrl.v3d.CSG.setStorage ( PropertyStorage  storage)

Definition at line 2463 of file CSG.java.

Referenced by eu.mihosoft.vrl.v3d.CSG.fromPolygons().

◆ setTemporaryColor()

CSG eu.mihosoft.vrl.v3d.CSG.setTemporaryColor ( Color  color)

Sets the Temporary color.

Parameters
colorthe new Temporary color

Definition at line 221 of file CSG.java.

◆ setUseStackTraces()

static void eu.mihosoft.vrl.v3d.CSG.setUseStackTraces ( boolean  useStackTraces)
static

Definition at line 2447 of file CSG.java.

References eu.mihosoft.vrl.v3d.CSG.useStackTraces.

◆ text() [1/3]

static CSG eu.mihosoft.vrl.v3d.CSG.text ( String  text,
double  height 
)
static

Definition at line 2688 of file CSG.java.

◆ text() [2/3]

static CSG eu.mihosoft.vrl.v3d.CSG.text ( String  text,
double  height,
double  fontSize 
)
static

Definition at line 2685 of file CSG.java.

Referenced by eu.mihosoft.vrl.v3d.CSG.text(), and eu.mihosoft.vrl.v3d.CSG.textToSize().

◆ text() [3/3]

static CSG eu.mihosoft.vrl.v3d.CSG.text ( String  text,
double  height,
double  fontSize,
String  fontType 
)
static

◆ textToSize()

static CSG eu.mihosoft.vrl.v3d.CSG.textToSize ( String  text,
double  x,
double  y,
double  z 
)
static

Extrude text to a specific bounding box size

Parameters
textthe text to be extruded
xthe total final X
ythe total final Y
zthe total final Z
Returns
The given input text, scaled to the exact sizes provided, with Y=0 line as the bottom line of the text

Definition at line 2714 of file CSG.java.

References eu.mihosoft.vrl.v3d.CSG.getTotalX(), eu.mihosoft.vrl.v3d.CSG.getTotalY(), eu.mihosoft.vrl.v3d.CSG.scalex(), eu.mihosoft.vrl.v3d.CSG.scaley(), eu.mihosoft.vrl.v3d.CSG.text(), and eu.mihosoft.vrl.v3d.CSG.toXMin().

Here is the call graph for this function:

◆ toJavaFXMesh()

MeshContainer eu.mihosoft.vrl.v3d.CSG.toJavaFXMesh ( CadInteractionEvent  interact)

To java fx mesh.

Parameters
interactthe interact
Returns
the mesh container

Definition at line 1703 of file CSG.java.

◆ toJavaFXMeshSimple()

MeshContainer eu.mihosoft.vrl.v3d.CSG.toJavaFXMeshSimple ( CadInteractionEvent  interact)

Returns the CSG as JavaFX triangle mesh.

Parameters
interactthe interact
Returns
the CSG as JavaFX triangle mesh

Definition at line 1727 of file CSG.java.

References eu.mihosoft.vrl.v3d.CSGtoJavafx.meshFromPolygon().

Here is the call graph for this function:

◆ toObjString() [1/2]

String eu.mihosoft.vrl.v3d.CSG.toObjString ( )

Returns this csg in OBJ string format.

Returns
this csg in OBJ string format

Definition at line 1654 of file CSG.java.

◆ toObjString() [2/2]

StringBuilder eu.mihosoft.vrl.v3d.CSG.toObjString ( StringBuilder  sb)

Returns this csg in OBJ string format.

Parameters
sbstring builder
Returns
the specified string builder

Definition at line 1567 of file CSG.java.

References eu.mihosoft.vrl.v3d.Vertex.toObjString(), and eu.mihosoft.vrl.v3d.Vertex.transform().

Here is the call graph for this function:

◆ toolOffset()

CSG eu.mihosoft.vrl.v3d.CSG.toolOffset ( Number  sn)

Definition at line 2064 of file CSG.java.

References eu.mihosoft.vrl.v3d.CSG.intersect(), and eu.mihosoft.vrl.v3d.Primitive.toCSG().

Here is the call graph for this function:

◆ toStlString() [1/2]

String eu.mihosoft.vrl.v3d.CSG.toStlString ( )

Returns this csg in STL string format.

Returns
this csg in STL string format

Definition at line 1370 of file CSG.java.

◆ toStlString() [2/2]

StringBuilder eu.mihosoft.vrl.v3d.CSG.toStlString ( StringBuilder  sb)

Returns this csg in STL string format.

Parameters
sbstring builder
Returns
the specified string builder

Definition at line 1383 of file CSG.java.

References eu.mihosoft.vrl.v3d.Polygon.toStlString().

Here is the call graph for this function:

◆ toString()

String eu.mihosoft.vrl.v3d.CSG.toString ( )

Definition at line 2388 of file CSG.java.

◆ touching()

boolean eu.mihosoft.vrl.v3d.CSG.touching ( CSG  incoming)

A test to see if 2 CSG's are touching. The fast-return is a bounding box check If bounding boxes overlap, then an intersection is performed and the existance of an interscting object is returned

Parameters
incoming
Returns

Definition at line 2335 of file CSG.java.

References eu.mihosoft.vrl.v3d.CSG.getMaxX(), eu.mihosoft.vrl.v3d.CSG.getMaxY(), eu.mihosoft.vrl.v3d.CSG.getMaxZ(), eu.mihosoft.vrl.v3d.CSG.getMinX(), eu.mihosoft.vrl.v3d.CSG.getMinY(), eu.mihosoft.vrl.v3d.CSG.getMinZ(), and eu.mihosoft.vrl.v3d.CSG.getPolygons().

Here is the call graph for this function:

◆ toXMax() [1/2]

CSG eu.mihosoft.vrl.v3d.CSG.toXMax ( )

To x max.

Returns
the csg

Definition at line 384 of file CSG.java.

◆ toXMax() [2/2]

CSG eu.mihosoft.vrl.v3d.CSG.toXMax ( CSG  target)

To x max.

Parameters
targetthe target
Returns
the csg

Definition at line 328 of file CSG.java.

References eu.mihosoft.vrl.v3d.CSG.getBounds(), eu.mihosoft.vrl.v3d.Bounds.getMax(), and eu.mihosoft.vrl.v3d.Vector3d.x().

Referenced by eu.mihosoft.vrl.v3d.CSG.getBoundingBox().

Here is the call graph for this function:

◆ toXMin() [1/2]

CSG eu.mihosoft.vrl.v3d.CSG.toXMin ( )

To x min.

Returns
the csg

Definition at line 375 of file CSG.java.

◆ toXMin() [2/2]

CSG eu.mihosoft.vrl.v3d.CSG.toXMin ( CSG  target)

To x min.

Parameters
targetthe target
Returns
the csg

Definition at line 318 of file CSG.java.

References eu.mihosoft.vrl.v3d.CSG.getBounds(), eu.mihosoft.vrl.v3d.Bounds.getMin(), and eu.mihosoft.vrl.v3d.Vector3d.x().

Referenced by eu.mihosoft.vrl.v3d.CSG.textToSize(), and eu.mihosoft.vrl.v3d.Fillet.toPolygons().

Here is the call graph for this function:

◆ toYMax() [1/2]

CSG eu.mihosoft.vrl.v3d.CSG.toYMax ( )

To y max.

Returns
the csg

Definition at line 402 of file CSG.java.

◆ toYMax() [2/2]

CSG eu.mihosoft.vrl.v3d.CSG.toYMax ( CSG  target)

To y max.

Parameters
targetthe target
Returns
the csg

Definition at line 348 of file CSG.java.

References eu.mihosoft.vrl.v3d.CSG.getBounds(), eu.mihosoft.vrl.v3d.Bounds.getMax(), and eu.mihosoft.vrl.v3d.Vector3d.y().

Referenced by eu.mihosoft.vrl.v3d.CSG.getBoundingBox().

Here is the call graph for this function:

◆ toYMin() [1/2]

CSG eu.mihosoft.vrl.v3d.CSG.toYMin ( )

To y min.

Returns
the csg

Definition at line 393 of file CSG.java.

◆ toYMin() [2/2]

CSG eu.mihosoft.vrl.v3d.CSG.toYMin ( CSG  target)

To y min.

Parameters
targetthe target
Returns
the csg

Definition at line 338 of file CSG.java.

References eu.mihosoft.vrl.v3d.CSG.getBounds(), eu.mihosoft.vrl.v3d.Bounds.getMin(), and eu.mihosoft.vrl.v3d.Vector3d.y().

Referenced by eu.mihosoft.vrl.v3d.Fillet.toPolygons().

Here is the call graph for this function:

◆ toZMax() [1/2]

CSG eu.mihosoft.vrl.v3d.CSG.toZMax ( )

To z max.

Returns
the csg

Definition at line 366 of file CSG.java.

◆ toZMax() [2/2]

CSG eu.mihosoft.vrl.v3d.CSG.toZMax ( CSG  target)

To z max.

Parameters
targetthe target
Returns
the csg

Definition at line 308 of file CSG.java.

References eu.mihosoft.vrl.v3d.CSG.getBounds(), eu.mihosoft.vrl.v3d.Bounds.getMax(), and eu.mihosoft.vrl.v3d.Vector3d.z().

Referenced by eu.mihosoft.vrl.v3d.svg.SVGLoad.extrudeLayers(), and eu.mihosoft.vrl.v3d.CSG.getBoundingBox().

Here is the call graph for this function:

◆ toZMin() [1/2]

CSG eu.mihosoft.vrl.v3d.CSG.toZMin ( )

To z min.

Returns
the csg

Definition at line 357 of file CSG.java.

◆ toZMin() [2/2]

CSG eu.mihosoft.vrl.v3d.CSG.toZMin ( CSG  target)

◆ transformed()

CSG eu.mihosoft.vrl.v3d.CSG.transformed ( Transform  transform)

Returns a transformed copy of this CSG.

Parameters
transformthe transform to apply
Returns
a transformed copy of this CSG

Definition at line 1676 of file CSG.java.

References eu.mihosoft.vrl.v3d.CSG.fromPolygons(), eu.mihosoft.vrl.v3d.CSG.historySync(), eu.mihosoft.vrl.v3d.CSG.optimization(), and eu.mihosoft.vrl.v3d.CSG.setName().

Referenced by eu.mihosoft.vrl.v3d.CSG.addTabs(), eu.mihosoft.vrl.v3d.CSG.makeKeepaway(), eu.mihosoft.vrl.v3d.Extrude.revolve(), and eu.mihosoft.vrl.v3d.RoundedCube.toPolygons().

Here is the call graph for this function:

◆ triangulate() [1/2]

CSG eu.mihosoft.vrl.v3d.CSG.triangulate ( )

Definition at line 1398 of file CSG.java.

Referenced by eu.mihosoft.vrl.v3d.ext.quickhull3d.HullUtil.hull().

◆ triangulate() [2/2]

CSG eu.mihosoft.vrl.v3d.CSG.triangulate ( boolean  fix)

Definition at line 1401 of file CSG.java.

References eu.mihosoft.vrl.v3d.Debug3dProvider.clearScreen(), and eu.mihosoft.vrl.v3d.Debug3dProvider.setProvider().

Here is the call graph for this function:

◆ union() [1/3]

CSG eu.mihosoft.vrl.v3d.CSG.union ( CSG  csg)

Return a new CSG solid representing the union of this csg and the specified csg.

Note: Neither this csg nor the specified csg are weighted.

   A.union(B)

   +-------+            +-------+
   |       |            |       |
   |   A   |            |       |
   |    +--+----+   =   |       +----+
   +----+--+    |       +----+       |
        |   B   |            |       |
        |       |            |       |
        +-------+            +-------+
Parameters
csgother csg
Returns
union of this csg and the specified csg

Definition at line 736 of file CSG.java.

References eu.mihosoft.vrl.v3d.CSG.historySync().

Referenced by eu.mihosoft.vrl.v3d.CSG.addTabs(), eu.mihosoft.vrl.v3d.CSG.difference(), eu.mihosoft.vrl.v3d.CSG.intersect(), eu.mihosoft.vrl.v3d.Fillet.outerFillet(), eu.mihosoft.vrl.v3d.ChamferedCube.toPolygons(), eu.mihosoft.vrl.v3d.ChamferedCylinder.toPolygons(), eu.mihosoft.vrl.v3d.RoundedCube.toPolygons(), eu.mihosoft.vrl.v3d.CSG.union(), and eu.mihosoft.vrl.v3d.CSG.unionAll().

Here is the call graph for this function:

◆ union() [2/3]

CSG eu.mihosoft.vrl.v3d.CSG.union ( CSG...  csgs)

Return a new CSG solid representing the union of this csg and the specified csgs.

Note: Neither this csg nor the specified csg are weighted.

   A.union(B)

   +-------+            +-------+
   |       |            |       |
   |   A   |            |       |
   |    +--+----+   =   |       +----+
   +----+--+    |       +----+       |
        |   B   |            |       |
        |       |            |       |
        +-------+            +-------+
Parameters
csgsother csgs
Returns
union of this csg and the specified csgs

Definition at line 857 of file CSG.java.

◆ union() [3/3]

CSG eu.mihosoft.vrl.v3d.CSG.union ( List< CSG csgs)

Return a new CSG solid representing the union of this csg and the specified csgs.

Note: Neither this csg nor the specified csg are weighted.

   A.union(B)

   +-------+            +-------+
   |       |            |       |
   |   A   |            |       |
   |    +--+----+   =   |       +----+
   +----+--+    |       +----+       |
        |   B   |            |       |
        |       |            |       |
        +-------+            +-------+
Parameters
csgsother csgs
Returns
union of this csg and the specified csgs

Definition at line 797 of file CSG.java.

References eu.mihosoft.vrl.v3d.ICSGProgress.progressUpdate(), and eu.mihosoft.vrl.v3d.CSG.union().

Here is the call graph for this function:

◆ unionAll() [1/2]

static CSG eu.mihosoft.vrl.v3d.CSG.unionAll ( CSG...  csgs)
static

◆ unionAll() [2/2]

static CSG eu.mihosoft.vrl.v3d.CSG.unionAll ( List< CSG csgs)
static

Definition at line 875 of file CSG.java.

References eu.mihosoft.vrl.v3d.CSG.union().

Here is the call graph for this function:

◆ updatePolygons()

void eu.mihosoft.vrl.v3d.CSG.updatePolygons ( ArrayList< Polygon toAdd,
ArrayList< Polygon degenerates,
Polygon  p 
)
private

◆ weighted()

CSG eu.mihosoft.vrl.v3d.CSG.weighted ( WeightFunction  f)

Weighted.

Parameters
fthe f
Returns
the csg

Definition at line 1665 of file CSG.java.

Member Data Documentation

◆ assembly

PropertyStorage eu.mihosoft.vrl.v3d.CSG.assembly
private

Definition at line 124 of file CSG.java.

◆ bounds

Bounds eu.mihosoft.vrl.v3d.CSG.bounds
private

Definition at line 136 of file CSG.java.

◆ color

Color eu.mihosoft.vrl.v3d.CSG.color = getDefaultColor()
private

The color.

Definition at line 132 of file CSG.java.

◆ current

MeshView eu.mihosoft.vrl.v3d.CSG.current
private

The current.

Definition at line 127 of file CSG.java.

◆ datumReferences

ArrayList<Transform> eu.mihosoft.vrl.v3d.CSG.datumReferences = null
private

Definition at line 148 of file CSG.java.

◆ defaultcolor

Color eu.mihosoft.vrl.v3d.CSG.defaultcolor = Color.web("#007956")
staticprivate

Definition at line 129 of file CSG.java.

Referenced by eu.mihosoft.vrl.v3d.CSG.setDefaultColor().

◆ defaultOptType

OptType eu.mihosoft.vrl.v3d.CSG.defaultOptType = OptType.CSG_BOUND
staticprivate

The default opt type.

Definition at line 117 of file CSG.java.

◆ exportFormats

ArrayList<String> eu.mihosoft.vrl.v3d.CSG.exportFormats = null
private

Definition at line 147 of file CSG.java.

Referenced by eu.mihosoft.vrl.v3d.CSG.prepForManufacturing().

◆ groovyFileLines

ArrayList<String> eu.mihosoft.vrl.v3d.CSG.groovyFileLines = new ArrayList<>()
private

Definition at line 140 of file CSG.java.

◆ INDEX_OF_PARAMETRIC_DEFAULT

final int eu.mihosoft.vrl.v3d.CSG.INDEX_OF_PARAMETRIC_DEFAULT = 0
static

Definition at line 137 of file CSG.java.

◆ INDEX_OF_PARAMETRIC_LOWER

final int eu.mihosoft.vrl.v3d.CSG.INDEX_OF_PARAMETRIC_LOWER = 1
static

Definition at line 138 of file CSG.java.

◆ INDEX_OF_PARAMETRIC_UPPER

final int eu.mihosoft.vrl.v3d.CSG.INDEX_OF_PARAMETRIC_UPPER = 2
static

Definition at line 139 of file CSG.java.

◆ manipulator

Affine eu.mihosoft.vrl.v3d.CSG.manipulator
private

The manipulator.

Definition at line 135 of file CSG.java.

◆ manufactuing

PrepForManufacturing eu.mihosoft.vrl.v3d.CSG.manufactuing = null
private

Definition at line 141 of file CSG.java.

◆ mapOfparametrics

HashMap<String, IParametric> eu.mihosoft.vrl.v3d.CSG.mapOfparametrics = null
private

Definition at line 142 of file CSG.java.

Referenced by eu.mihosoft.vrl.v3d.CSG.prepForManufacturing().

◆ markForRegeneration

boolean eu.mihosoft.vrl.v3d.CSG.markForRegeneration = false
private

Definition at line 144 of file CSG.java.

◆ name

String eu.mihosoft.vrl.v3d.CSG.name = ""
private

Definition at line 145 of file CSG.java.

◆ needsDegeneratesPruned

boolean eu.mihosoft.vrl.v3d.CSG.needsDegeneratesPruned =false
staticprivate

Definition at line 150 of file CSG.java.

◆ numFacesInOffset

int eu.mihosoft.vrl.v3d.CSG.numFacesInOffset = 15
staticprivate

Definition at line 111 of file CSG.java.

Referenced by eu.mihosoft.vrl.v3d.CSG.setNumFacesInOffset().

◆ optType

OptType eu.mihosoft.vrl.v3d.CSG.optType = null
private

The opt type.

Definition at line 120 of file CSG.java.

Referenced by eu.mihosoft.vrl.v3d.CSG.hull().

◆ polygons

List<Polygon> eu.mihosoft.vrl.v3d.CSG.polygons
private

The polygons.

Definition at line 114 of file CSG.java.

◆ progressMoniter

ICSGProgress eu.mihosoft.vrl.v3d.CSG.progressMoniter
staticprivate
Initial value:
= new ICSGProgress() {
@Override
public void progressUpdate(int currentIndex, int finalIndex, String type, CSG intermediateShape) {
System.out.println(type + "ing " + currentIndex + " of " + finalIndex);
}
}

Definition at line 153 of file CSG.java.

Referenced by eu.mihosoft.vrl.v3d.CSG.setProgressMoniter().

◆ providerOf3d

IDebug3dProvider eu.mihosoft.vrl.v3d.CSG.providerOf3d = null
staticprivate

Definition at line 110 of file CSG.java.

◆ regenerate

IRegenerate eu.mihosoft.vrl.v3d.CSG.regenerate = null
private

Definition at line 143 of file CSG.java.

◆ slicePlanes

ArrayList<Transform> eu.mihosoft.vrl.v3d.CSG.slicePlanes = null
private

Definition at line 146 of file CSG.java.

Referenced by eu.mihosoft.vrl.v3d.CSG.prepForManufacturing().

◆ str

PropertyStorage eu.mihosoft.vrl.v3d.CSG.str
private

The storage.

Definition at line 123 of file CSG.java.

◆ triangulated

boolean eu.mihosoft.vrl.v3d.CSG.triangulated
private

Definition at line 149 of file CSG.java.

Referenced by eu.mihosoft.vrl.v3d.CSG.dumbUnion().

◆ useStackTraces

boolean eu.mihosoft.vrl.v3d.CSG.useStackTraces = true
staticprivate

Definition at line 151 of file CSG.java.

Referenced by eu.mihosoft.vrl.v3d.CSG.setUseStackTraces().


The documentation for this class was generated from the following file: