Home

Precise Hidden Line Removal V5
[Model Visualization and Display]

Collaboration diagram for Precise Hidden Line Removal V5:
Declared at <ent_phlv5.hxx>. More...

Classes

class  phl_body_occurrence
 Defines a phl_body_occurrence. More...
class  PHLV5_EDGE
 Defines an PHLV5 edge. More...
class  PHLV5_OCC
 Defines an PHLV5 occurrence. More...
class  phlv5_options
 Specifies options for hidden line removal. More...
class  PHLV5_SEGMENT
 Defines an PHLV5 segment. More...

Defines

#define ENTITY_PHLV5_LEVEL   ( ENTITY_LEVEL + 1)
 This is a derived class of ENTITY.
#define PHLV5_EDGE_LEVEL   ( ENTITY_PHLV5_LEVEL + 1 )
 Derivation level.
#define PHLV5_OCC_LEVEL   ( ENTITY_PHLV5_LEVEL + 1 )
 Derivation level.
#define PHLV5_SEGMENT_LEVEL   ( ENTITY_PHLV5_LEVEL + 1)
 This is a derived class of ENTITY_PHLV5.
#define PORTMANTEAU(maj, min)   (100 * maj + min)
 The version in which store the modeling EDGE.

Enumerations

enum  Phlv5SegSta
 Specifies the status information. More...
enum  Phlv5SegVis
 Specifies the type of visibility. More...

Functions

outcome api_asm_model_phlv5_compute (asm_model *model, int token, SPAposition const eyepos, SPAposition const target, logical persp, ENTITY_LIST &edges, phlv5_options *phlv5_opts=NULL, AcisOptions *ao=NULL)
 Computes hidden line data for the given viewing parameters and assembly model.
outcome api_create_hatch_lines (FACE *in_face, const SPAunit_vector &hatchNormal, const double &spacing, const SPAposition &hatch_start_point, ENTITY_LIST &bodies, SPAposition const &eyepos, SPAposition const &target, const logical &persp, int &nHatchLines, SPAposition *&hatchLinePos, phlv5_options *phlv5_opts=NULL, AcisOptions *ao=NULL)
 Creates a list of endpoints (positions) of visible hatch lines for a given planar face.
outcome api_create_hatch_lines (FACE *in_face, SPAunit_vector hatchNormal, double spacing, SPAposition hatch_start_point, logical do_hlr, int &number_of_hatch_lines, SPAposition *&hatch_line_list, AcisOptions *ao=NULL)
 Creates a list of endpoints (positions) of hatch lines for a given planar face.
outcome api_initialize_hidden_line_removal ()
 Initializes the hidden line library.
outcome api_phlv5_clean (ENTITY_LIST const &bodies, int token, AcisOptions *ao=NULL)
 Removes PHLV5 attributes from a list of bodies.
outcome api_phlv5_compute (VOID_LIST const &phlv5_occ_list, int token, SPAposition const &eyepos, SPAposition const &target, logical persp, ENTITY_LIST &edges, phlv5_options *phlv5_opts=NULL, AcisOptions *ao=NULL)
 Computes hidden line data for the given viewing parameters and void list of occurrences.
outcome api_phlv5_compute (ENTITY_LIST const &bodies, int token, SPAposition const &eyepos, SPAposition const &target, logical persp, ENTITY_LIST &edges, phlv5_options *phlv5_opts=NULL, AcisOptions *ao=NULL)
 Computes hidden line data for the given viewing parameters and list of bodies.
outcome api_phlv5_retrieve (ENTITY_LIST const &bodies, int token, ENTITY_LIST &edges, PHLV5_CAMERA *&camera, AcisOptions *ao=NULL)
 Retrieves data stored in PHLV5 attributes with a matching view token and returns it as an ENTITY_LIST of PHLV5_EDGEs.
outcome api_terminate_hidden_line_removal ()
 Terminates the hidden line library.

Detailed Description

Declared at <ent_phlv5.hxx>.

Declared at <phlv5_seg.hxx>.

Declared at <phlv5_opts.hxx>.

Declared at <phlv5_occ.hxx>.

Declared at <phlv5_edge.hxx>.


Define Documentation

#define ENTITY_PHLV5_LEVEL   ( ENTITY_LEVEL + 1)

This is a derived class of ENTITY.

#define PHLV5_EDGE_LEVEL   ( ENTITY_PHLV5_LEVEL + 1 )

Derivation level.

#define PHLV5_OCC_LEVEL   ( ENTITY_PHLV5_LEVEL + 1 )

Derivation level.

#define PHLV5_SEGMENT_LEVEL   ( ENTITY_PHLV5_LEVEL + 1)

This is a derived class of ENTITY_PHLV5.

#define PORTMANTEAU ( maj,
min   )     (100 * maj + min)

The version in which store the modeling EDGE.


Enumeration Type Documentation

Specifies the status information.

Parameters:
PHLV5_SEGMENT_OUT outer segment (silhouette).
PHLV5_SEGMENT_INN inner segment.

include <phlv5_seg.hxx>

Specifies the type of visibility.

Parameters:
PHLV5_SEGMENT_VIS visible segment.
PHLV5_SEGMENT_HID hidden segment.
PHLV5_SEGMENT_OCC occluded segment.
PHLV5_SEGMENT_UND undefined visibility.
PHLV5_SEGMENT_VIS_SMOOTH smooth but calculated as visible.
PHLV5_SEGMENT_HID_SMOOTH smooth but calculated as hidden.

include <phlv5_seg.hxx>


Function Documentation

outcome api_asm_model_phlv5_compute ( asm_model model,
int  token,
SPAposition const   eyepos,
SPAposition const   target,
logical  persp,
ENTITY_LIST edges,
phlv5_options phlv5_opts = NULL,
AcisOptions ao = NULL 
)

Computes hidden line data for the given viewing parameters and assembly model.



Role: If the view token is nonzero, the data is stored on the model as attributes and identified by token. Make token zero if you do not wish to store the view. Existing attributes identified by the same token are replaced. If the perspective projection flag persp is TRUE, data is calculated for display in a perspective projection; otherwise, calculations are done for a parallel projection.

The options argument is of type phlv5_options and contains options for the hidden line removal algorithm.

Note All data returned is allocated with new.It is the user's responsibility to call lose for all the entities in the edge list when they are no longer needed.

Errors: The distance between eyepos and target is less than SPAresabs.

Effect: Changes model

Journal: Available

Parameters:
model assembly model.
token view token.
eyepos eye position.
target target position.
persp perspective projection flag.
edges output list of edges.
phlv5_opts option class.
ao acis options.

include <phlv5_api.hxx>

outcome api_create_hatch_lines ( FACE in_face,
const SPAunit_vector hatchNormal,
const double &  spacing,
const SPAposition hatch_start_point,
ENTITY_LIST bodies,
SPAposition const &  eyepos,
SPAposition const &  target,
const logical &  persp,
int &  nHatchLines,
SPAposition *&  hatchLinePos,
phlv5_options phlv5_opts = NULL,
AcisOptions ao = NULL 
)

Creates a list of endpoints (positions) of visible hatch lines for a given planar face.



Role: Creates list of visible hatch line positions when provided with a planar face, a direction normal to the hatch lines, spacing between the lines, a starting point, and a list of bodies. If the input face is not a plane, hatch lines are not created. Also, if the starting point does not lie on the input face or if the input hatch normal is not parallel to the face, no hatching is done. Appropriate error messages are thrown for each case.

Limitations: Hatch lines are not created for the following instances:

  • If the input face is not planar, or
  • If hatch normal is not parallel to the input face, or
  • If the hatch starting point does not lie on the input face.


Errors:

Effect: Returns a list of visible hatch line positions (in the model space) and the number of visible hatch lines.

Journal: Available

Parameters:
in_face Specifies the input face that needs to be hatched.
hatchNormal Specifies the direction perpendicular to hatch lines (has to be parallel to the input face).
spacing Specifies the spacing between hatch lines.
hatch_start_point Specifies the start point for creating hatch lines (must lie on the input face).
bodies Specifies the list of bodies to be used for determining visibility of the hatch lines.
eyepos Specifies the view eye position.
target Specifies the view target position.
persp Indicates the logical for perspective view.
nHatchLines Returns the number of visible hatch lines.
hatchLinePos Returns list of visible hatch line positions.
phlv5_opts Specifies PHL V5 options.
ao Specifies ACIS options.

include <phlv5_api.hxx>

outcome api_create_hatch_lines ( FACE in_face,
SPAunit_vector  hatchNormal,
double  spacing,
SPAposition  hatch_start_point,
logical  do_hlr,
int &  number_of_hatch_lines,
SPAposition *&  hatch_line_list,
AcisOptions ao = NULL 
)

Creates a list of endpoints (positions) of hatch lines for a given planar face.



Role: Creates list of hatch line positions when provided with a planar face, a direction normal to the hatch lines, spacing between the lines, and a starting point. If the input face is not a plane, hatch lines are not created. Also, if the starting point does not lie on the input face or if the input hatch normal is not parallel to the face, no hatching is done. Appropriate error messages are thrown for each case.

Limitations: Hatch lines are not created for the following instances:

  • If the input face is not planar, or
  • If hatch normal is not parallel to the input face, or
  • If the hatch starting point does not lie on the input face.


Errors:

Effect: Returns a list of hatch line positions (in the model space) and the number of hatch lines.

Journal: Available

Parameters:
in_face Specifies the input face that needs to be hatched.
hatchNormal Specifies the direction perpendicular to hatch lines (has to be parallel to input face).
spacing Specifies the spacing between hatch lines.
hatch_start_point Specifies the start point for creating hatch lines (must lie on the input face).
do_hlr Indicates the logical parameter is not being used.
number_of_hatch_lines Returns the number of hatch lines.
hatch_line_list Returns the list of hatch line positions.
ao Specifies ACIS options such as versioning and journaling.

include <phlv5_api.hxx>

outcome api_initialize_hidden_line_removal (  ) 

Initializes the hidden line library.



Effect: System routine

Journal: Not Available

include <phlv5_api.hxx>

outcome api_phlv5_clean ( ENTITY_LIST const &  bodies,
int  token,
AcisOptions ao = NULL 
)

Removes PHLV5 attributes from a list of bodies.



Role: This API removes and deletes any PHLV5 attributes with a matching view token from the bodies list.

Effect: Changes model

Journal: Available

Parameters:
bodies body list.
token view token.
ao acis options.

include <phlv5_api.hxx>

outcome api_phlv5_compute ( VOID_LIST const &  phlv5_occ_list,
int  token,
SPAposition const &  eyepos,
SPAposition const &  target,
logical  persp,
ENTITY_LIST edges,
phlv5_options phlv5_opts = NULL,
AcisOptions ao = NULL 
)

Computes hidden line data for the given viewing parameters and void list of occurrences.



Role: If the view token is nonzero, the data is stored on the model as attributes and identified by token. Make token zero if you do not wish to store the view. Existing attributes identified by the same token are replaced. If the perspective projection flag persp is TRUE, data is calculated for display in a perspective projection; otherwise, calculations are done for a parallel projection.

The options argument is of type phlv5_options and contains options for the hidden line removal algorithm.

Note All data returned is allocated with new.It is the user's responsibility to call lose for all the entities in the edge list when they are no longer needed.

Errors: The distance between eyepos and target is less than SPAresabs.

Effect: Changes model

Journal: Available

Parameters:
phlv5_occ_list void list of occurrences of type phl_body_occurrence.
token  view token.
eyepos  eye position.
target  target position.
persp  perspective projection flag.
edges  output list of edges.
phlv5_opts  option class.
ao  acis options.

include <phlv5_api.hxx>

outcome api_phlv5_compute ( ENTITY_LIST const &  bodies,
int  token,
SPAposition const &  eyepos,
SPAposition const &  target,
logical  persp,
ENTITY_LIST edges,
phlv5_options phlv5_opts = NULL,
AcisOptions ao = NULL 
)

Computes hidden line data for the given viewing parameters and list of bodies.



Role: If the view token is nonzero, the data is stored on the model as attributes and identified by token. Make token zero if you do not wish to store the view. Existing attributes identified by the same token are replaced. If the perspective projection flag persp is TRUE, data is calculated for display in a perspective projection; otherwise, calculations are done for a parallel projection.

The options argument is of type phlv5_options and contains options for the hidden line removal algorithm.

Note All data returned is allocated with new.It is the user's responsibility to call lose for all the entities in the edge list when they are no longer needed.

Errors: The distance between eyepos and target is less than SPAresabs.

Effect: Changes model

Journal: Available

Parameters:
bodies body list.
token view token.
eyepos eye position.
target target position.
persp perspective projection flag.
edges output list of edges.
phlv5_opts option class.
ao acis options.

include <phlv5_api.hxx>

outcome api_phlv5_retrieve ( ENTITY_LIST const &  bodies,
int  token,
ENTITY_LIST edges,
PHLV5_CAMERA *&  camera,
AcisOptions ao = NULL 
)

Retrieves data stored in PHLV5 attributes with a matching view token and returns it as an ENTITY_LIST of PHLV5_EDGEs.



Role: Retrieves data stored in PHLV5 attributes with a matching view token and returns it as an ENTITY_LIST of PHLV5_EDGEs. The attributes are placed on the body by api_phlv5_compute when the api_phlv5_compute's token is set to TRUE.

This API also returns the camera definition.

Note All data returned is a copy of the data stored in attributes on the body. It is the user's responsibility to call lose for the returned camera and all entities in the list, when they are no longer needed.

Errors: The bodies in the list did not have matching PHLV5_CAMERAs.

Effect: Changes model

Journal: Available

Parameters:
bodies body list.
token view token.
edges edge list.
camera camera definition.
ao acis options.

include <phlv5_api.hxx>

outcome api_terminate_hidden_line_removal (  ) 

Terminates the hidden line library.



Effect: System routine

Journal: Not Available

include <phlv5_api.hxx>