#include <sglUnScaleRange.hpp>
Inheritance diagram for sglUnScaleRange::
Public Methods | |
sglUnScaleRange () | |
virtual | ~sglUnScaleRange () |
void | setScaleParameters (float reference_size, unsigned int min_pixel_size, unsigned int max_pixel_size) |
unsigned int | getMinPixelSize () const |
unsigned int | getMaxPixelSize () const |
float | getReferenceSize () const |
void | setInverseMode (bool on) |
bool | getInverseMode () const |
virtual sglBound::IntersectResultEnum | intersect (sglIntersectf &isector) const |
virtual sglBound::IntersectResultEnum | intersect (sglIntersectd &isector) const |
virtual void | pick (sglPickf &pick_state, unsigned int cull_flags) const |
virtual void | pick (sglPickd &pick_state, unsigned int cull_flags) const |
virtual sglNode* | clone (unsigned int mode) const |
virtual void | printInfo (ostream &ostrm, const char *indent_string) const |
Protected Methods | |
virtual void | cull (sglCull< float > &trav_state, unsigned int cull_flags) const |
virtual void | cull (sglCull< double > &trav_state, unsigned int cull_flags) const |
void | copyTo (sglUnScaleRange *dst, unsigned int mode) const |
Setting the minimum pixel size to 0 disables this limit so that objects can shrink without limit as they get farther away. Likewise, specifying the maximum pixel size to 0 allows that objects to grow larger without limit as they approach the view point. Setting both to negative values results in an sglGroup node behaviour.
Note: Due to the way culling is performed (with pre-computed bounding volumes), this node may exhibit non-intuitive culling behavior. The dynamically generate bounding-volume for this node will reflect the size of its children in world-space, not the transformed screen space. Thus, by default, the bounding volume is likely to be much smaller than the drawn object. It is recommended that you set a static bound of appropriate size for this node (and its children).
Example:
sglGeode geode = new sglGeode; sglUnScaleRange *unscale = new sglUnScaleRange; // scale the children so that an object with dimension 4 will not shrink // less than 10 pixels on that dimension or grow larger than 40 pixels. unscale->setScaleParameters(4.f, 10, 40); unscale->addChild(geode);
Definition at line 73 of file sglUnScaleRange.hpp.
|
Default constructor.
|
|
virtual destructor.
|
|
Set the scaling parameters.
|
|
Query the minimum pixel size. It will return zero if this limit has been disabled.
Definition at line 100 of file sglUnScaleRange.hpp. |
|
Query the maximum pixel size. It will return zero if this limit has been disabled.
Definition at line 106 of file sglUnScaleRange.hpp. |
|
Query the reference size.
Definition at line 111 of file sglUnScaleRange.hpp. |
|
Set whether or not to apply the inverse of the scale computed. This is useful for sequential nodes of this type if you want to undo the previous one. The default is disabled.
Definition at line 118 of file sglUnScaleRange.hpp. |
|
Query whether or not the inverse of the scale computed is applied.
Definition at line 123 of file sglUnScaleRange.hpp. |
|
The single precision intersection traversal function which returns the closest object (bounding volume and/or triangle) that intersects with the given intersect segment.
Reimplemented from sglGroup. |
|
The double precision intersection traversal function which returns the closest object (bounding volume and/or triangle) that intersects with the given intersect segment.
Reimplemented from sglGroup. |
|
The single precision pick traversal function which returns all objects that fall within the pick frustum.
Reimplemented from sglGroup. |
|
The double precision pick traversal function which returns all objects that fall within the pick frustum.
Reimplemented from sglGroup. |
|
Make a copy of the scenegraph rooted at this node.
Reimplemented from sglGroup. |
|
Output the state of this node to the specified ostream.
Reimplemented from sglGroup. |
|
The single precision cull traversal function that culls out subgraphs that do not lie in the view frustum (stored in the sglCull parameter). Subclasses must implement this function. The entry point for user-friendly culling is in the sglScene class.
Reimplemented from sglGroup. |
|
The double precision cull traversal function that culls out subgraphs that do not lie in the view frustum (stored in the sglCull parameter). Subclasses must implement this function. The entry point for user-friendly culling is in the sglScene class.
Reimplemented from sglGroup. |