Begin_Shell_Selection

Functions

void Begin_Shell_Selection (void)
 Begins a mode of operation whereby calls to Compute_Selection_By_Shell cache intermediate data in order to speed up successive computations. More...
 
void End_Shell_Selection (void)
 Terminates the shell selection sequence and frees any involved memory.. More...
 

Detailed Description

Function Documentation

◆ Begin_Shell_Selection()

void Begin_Shell_Selection ( void  )

Begins a mode of operation whereby calls to Compute_Selection_By_Shell cache intermediate data in order to speed up successive computations.

DETAILS

In calling Begin_Shell_Selection() , the user is making a promise not to make any important changes to the "environment" segment tree that is used during Compute_Selection_By_Shell (see Compute_Selection() ). In particular, the user must not move, edit, or delete geometry. Changes to most attributes (e.g. colors, textures, normals) are fine, but not to those which impact the world-space locations of the objects in the "environment" segment tree (like, for example, Set_Modelling_Matrix and/or Scale_Object could). The consequences of violating these restrictions range from potentially incorrect answers for moves and edits, to a crash if pieces of the environment have been removed. On the positive side, however, the performance benefits of not having to tear down and rebuild the spatial data structures on every successive calculation can be significant.

NOTES

In addition to bringing the user out fo the optimized shell selection mode, End_Shell_Selection() frees all associated memory. This can be time-consuming, since collision detection by nature is memory-intensive. Remember, though, that memory is freed back into HOOPS' memory allocation pool, not the system's.
Performance benefits only apply if the same start segment is used for multiple calls to Compute_Selection_By_Shell.

RESTRICTIONS

See also
Compute_Selection_By_Shell, Compute_Selection_By_Ray

◆ End_Shell_Selection()

void End_Shell_Selection ( void  )

Terminates the shell selection sequence and frees any involved memory..

DETAILS

No additional details. See Begin_Shell_Selection()