Component:Precise Hidden Line Removal V5

From DocR22

(Redirected from PHL V5)
Jump to: navigation, search
All Precise Hidden Line Removal V5 Articles | C++ APIs | Scheme Extensions | Error Codes
edit  

Precise Hidden Line Removal V5 Component

Phlv5 example animation.gif

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. Wire-frame 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, but no checks are made for these conditions.


edit  

Precise Hidden Line Removal V5 Topics


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:

ACIS phlv5 crankcase wireframe.PNG
ACIS phlv5 crankcase HLR.PNG
  • 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, we recommend 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.

Occurrences

PHL V5 can display multiple occurrences of the same body, with a unique transform associated with each occurrence of the body. This is done by associating a list of transforms with a body. The number of transforms in the list dictates the number of occurrences. Occurrences are sometimes referred to as "instances."

Notes

PHL V5 will split full periodic surfaces in two, changing a full cylindrical face into two half-cylindrical faces.

PHL V5 will work on multiple bodies, as long as they do not intersect.

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.



edit  

Precise Hidden Line Removal V5 Interface


C++ API Functions

Functional Options

Options for hidden line removal are supplied to APIs via the class phlv5_options.

The options that can be modified include:

  • Surface approximation
  • Resolution
  • Sag resolution
  • Smooth line cosine
  • Self-calibrate resolutions
ACIS phlv5 example 2 wireframe.PNG
ACIS phlv5 example 2 HLR.PNG

Scheme Extensions

For a complete enumeration of all PHL V5 Scheme extensions, refer to Scheme Extensions.

Error Codes

Upon failure of a Precise Hidden Line Removal V5 API function, an error code will be returned that explains the failure and suggests possible actions for correction. For a complete enumeration of all PHL V5 error codes, refer to Precise Hidden Line Removal V5 Error Codes.



edit  

Examples

edit  

See Also

Personal tools