HE_Mesh
6.0.1
|
Protected Member Functions | |
HE_Mesh | applySelf (final HE_Mesh mesh) |
HE_Mesh | applySelf (final HE_Selection selection) |
![]() | |
abstract HE_Mesh | applySelf (final HE_Mesh mesh) |
abstract HE_Mesh | applySelf (final HE_Selection selection) |
Private Member Functions | |
HE_Mesh | applyStraight (final HE_Mesh mesh, final List< HE_Face > faces) |
boolean | applyStraightToOneFaceIgnoreNeighborhood (final int id, final List< HE_Face > selfaces, final HE_Mesh mesh, final boolean[] visited, final double d) |
boolean | applyStraightToOneFace (final int id, final List< HE_Face > selfaces, final HE_Mesh mesh, final boolean[] visited, final double d) |
HE_Mesh | applyPeaked (final HE_Mesh mesh, final List< HE_Face > faces) |
void | applyPeakToOneFace (final int id, final List< HE_Face > selFaces, final HE_Mesh mesh, final double d) |
HE_Mesh | applyFlat (final HE_Mesh mesh, final List< HE_Face > faces, final boolean fuse) |
boolean | applyFlatToOneFace (final int id, final List< HE_Face > selFaces, final HE_Mesh mesh, final HE_Selection fuse) |
Private Attributes | |
WB_ScalarParameter | d |
double | thresholdAngle |
WB_ScalarParameter | chamfer |
WB_ScalarParameter | hardEdgeChamfer |
boolean | relative |
boolean | fuse |
boolean | peak |
double | fuseAngle |
Map< Long, WB_Coord > | _faceNormals |
LongObjectHashMap< WB_Coord > | _halfedgeNormals |
LongDoubleHashMap | _halfedgeEWs |
Map< Long, WB_Coord > | _faceCenters |
double[] | heights |
HE_Selection | walls |
HE_Selection | extruded |
HE_Selection | peaks |
HE_Selection | fused |
List< HE_Face > | failedFaces |
List< Double > | failedHeights |
Additional Inherited Members | |
![]() | |
static final WB_ProgressTracker | tracker = WB_ProgressTracker.instance() |
Extrudes and scales a face along its face normal.
wblut.hemesh.HEM_Extrude.HEM_Extrude | ( | ) |
Instantiates a new HEM_Extrude.
|
private |
Apply flat extrusion.
mesh | |
faces | |
fuse |
References wblut.hemesh.HE_Selection.add(), wblut.hemesh.HEM_Extrude.applyFlatToOneFace(), wblut.hemesh.HE_Mesh.deleteEdge(), wblut.math.WB_ScalarParameter.evaluate(), wblut.hemesh.HE_Halfedge.getEdgeDihedralAngle(), wblut.hemesh.HE_Halfedge.getFace(), wblut.hemesh.HE_Face.getHalfedge(), wblut.hemesh.HE_Selection.getHalfedgeWithIndex(), wblut.hemesh.HE_Element.getInternalLabel(), wblut.hemesh.HE_Selection.getNumberOfHalfedges(), wblut.hemesh.HE_Halfedge.getPair(), wblut.core.WB_ProgressReporter.WB_ProgressCounter.increment(), wblut.hemesh.HE_Halfedge.isEdge(), wblut.core.WB_ProgressReporter.WB_ProgressTracker.setCounterStatus(), wblut.hemesh.HE_Element.setInternalLabel(), wblut.hemesh.HE_Machine.tracker, wblut.geom.WB_Coord.xd(), wblut.geom.WB_Coord.yd(), and wblut.geom.WB_Coord.zd().
|
private |
Apply flat extrusion to one face.
id | |
selFaces | |
mesh | |
fuse |
References wblut.hemesh.HE_Selection.add(), wblut.hemesh.HE_Mesh.add(), wblut.hemesh.HE_Mesh.addDerivedElement(), wblut.geom.WB_Point.addMul(), wblut.geom.WB_Point.addSelf(), wblut.geom.WB_Polygon.closestPoint(), wblut.hemesh.HET_MeshOp.collapseEdge(), wblut.geom.WB_Classification.CONVEX, wblut.hemesh.HE_Face.copyProperties(), wblut.hemesh.HE_Mesh.get(), wblut.hemesh.HE_Halfedge.getEndVertex(), wblut.hemesh.HE_Face.getFaceType(), wblut.hemesh.HE_Face.getHalfedge(), wblut.geom.WB_GeometryOp3D.getIntersection3D(), wblut.hemesh.HE_Halfedge.getNextInFace(), wblut.geom.WB_Polygon.getNumberOfShellPoints(), wblut.hemesh.HE_Halfedge.getPair(), wblut.geom.WB_GeometryOp3D.getSqDistance3D(), wblut.hemesh.HE_Halfedge.getStartVertex(), wblut.math.WB_Epsilon.isZeroSq(), wblut.hemesh.HE_Face.key(), wblut.geom.WB_Point.mulSelf(), wblut.hemesh.HE_Mesh.pairHalfedges(), wblut.hemesh.HE_Mesh.remove(), wblut.geom.WB_MutableCoordinate.set(), wblut.hemesh.HE_Mesh.setFace(), wblut.hemesh.HE_Mesh.setHalfedge(), wblut.hemesh.HE_Element.setInternalLabel(), wblut.hemesh.HE_Mesh.setNext(), wblut.hemesh.HE_Mesh.setPair(), wblut.hemesh.HE_Mesh.setVertex(), wblut.geom.WB_Point.subSelf(), wblut.hemesh.HE_Face.toPolygon(), and wblut.geom.WB_Polygon.trimConvexPolygon().
|
private |
Apply peaked extrusion.
mesh | |
faces |
References wblut.hemesh.HEM_Extrude.applyPeakToOneFace(), wblut.math.WB_ScalarParameter.evaluate(), wblut.hemesh.HE_Face.getFaceCenter(), wblut.core.WB_ProgressReporter.WB_ProgressCounter.increment(), wblut.hemesh.HE_Face.key(), wblut.core.WB_ProgressReporter.WB_ProgressTracker.setCounterStatus(), wblut.hemesh.HE_Machine.tracker, wblut.geom.WB_Coord.xd(), wblut.geom.WB_Coord.yd(), and wblut.geom.WB_Coord.zd().
|
private |
Apply peaked extrusion to one face.
id | |
selFaces | |
mesh | |
d |
References wblut.hemesh.HE_Selection.add(), wblut.hemesh.HE_Selection.addFaces(), wblut.geom.WB_Point.addSelf(), wblut.hemesh.HE_Face.copyProperties(), wblut.hemesh.HE_Selection.getFacesAsArray(), wblut.hemesh.HE_Face.key(), wblut.geom.WB_Vector.mulSelf(), wblut.hemesh.HE_Element.setInternalLabel(), and wblut.hemesh.HEM_TriSplit.splitFaceTri().
References wblut.geom.WB_Point.addMulSelf(), wblut.hemesh.HEM_Extrude.applyFlat(), wblut.hemesh.HEM_Extrude.applyPeaked(), wblut.hemesh.HEM_Extrude.applyStraight(), wblut.hemesh.HET_Texture.cleanUVW(), wblut.math.WB_ScalarParameter.evaluate(), wblut.hemesh.HE_Mesh.getFaces(), wblut.hemesh.HE_Face.getHalfedge(), wblut.hemesh.HE_Halfedge.getHalfedgeDihedralAngle(), wblut.hemesh.HE_Halfedge.getHalfedgeNormal(), wblut.hemesh.HE_Element.getKey(), wblut.hemesh.HE_Mesh.getKeyedFaceCenters(), wblut.hemesh.HE_Mesh.getKeyedFaceNormals(), wblut.hemesh.HE_Halfedge.getNextInFace(), wblut.hemesh.HE_Vertex.getPosition(), wblut.hemesh.HE_Halfedge.getVertex(), wblut.core.WB_ProgressReporter.WB_ProgressCounter.increment(), wblut.hemesh.HE_Halfedge.key(), wblut.hemesh.HE_Face.key(), wblut.hemesh.HE_Mesh.resetFaceInternalLabels(), wblut.core.WB_ProgressReporter.WB_ProgressTracker.setCounterStatus(), wblut.core.WB_ProgressReporter.WB_ProgressTracker.setStartStatus(), wblut.core.WB_ProgressReporter.WB_ProgressTracker.setStopStatus(), wblut.hemesh.HE_Machine.tracker, wblut.geom.WB_Coord.xd(), wblut.hemesh.HE_Vertex.xd(), wblut.geom.WB_Coord.yd(), wblut.hemesh.HE_Vertex.yd(), wblut.geom.WB_Coord.zd(), and wblut.hemesh.HE_Vertex.zd().
|
protected |
References wblut.geom.WB_Point.addMulSelf(), wblut.hemesh.HEM_Extrude.applyFlat(), wblut.hemesh.HEM_Extrude.applyPeaked(), wblut.hemesh.HEM_Extrude.applyStraight(), wblut.hemesh.HET_Texture.cleanUVW(), wblut.math.WB_ScalarParameter.evaluate(), wblut.hemesh.HE_Selection.getFaces(), wblut.hemesh.HE_Face.getHalfedge(), wblut.hemesh.HE_Halfedge.getHalfedgeDihedralAngle(), wblut.hemesh.HE_Halfedge.getHalfedgeNormal(), wblut.hemesh.HE_Element.getKey(), wblut.hemesh.HE_Mesh.getKeyedFaceCenters(), wblut.hemesh.HE_Mesh.getKeyedFaceNormals(), wblut.hemesh.HE_Halfedge.getNextInFace(), wblut.hemesh.HE_Selection.getNumberOfFaces(), wblut.hemesh.HE_Vertex.getPosition(), wblut.hemesh.HE_Halfedge.getVertex(), wblut.core.WB_ProgressReporter.WB_ProgressCounter.increment(), wblut.hemesh.HE_Halfedge.key(), wblut.hemesh.HE_Face.key(), wblut.hemesh.HE_Mesh.resetFaceInternalLabels(), wblut.core.WB_ProgressReporter.WB_ProgressTracker.setCounterStatus(), wblut.core.WB_ProgressReporter.WB_ProgressTracker.setStartStatus(), wblut.core.WB_ProgressReporter.WB_ProgressTracker.setStopStatus(), wblut.hemesh.HE_Machine.tracker, wblut.geom.WB_Coord.xd(), wblut.hemesh.HE_Vertex.xd(), wblut.geom.WB_Coord.yd(), wblut.hemesh.HE_Vertex.yd(), wblut.geom.WB_Coord.zd(), and wblut.hemesh.HE_Vertex.zd().
|
private |
Apply straight extrusion.
mesh | the mesh |
faces | the faces |
References wblut.hemesh.HEM_Extrude.applyStraightToOneFace(), wblut.hemesh.HEM_Extrude.applyStraightToOneFaceIgnoreNeighborhood(), wblut.math.WB_ScalarParameter.evaluate(), wblut.core.WB_ProgressReporter.WB_ProgressCounter.increment(), wblut.core.WB_ProgressReporter.WB_ProgressTracker.setCounterStatus(), wblut.hemesh.HE_Machine.tracker, wblut.geom.WB_Coord.xd(), wblut.geom.WB_Coord.yd(), and wblut.geom.WB_Coord.zd().
|
private |
Apply straight extrusion to one face.
id | the id |
selfaces | the selfaces |
mesh | the mesh |
visited | the visited |
d |
References wblut.geom.WB_Point.add(), wblut.hemesh.HE_Selection.add(), wblut.hemesh.HE_Mesh.add(), wblut.hemesh.HE_Mesh.addDerivedElement(), wblut.hemesh.HE_Selection.addFaces(), wblut.geom.WB_Point.addMulSelf(), wblut.hemesh.HE_Mesh.addVertices(), wblut.hemesh.HE_Vertex.copyProperties(), wblut.hemesh.HE_Face.copyProperties(), wblut.hemesh.HE_Halfedge.getFace(), wblut.hemesh.HE_Face.getNeighborFaces(), wblut.hemesh.HE_Halfedge.getNextInFace(), wblut.hemesh.HE_Halfedge.getPair(), wblut.hemesh.HE_Vertex.getPosition(), wblut.hemesh.HE_Halfedge.getVertex(), wblut.geom.WB_Vector.isParallel(), wblut.hemesh.HE_Face.key(), wblut.hemesh.HE_Mesh.pairHalfedges(), wblut.hemesh.HE_Mesh.remove(), wblut.hemesh.HE_Mesh.setFace(), wblut.hemesh.HE_Mesh.setHalfedge(), wblut.hemesh.HE_Element.setInternalLabel(), wblut.hemesh.HE_Mesh.setNext(), wblut.hemesh.HE_Mesh.setPair(), and wblut.hemesh.HE_Mesh.setVertex().
|
private |
id | |
selfaces | |
mesh | |
visited | |
d |
References wblut.geom.WB_Point.add(), wblut.hemesh.HE_Mesh.add(), wblut.hemesh.HE_Selection.add(), wblut.hemesh.HE_Mesh.addDerivedElement(), wblut.hemesh.HE_Selection.addFaces(), wblut.geom.WB_Point.addMulSelf(), wblut.hemesh.HE_Mesh.addVertices(), wblut.hemesh.HE_Vertex.copyProperties(), wblut.hemesh.HE_Face.copyProperties(), wblut.hemesh.HE_Halfedge.getFace(), wblut.hemesh.HE_Halfedge.getNextInFace(), wblut.hemesh.HE_Halfedge.getPair(), wblut.hemesh.HE_Vertex.getPosition(), wblut.hemesh.HE_Halfedge.getVertex(), wblut.hemesh.HE_Face.key(), wblut.hemesh.HE_Mesh.pairHalfedges(), wblut.hemesh.HE_Mesh.setFace(), wblut.hemesh.HE_Mesh.setHalfedge(), wblut.hemesh.HE_Element.setInternalLabel(), wblut.hemesh.HE_Mesh.setNext(), wblut.hemesh.HE_Mesh.setPair(), and wblut.hemesh.HE_Mesh.setVertex().
HEM_Extrude wblut.hemesh.HEM_Extrude.setChamfer | ( | final double | c | ) |
HEM_Extrude wblut.hemesh.HEM_Extrude.setChamfer | ( | final WB_ScalarParameter | c | ) |
HEM_Extrude wblut.hemesh.HEM_Extrude.setDistance | ( | final double | d | ) |
Set extrusion distance.
d | extrusion distance |
References wblut.math.WB_Epsilon.isZero(), and wblut.math.WB_ScalarParameter.ZERO.
HEM_Extrude wblut.hemesh.HEM_Extrude.setDistance | ( | final WB_ScalarParameter | d | ) |
HEM_Extrude wblut.hemesh.HEM_Extrude.setDistances | ( | final double[] | distances | ) |
distances |
HEM_Extrude wblut.hemesh.HEM_Extrude.setDistances | ( | final float[] | distances | ) |
distances |
HEM_Extrude wblut.hemesh.HEM_Extrude.setDistances | ( | final int[] | distances | ) |
distances |
HEM_Extrude wblut.hemesh.HEM_Extrude.setFuse | ( | final boolean | b | ) |
Set fuse option: merges coplanar faces.
b | true, false |
HEM_Extrude wblut.hemesh.HEM_Extrude.setFuseAngle | ( | final double | a | ) |
Set threshold angle for fuse.
a | threshold angle |
HEM_Extrude wblut.hemesh.HEM_Extrude.setHardEdgeChamfer | ( | final double | c | ) |
Set hard edge chamfer distance
c |
HEM_Extrude wblut.hemesh.HEM_Extrude.setHardEdgeChamfer | ( | final WB_ScalarParameter | c | ) |
HEM_Extrude wblut.hemesh.HEM_Extrude.setPeak | ( | final boolean | b | ) |
Set peak option.
b | true, false |
HEM_Extrude wblut.hemesh.HEM_Extrude.setRelative | ( | final boolean | relative | ) |
Set chamfer mode.
relative | true/false |
References wblut.hemesh.HEM_Extrude.relative.
HEM_Extrude wblut.hemesh.HEM_Extrude.setThresholdAngle | ( | final double | a | ) |
Set threshold angle for hard edge.
a | threshold angle |
|
private |
Face centers.
|
private |
Vertex normals.
|
private |
Extrusion widths.
|
private |
Halfedge normals.
|
private |
Chamfer factor or distance.
|
private |
Extrusion distance.
|
private |
|
private |
|
private |
|
private |
Fuse coplanar faces.
|
private |
Limit angle for face fusion.
|
private |
|
private |
Hard edge chamfer distance.
|
private |
|
private |
Turn non-extrudable faces into spiked faces?.
|
private |
|
private |
Extrusion mode.
|
private |
Threshold angle for hard edges.
|
private |