The 3D ACIS® Modeler (ACIS) is Spatial’s prominent 3D solid modeling engine. 3D InterOp is a CAD data translation framework (Interoperability)
Component:Precise Hidden Line Removal V5
From DocR19
The Precise Hidden Line V5 Component (PHL V5), calculates hidden line data of the model based on eye and target locations. The data is stored on the model as attributes which specify start and stop visibility parameters on EDGEs. The component itself has no direct interface to display list technology.
PHL V5 also creates silhouette edges for non-planar faces and provides sets of classified PHL V5 segments for all regular edges and silhouette edges in an ACIS model. Bodies can be manifold, non-manifold, or open shelled. Wireframe data is accepted; however wires cannot occlude a solid body but can be occluded themselves. Self-intersecting bodies and sets of intersecting bodies are not supported; however no check is made for this condition.
PHL V5 analyzes the model from a particular viewpoint, based on eye and target positions, creating a line-segment representation of the model. For each segment, PHL V5 calculates parameter range values and assigns status and visibility information. The status information is either:
- Outer - A silhouette edge
- Inner - A true edge
The visibility information is one of the following:
- Visible - An edge that has no solid material or edges in front of it from the current perspective. For example, the front edges of a cube are visible.
- Hidden - An edge that is obscured by material in the current perspective. For example, in a slightly non-orthogonal view of a cube, portions of the rear edges are hidden.
- Occluded - An edge that is obscured by another edge. For example, in a 45-degree view of a cube, the rear vertical edge is occluded by the front vertical edge. When viewing a visible edge (solid line) overlaying an occluded edge (dashed line), the visual confusion is reduced by removing the occluded line.
- Smooth Visible - An edge that is visible and has the condition of being smooth. Edges are defined as being smooth when their adjacent surfaces meet tangentially.
- Smooth Hidden - An edge that is hidden and the condition of being smooth.
Hidden Line Data
Output of the PHL V5 programming interface is a linked list of PHLV5_EDGEs. Each of these edges contains pointers to modeling data, a pointer to a list of PHLV5_SEGMENTs and a pointer to a polyline representing the edge in 3D space. The polyline or the modeling data can be used to display the hidden line view in an end user application, however it is recommended that the polyline data be used as input to your display system. The modeling data can be queried by calling the PHLV5_EDGE::GetCurve member function of the PHLV5_EDGE but this causes a performance penalty when the edge is a silhouette line. The PHLV5_SEGMENT contains information about each section of the edge, including its visibility and parameter range data.
Note: The Scheme command phlv5:compute can be set to render the polyline data or the modeling curve returned from the PHLV5_EDGE. To render the polyline data set this global ACIS option to false (option:set "phlv5_render_curves" #f).
PHLV5_SEGMENTs, and attributes can be used to maintain persistence of the PHL V5 output. PHL V5 has the ability to store multiple lists or views of output data.
C++ APIs
Functional OptionsOptions for hidden line removal are supplied to APIs via the class phlv5_options. The options that can be modified include:
|
