#include <ihloutp.hxx>


Public Member Functions | |
| virtual void | add_seg_to_list (IHL_SEGMENT *seg) |
| Adds the segment to the segment list. | |
| virtual void | announce_2D_segment (double *lseg, double *l3seg, double *lseguv, double *lsegt, void *tag, logical fVisible, double tpar, logical onsil, IHL_SEGMENT_JOIN_TYPE join) |
| Announces to the draw routine that a 2D segment needs to be drawn. | |
| virtual void | announce_3D_segment (double *lseg, void *tag, logical fVisible) |
| Announces to the draw routine that a 3D segment needs to be drawn. | |
| virtual void | announce_next_object () |
| Announces to the draw routine that IHL will compute line segments for the next object in the list of bodies (meshes). | |
| virtual IHL_SEGMENT * | get_cur_seg () |
| Gets the current segment which is newly allocated. | |
| IHL_OUTPUT_MANAGER () | |
| C++ allocation constructor requests memory for this object but does not populate it. | |
| virtual logical | need_3D_coordinates () |
| Overrides this method. | |
| virtual logical | need_hidden_segments () |
| Overrides this method. | |
| virtual logical | need_interior_segments () |
| Overrides this method. | |
| virtual logical | need_no_hidden_calc () |
| Overrides this method. | |
| virtual void | set_cur_seg (IHL_SEGMENT *seg) |
| Sets the current segment which is newly allocated. | |
| ~IHL_OUTPUT_MANAGER () | |
C++ destructor for IHL_OUTPUT_MANAGER which deallocates memory. | |
Role: By deriving a child of this class, the application can control output from IHL. (For example, the IHL_STDOUT_MANAGER class is a child of IHL_OUTPUT_MANAGER, whose methods have been written to define how output is processed in the default case where the application has not yet specified any output manager.)
The application controls what happens to the hidden line output by overriding the announce_2D_segment, announce_3D_segment, and announce_next_object methods.
The application activates a particular output manager by calling api_ihl_set_output_manager and passing it an instance of the IHL_OUTPUT_MANAGER class.
The application specifies the type of hidden line output needed by calling the need_3D_coordinates, need_hidden_segments, and need_interior_segments methods.
Hidden line output is then generated by calling the api_ihl_compute_from_meshes function and the resulting output is handled by the active output manager.
The IHL_OUTPUT_MANAGER class works similarly to the output manager of the faceter.
| IHL_OUTPUT_MANAGER::IHL_OUTPUT_MANAGER | ( | ) | [inline] |
C++ allocation constructor requests memory for this object but does not populate it.
| IHL_OUTPUT_MANAGER::~IHL_OUTPUT_MANAGER | ( | ) | [inline] |
C++ destructor for IHL_OUTPUT_MANAGER which deallocates memory.
| virtual void IHL_OUTPUT_MANAGER::add_seg_to_list | ( | IHL_SEGMENT * | seg | ) | [inline, virtual] |
Adds the segment to the segment list.
| seg | pointer to segment. |
Reimplemented in IHL_STDOUT_MANAGER.
| virtual void IHL_OUTPUT_MANAGER::announce_2D_segment | ( | double * | lseg, | |
| double * | l3seg, | |||
| double * | lseguv, | |||
| double * | lsegt, | |||
| void * | tag, | |||
| logical | fVisible, | |||
| double | tpar, | |||
| logical | onsil, | |||
| IHL_SEGMENT_JOIN_TYPE | join | |||
| ) | [virtual] |
Announces to the draw routine that a 2D segment needs to be drawn.
| lseg | array of 4 doubles with start/end 2D-coordinates. | |
| l3seg | array of 6 doubles with start/end 3D-coordinates. | |
| lseguv | array of 4 doubles with start/end uv-coordinates. | |
| lsegt | array of 2 doubles with start/end tpars. | |
| tag | void* from the corresponding PE_EDGE. | |
| fVisible | TRUE if segment is visible. | |
| tpar | tpar from begin to end of segment(silh point). | |
| onsil | if segment on silhouette edge. | |
| join | how to connect to cur_seg. |
Reimplemented in IHL_STDOUT_MANAGER.
| virtual void IHL_OUTPUT_MANAGER::announce_3D_segment | ( | double * | lseg, | |
| void * | tag, | |||
| logical | fVisible | |||
| ) | [virtual] |
Announces to the draw routine that a 3D segment needs to be drawn.
| lseg | array of 6 doubles with start/end. | |
| tag | void* from the corresponding PE_EDGE. | |
| fVisible | TRUE if segment is visible. |
Reimplemented in IHL_STDOUT_MANAGER.
| virtual void IHL_OUTPUT_MANAGER::announce_next_object | ( | ) | [virtual] |
Announces to the draw routine that IHL will compute line segments for the next object in the list of bodies (meshes).
Role: It is called once for each body/mesh but it is the responsibility of the derived class to keep track of the bodies.
Reimplemented in IHL_STDOUT_MANAGER.
| virtual IHL_SEGMENT* IHL_OUTPUT_MANAGER::get_cur_seg | ( | ) | [inline, virtual] |
| virtual logical IHL_OUTPUT_MANAGER::need_3D_coordinates | ( | ) | [virtual] |
Overrides this method.
Role: Returns TRUE if you wish IHL to output 3D coordinates in the line segments rather than 2D. The default is FALSE.
Reimplemented in IHL_STDOUT_MANAGER.
| virtual logical IHL_OUTPUT_MANAGER::need_hidden_segments | ( | ) | [virtual] |
Overrides this method.
Role: Returns TRUE if you wish IHL to output visible and nonvisible line segments. The default is FALSE.
Reimplemented in IHL_STDOUT_MANAGER.
| virtual logical IHL_OUTPUT_MANAGER::need_interior_segments | ( | ) | [virtual] |
Overrides this method.
Role: Returns TRUE if you wish IHL to output line segments interior to a face. The default is FALSE.
Reimplemented in IHL_STDOUT_MANAGER.
| virtual logical IHL_OUTPUT_MANAGER::need_no_hidden_calc | ( | ) | [virtual] |
Overrides this method.
Role: Returns TRUE if you wish IHL to not calculate hidden line and only output silhouette segments. The default is FALSE.
Reimplemented in IHL_STDOUT_MANAGER.
| virtual void IHL_OUTPUT_MANAGER::set_cur_seg | ( | IHL_SEGMENT * | seg | ) | [inline, virtual] |
Sets the current segment which is newly allocated.
| seg | pointer to segment. |
Reimplemented in IHL_STDOUT_MANAGER.