| Modifier and Type | Class and Description |
|---|---|
| private class | PolyhedronsSet.
Visitor computing geometrical properties. |
| private static class | PolyhedronsSet.
3D rotation as a Transform. |
| private static class | PolyhedronsSet.
3D translation as a transform. |
| Modifier and Type | Field and Description |
|---|---|
| private static final double | DEFAULT_TOLERANCE
Default value for tolerance. |
| Access | Constructor and Description |
|---|---|
| public | PolyhedronsSet(final double
tolerance below which points are considered identical tolerance)Build a polyhedrons set representing the whole real line. |
| public | PolyhedronsSet(final BSPTree<Euclidean3D>
inside/outside BSP tree representing the region tree, final double tolerance below which points are considered identical tolerance)Build a polyhedrons set from a BSP tree. |
| public | PolyhedronsSet(final Collection<SubHyperplane<Euclidean3D>>
collection of boundary elements, as a
collection of boundary, final double SubHyperplane objectstolerance below which points are considered identical tolerance)Build a polyhedrons set from a Boundary REPresentation (B-rep) specified by sub-hyperplanes. |
| public | PolyhedronsSet(final List<Vector3D>
list of polyhedrons set vertices vertices, final List<int[]> list of facets, as vertices indices in the vertices list facets, final double tolerance below which points are considered identical tolerance)Build a polyhedrons set from a Boundary REPresentation (B-rep) specified by connected vertices. |
| public | PolyhedronsSet(final double
low bound along the x direction xMin, final double high bound along the x direction xMax, final double low bound along the y direction yMin, final double high bound along the y direction yMax, final double low bound along the z direction zMin, final double high bound along the z direction zMax, final double tolerance below which points are considered identical tolerance)Build a parallellepipedic box. |
| public | PolyhedronsSet()
Deprecated
as of 3.3, replaced with
PolyhedronsSet(double)
Build a polyhedrons set representing the whole real line. |
| public | PolyhedronsSet(final BSPTree<Euclidean3D>
inside/outside BSP tree representing the region tree)
Deprecated
as of 3.3, replaced with
PolyhedronsSet(BSPTree, double)
Build a polyhedrons set from a BSP tree. |
| public | PolyhedronsSet(final Collection<SubHyperplane<Euclidean3D>>
collection of boundary elements, as a
collection of boundary)SubHyperplane objects
Deprecated
as of 3.3, replaced with
PolyhedronsSet(Collection, double)
Build a polyhedrons set from a Boundary REPresentation (B-rep). |
| public | PolyhedronsSet(final double
low bound along the x direction xMin, final double high bound along the x direction xMax, final double low bound along the y direction yMin, final double high bound along the y direction yMax, final double low bound along the z direction zMin, final double high bound along the z direction zMax)
Deprecated
as of 3.3, replaced with
PolyhedronsSet(double, double,
double, double, double, double, double)
Build a parallellepipedic box. |
| Modifier and Type | Method and Description |
|---|---|
| private SubHyperplane | Returns: the boundary facet this points belongs to (or null if it does not belong to any boundary facet)point to check point, final BSPTree<Euclidean3D> node containing the boundary facet to check node)Check if a point belongs to the boundary part of a node. |
| private static BSPTree | Returns: boundary treelow bound along the x direction xMin, final double high bound along the x direction xMax, final double low bound along the y direction yMin, final double high bound along the y direction yMax, final double low bound along the z direction zMin, final double high bound along the z direction zMax, final double tolerance below which points are considered identical tolerance)Build a parallellepipedic box boundary. |
| private static List | Returns: boundary as a list of sub-hyperplaneslist of polyhedrons set vertices vertices, final List<int[]> list of facets, as vertices indices in the vertices list facets, final double tolerance below which points are considered identical tolerance)Build boundary from vertices and facets. |
| public PolyhedronsSet | buildNew(final BSPTree<Euclidean3D>
inside/outside BSP tree representing the new region tree)Implements abstract org. Implements org. Build a region using the instance as a prototype. |
| protected void | computeGeometricalProperties()
Implements abstract org. Compute some geometrical properties. |
| private static int[][] | Returns: references array such that r[v][k] = f for some k if facet f contains vertex vlist of polyhedrons set vertices vertices, final List<int[]> list of facets, as vertices indices in the vertices list facets)Find the facets that reference each edges. |
| public SubHyperplane | Returns: the first sub-hyperplane crossed by the line after the given point, or null if the line does not intersect any sub-hyperplanestart point of the part of the line considered point, final Line line to consider (contains point) line)Get the first sub-hyperplane crossed by a semi-infinite line. |
| private SubHyperplane | Returns: the first sub-hyperplane crossed by the line after the given point, or null if the line does not intersect any sub-hyperplanecurrent node node, final Vector3D start point of the part of the line considered point, final Line line to consider (contains point) line)Get the first sub-hyperplane crossed by a semi-infinite line. |
| public PolyhedronsSet | |
| private static int[][] | Returns: indices of vertices that follow vertex v in some facet (the array may contain extra entries at the end, set to negative indices)list of polyhedrons set vertices vertices, final List<int[]> list of facets, as vertices indices in the vertices list facets, final int[][] facets references array references)Find the successors of all vertices among all facets they belong to. |
| public PolyhedronsSet |
| DEFAULT_TOLERANCE | back to summary |
|---|---|
| private static final double DEFAULT_TOLERANCE Default value for tolerance. | |
| PolyhedronsSet | back to summary |
|---|---|
| public PolyhedronsSet(final double tolerance) Build a polyhedrons set representing the whole real line.
| |
| PolyhedronsSet | back to summary |
|---|---|
| public PolyhedronsSet(final BSPTree<Euclidean3D> tree, final double tolerance) Build a polyhedrons set from a BSP tree. The leaf nodes of the BSP tree must have a
This constructor is aimed at expert use, as building the tree may
be a difficult task. It is not intended for general use and for
performances reasons does not check thoroughly its input, as this would
require walking the full tree each time. Failing to provide a tree with
the proper attributes, will therefore generate problems like
| |
| PolyhedronsSet | back to summary |
|---|---|
| public PolyhedronsSet(final Collection<SubHyperplane<Euclidean3D>> boundary, final double tolerance) Build a polyhedrons set from a Boundary REPresentation (B-rep) specified by sub-hyperplanes. The boundary is provided as a collection of The boundary elements can be in any order, and can form
several non-connected sets (like for example polyhedrons with holes
or a set of disjoint polyhedrons considered as a whole). In
fact, the elements do not even need to be connected together
(their topological connections are not used here). However, if the
boundary does not really separate an inside open from an outside
open (open having here its topological meaning), then subsequent
calls to the If the boundary is empty, the region will represent the whole space.
| |
| PolyhedronsSet | back to summary |
|---|---|
| public PolyhedronsSet(final List<Vector3D> vertices, final List<int[]> facets, final double tolerance) Build a polyhedrons set from a Boundary REPresentation (B-rep) specified by connected vertices. The boundary is provided as a list of vertices and a list of facets. Each facet is specified as an integer array containing the arrays vertices indices in the vertices list. Each facet normal is oriented by right hand rule to the facet vertices list. Some basic sanity checks are performed but not everything is thoroughly assessed, so it remains under caller responsibility to ensure the vertices and facets are consistent and properly define a polyhedrons set.
| |
| PolyhedronsSet | back to summary |
|---|---|
| public PolyhedronsSet(final double xMin, final double xMax, final double yMin, final double yMax, final double zMin, final double zMax, final double tolerance) Build a parallellepipedic box.
| |
| PolyhedronsSet | back to summary |
|---|---|
| public PolyhedronsSet()
Deprecated as of 3.3, replaced with Build a polyhedrons set representing the whole real line.
| |
| PolyhedronsSet | back to summary |
|---|---|
| public PolyhedronsSet(final BSPTree<Euclidean3D> tree)
Deprecated as of 3.3, replaced with Build a polyhedrons set from a BSP tree. The leaf nodes of the BSP tree must have a
| |
| PolyhedronsSet | back to summary |
|---|---|
| public PolyhedronsSet(final Collection<SubHyperplane<Euclidean3D>> boundary)
Deprecated as of 3.3, replaced with Build a polyhedrons set from a Boundary REPresentation (B-rep). The boundary is provided as a collection of The boundary elements can be in any order, and can form
several non-connected sets (like for example polyhedrons with holes
or a set of disjoint polyhedrons considered as a whole). In
fact, the elements do not even need to be connected together
(their topological connections are not used here). However, if the
boundary does not really separate an inside open from an outside
open (open having here its topological meaning), then subsequent
calls to the If the boundary is empty, the region will represent the whole space.
| |
| PolyhedronsSet | back to summary |
|---|---|
| public PolyhedronsSet(final double xMin, final double xMax, final double yMin, final double yMax, final double zMin, final double zMax)
Deprecated as of 3.3, replaced with Build a parallellepipedic box.
| |
| boundaryFacet | back to summary |
|---|---|
| private SubHyperplane Check if a point belongs to the boundary part of a node.
| |
| buildBoundary | back to summary |
|---|---|
| private static BSPTree Build a parallellepipedic box boundary.
| |
| buildBoundary | back to summary |
|---|---|
| private static List Build boundary from vertices and facets.
| |
| buildNew | back to summary |
|---|---|
| public PolyhedronsSet buildNew(final BSPTree<Euclidean3D> tree) Implements abstract org. Implements org. Doc from org. Build a region using the instance as a prototype. This method allow to create new instances without knowing exactly the type of the region. It is an application of the prototype design pattern. The leaf nodes of the BSP tree must have a
| |
| computeGeometricalProperties | back to summary |
|---|---|
| protected void computeGeometricalProperties() Implements abstract org. Doc from org. Compute some geometrical properties. The properties to compute are the barycenter and the size.
| |
| findReferences | back to summary |
|---|---|
| private static int[][] findReferences(final List<Vector3D> vertices, final List<int[]> facets) Find the facets that reference each edges.
| |
| firstIntersection | back to summary |
|---|---|
| public SubHyperplane Get the first sub-hyperplane crossed by a semi-infinite line.
| |
| recurseFirstIntersection | back to summary |
|---|---|
| private SubHyperplane Get the first sub-hyperplane crossed by a semi-infinite line.
| |
| rotate | back to summary |
|---|---|
| public PolyhedronsSet rotate(final Vector3D center, final Rotation rotation) Rotate the region around the specified point. The instance is not modified, a new instance is created.
| |
| successors | back to summary |
|---|---|
| private static int[][] successors(final List<Vector3D> vertices, final List<int[]> facets, final int[][] references) Find the successors of all vertices among all facets they belong to.
| |
| translate | back to summary |
|---|---|
| public PolyhedronsSet translate(final Vector3D translation) Translate the region by the specified amount. The instance is not modified, a new instance is created.
| |
| Access | Constructor and Description |
|---|---|
| pack-priv |
| Modifier and Type | Method and Description |
|---|---|
| private void | addContribution(final SubHyperplane<Euclidean3D>
boundary facet facet, final boolean if true, the facet has the inside on its plus side reversed)Add he contribution of a boundary facet. |
| public void | visitInternalNode(final BSPTree<Euclidean3D>
BSP node guaranteed to have a non null cut sub-hyperplane node)Implements org. Visit a BSP tree node node having a non-null sub-hyperplane. |
| public void | visitLeafNode(final BSPTree<Euclidean3D>
leaf BSP node having a null sub-hyperplane node)Implements org. Visit a leaf BSP tree node node having a null sub-hyperplane. |
| public BSPTreeVisitor. | visitOrder(final BSPTree<Euclidean3D>
BSP node guaranteed to have a non null cut sub-hyperplane node)Implements org. Determine the visit order for this node. |
| FacetsContributionVisitor | back to summary |
|---|---|
| pack-priv FacetsContributionVisitor() Simple constructor. | |
| addContribution | back to summary |
|---|---|
| private void addContribution(final SubHyperplane<Euclidean3D> facet, final boolean reversed) Add he contribution of a boundary facet.
| |
| visitInternalNode | back to summary |
|---|---|
| public void visitInternalNode(final BSPTree<Euclidean3D> node) Implements org. Doc from org. Visit a BSP tree node node having a non-null sub-hyperplane. It is guaranteed that this method will be called after
| |
| visitLeafNode | back to summary |
|---|---|
| public void visitLeafNode(final BSPTree<Euclidean3D> node) Implements org. Doc from org. Visit a leaf BSP tree node node having a null sub-hyperplane.
| |
| visitOrder | back to summary |
|---|---|
| public BSPTreeVisitor. Implements org. Doc from org. Determine the visit order for this node. Before attempting to visit an internal node, this method is
called to determine the desired ordering of the visit. It is
guaranteed that this method will be called before
| |
| Modifier and Type | Field and Description |
|---|---|
| private Plane | cachedOriginal
Cached original hyperplane. |
| private Transform | cachedTransform
Cached 2D transform valid inside the cached original hyperplane. |
| private Vector3D | center
Center point of the rotation. |
| private Rotation | rotation
Vectorial rotation. |
| Access | Constructor and Description |
|---|---|
| pack-priv | RotationTransform(final Vector3D
center point of the rotation center, final Rotation vectorial rotation rotation)Build a rotation transform. |
| Modifier and Type | Method and Description |
|---|---|
| public Vector3D | apply(final Point<Euclidean3D>
point to transform point)Implements org. Transform a point of a space. |
| public Plane | apply(final Hyperplane<Euclidean3D>
hyperplane to transform hyperplane)Implements org. Transform an hyperplane of a space. |
| public SubHyperplane | apply(final SubHyperplane<Euclidean2D>
sub-hyperplane to transform sub, final Hyperplane<Euclidean3D> hyperplane in which the sub-hyperplane is
defined (this is the original hyperplane, the transform has
not been applied to it) original, final Hyperplane<Euclidean3D> hyperplane in which the sub-hyperplane is
defined (this is the transformed hyperplane, the transform
has been applied to it) transformed)Implements org. Transform a sub-hyperplane embedded in an hyperplane. |
| cachedOriginal | back to summary |
|---|---|
| private Plane cachedOriginal Cached original hyperplane. | |
| cachedTransform | back to summary |
|---|---|
| private Transform<Euclidean2D, Euclidean1D> cachedTransform Cached 2D transform valid inside the cached original hyperplane. | |
| center | back to summary |
|---|---|
| private Vector3D center Center point of the rotation. | |
| rotation | back to summary |
|---|---|
| private Rotation rotation Vectorial rotation. | |
| RotationTransform | back to summary |
|---|---|
| pack-priv RotationTransform(final Vector3D center, final Rotation rotation) Build a rotation transform. | |
| apply | back to summary |
|---|---|
| public Vector3D apply(final Point<Euclidean3D> point) Implements org. Doc from org. Transform a point of a space.
| |
| apply | back to summary |
|---|---|
| public Plane apply(final Hyperplane<Euclidean3D> hyperplane) Implements org. Doc from org. Transform an hyperplane of a space.
| |
| apply | back to summary |
|---|---|
| public SubHyperplane Implements org. Doc from org. Transform a sub-hyperplane embedded in an hyperplane.
| |
| Modifier and Type | Field and Description |
|---|---|
| private Plane | cachedOriginal
Cached original hyperplane. |
| private Transform | cachedTransform
Cached 2D transform valid inside the cached original hyperplane. |
| private Vector3D | translation
Translation vector. |
| Access | Constructor and Description |
|---|---|
| pack-priv |
| Modifier and Type | Method and Description |
|---|---|
| public Vector3D | apply(final Point<Euclidean3D>
point to transform point)Implements org. Transform a point of a space. |
| public Plane | apply(final Hyperplane<Euclidean3D>
hyperplane to transform hyperplane)Implements org. Transform an hyperplane of a space. |
| public SubHyperplane | apply(final SubHyperplane<Euclidean2D>
sub-hyperplane to transform sub, final Hyperplane<Euclidean3D> hyperplane in which the sub-hyperplane is
defined (this is the original hyperplane, the transform has
not been applied to it) original, final Hyperplane<Euclidean3D> hyperplane in which the sub-hyperplane is
defined (this is the transformed hyperplane, the transform
has been applied to it) transformed)Implements org. Transform a sub-hyperplane embedded in an hyperplane. |
| cachedOriginal | back to summary |
|---|---|
| private Plane cachedOriginal Cached original hyperplane. | |
| cachedTransform | back to summary |
|---|---|
| private Transform<Euclidean2D, Euclidean1D> cachedTransform Cached 2D transform valid inside the cached original hyperplane. | |
| translation | back to summary |
|---|---|
| private Vector3D translation Translation vector. | |
| TranslationTransform | back to summary |
|---|---|
| pack-priv TranslationTransform(final Vector3D translation) Build a translation transform.
| |
| apply | back to summary |
|---|---|
| public Vector3D apply(final Point<Euclidean3D> point) Implements org. Doc from org. Transform a point of a space.
| |
| apply | back to summary |
|---|---|
| public Plane apply(final Hyperplane<Euclidean3D> hyperplane) Implements org. Doc from org. Transform an hyperplane of a space.
| |
| apply | back to summary |
|---|---|
| public SubHyperplane Implements org. Doc from org. Transform a sub-hyperplane embedded in an hyperplane.
| |