H3D API
2.4.1
|
Display list is extended in order to set front sidedness of triangles outside the display list. More...
#include <H3D/X3DComposedGeometryNode.h>
Public Member Functions | |
virtual void | callList (bool build_list=true) |
Perform front face code outside the display list. | |
![]() | |
virtual unsigned int | cachingDelay () |
Override cachingDelay function to give local graphic option higher priority than global graphic option. | |
virtual bool | usingCaching () |
Override usingCaching() function. | |
![]() | |
DisplayList () | |
Constructor. | |
~DisplayList () | |
Destructor. | |
void | setCacheMode (CacheMode m) |
Set the cache mode. | |
CacheMode | getCacheMode () |
Get the cache mode. | |
void | setFrustumCullingMode (FrustumCullingMode m) |
Set the frustum culling mode. | |
FrustumCullingMode | getFrustumCullingMode () |
Get the frustum culling mode. | |
bool | usingFrustumCulling () |
Returns true if view frustum culling is on. | |
bool | isOutsideViewFrustum () |
Returns true if the bounding box of the owner of this field lies outside the view frustum. More... | |
void | breakCache () |
If called the display list will be rebuilt on next call to. | |
virtual void | update () |
Calls tryBuildDisplayList(). | |
virtual void | propagateEvent (Event e) |
When the event is propagated the display list is invalidated. | |
Field * | getEventPointer () |
Gets the pointer to the last field that created an event to this field | |
bool | hasCausedEvent (Field *f) |
Returns true if the Field given has generated an event to this field since the last call to the update() function. | |
template<class FieldType > | |
bool | hasCausedEvent (H3DUniquePtr< FieldType > &f) |
Returns true if the Field given has generated an event to this field since the last call to the update() function. | |
size_t | nrPendingEvents () |
Returns the number of input fields that has generated an event to this field since the last call to the update() function. | |
void | initGraphicOption () |
initialize previous graphic option | |
![]() | |
Field () | |
Constructor. | |
virtual | ~Field () |
Destructor. | |
virtual void | checkFieldType (Field *f, int index) |
Check that a given input field is of the correct type. More... | |
void | setName (string _name) |
Sets local the name of the field. Will be used in error reporting. | |
string | getName () |
Gets the name of the field. | |
string | getFullName () |
Get the full name of the field including the name of the owner node if it exists (ownername.fieldname). More... | |
virtual string | getTypeName () |
Returns a string name for this field type. | |
virtual X3DTypes::X3DType | getX3DType () |
Returns the X3DType of the field. | |
virtual void | route (Field *, int id=0) |
Set up a route from this field to the field given as argument. More... | |
virtual void | routeNoEvent (Field *, int id=0) |
Set up a route from this field to the field given as argument. More... | |
virtual void | unroute (Field *) |
Remove the route from this field to the field given as argument. | |
virtual Field * | replaceRoute (Field *f, unsigned int i, int id=0) |
Replace the i:th route to f with a route from this field. More... | |
virtual Field * | replaceRouteNoEvent (Field *f, unsigned int i, int id=0) |
Replace the i:th route to f with a route from this field. More... | |
template<class F > | |
void | route (H3DUniquePtr< F > &f, int id=0) |
Set up a route from this field to the field residing in the H3DUniquePtr given as argument. More... | |
template<class F > | |
void | routeNoEvent (H3DUniquePtr< F > &f, int id=0) |
Set up a route from this field to the field residing in the H3DUniquePtr given as argument. More... | |
template<class F > | |
void | unroute (H3DUniquePtr< F > &f) |
Remove the route from this field to the field residing in the H3DUniquePtr given as argument. | |
void | unrouteAll () |
Remove all the routes from this field. | |
virtual void | upToDate () |
Check that the field is up-to-date, if not update() is called to make it up-to-date. | |
bool | isUpToDate () |
Returns true if the field is up to date, i.e. More... | |
virtual void | touch () |
Generates an event from this field. | |
Node * | getOwner () |
Get the Node that contains this field. | |
void | setOwner (Node *n) |
Set the Node that contains this field. | |
void | setAccessType (AccessType _access_type) |
Set the access type of the field. | |
AccessType | getAccessType () |
Get the access type of the field. | |
bool | routesTo (Field *f) |
Returns true if this field is routed to the field given as argument. | |
bool | hasRouteFrom (Field *f) |
Returns true if the field given as argument is routed to this field. | |
const FieldVector & | getRoutesIn () |
Get the Fields that are routed to this Field. | |
const FieldSet & | getRoutesOut () |
Get the Fields this Field is routed to. | |
const Event & | getLatestEvent () |
Get the latest event. | |
void | setAccessCheck (bool on) |
Set access type checking on or off. More... | |
bool | isAccessCheckOn () |
Returns true if checking of access types is on. | |
Additional Inherited Members | |
![]() | |
enum | CacheMode { ON , OFF , OPTIONS } |
The entries in CacheMode enumerator is used for checking if caching should be done or not. More... | |
typedef CacheMode | FrustumCullingMode |
The entries in FrustumCullingMode enumerator is used for checking if view frustum culling should be done. | |
![]() | |
enum | AccessType { INITIALIZE_ONLY , OUTPUT_ONLY , INPUT_ONLY , INPUT_OUTPUT } |
The different access types that a field can have. More... | |
![]() | |
static void | rebuildAllDisplayLists () |
Force a rebuild of all display lists created. | |
![]() | |
static string | classTypeName () |
Returns a string name for this field type. More... | |
![]() | |
virtual bool | haveValidDisplayList () |
Returns true if we have a valid display list built that can be called. | |
bool | tryBuildDisplayList (bool cache_broken) |
Try to build a display list. More... | |
![]() | |
virtual void | startEvent () |
Start a new event from this field. More... | |
virtual void | routeFrom (Field *, int id) |
Set up a route to this field from the field given as argument. | |
virtual void | unrouteFrom (Field *) |
Remove the route to this field from the field given as argument. | |
virtual Field * | replaceRouteFrom (Field *f, unsigned int i, int id) |
Replace the i:th route to this field with the field given as argument. | |
void | checkAccessTypeRoute (Field *f, int id) |
Check the access type is correct for performing a route from this field to f. More... | |
void | checkAccessTypeRouteFrom (Field *f, int id) |
Check the access type is correct for performing a route from f to this field. More... | |
void | checkAccessTypeGet (int id) |
Check the access type is valid for getting the value of a field. More... | |
void | checkAccessTypeSet (int id) |
Check the access type is valid for changing the value of a field. More... | |
int | ownerId () |
Gets the id of the owner node, -1 if no owner. | |
bool | isProgramSetting () |
Returns true if this field is part of program settings fields. More... | |
void | markProgramSetting (bool used_as_setting) |
Set it this field is used by program settings fields in scene or not. | |
![]() | |
set< Field * > | event_fields |
The fields that has generated an event since the last call to update() | |
unsigned int | delay_cache_counter |
Display lists will not be built as long as this counter > 0. | |
GLuint | display_list |
OpenGL display list identifier. | |
CacheMode | cache_mode |
The mode for caching. | |
FrustumCullingMode | frustum_culling_mode |
The mode for view frustum culling. | |
bool | have_valid_display_list |
True if the display list has been built successfully. | |
H3DUniquePtr< IsActive > | isActive |
The isActive field is true if the callList() function has been called in the last scenegraph loop, and false otherwise. | |
GraphicsOptions * | graphic_options_previous |
previous graphic option | |
bool | reset_delay_cache_counter |
flag to require resetting delay_cache_counter | |
![]() | |
string | name |
The name of the field. | |
bool | event_lock |
If true, stops events from being propagated. More... | |
bool | update_lock |
If true, stops the update() function from being called in the upToDate() function. | |
FieldSet | routes_out |
The Fields that this field is routed to. | |
FieldVector | routes_in |
The Field that are routed to this field. | |
Event | event |
The last event that happened. | |
Node * | owner |
The node that contain this field. More... | |
AccessType | access_type |
The type of access to the field. | |
bool | access_check_on |
If true, access type checks will be done when getting/setting values and setting up routes. More... | |
![]() | |
static H3DUniquePtr< Field > | break_list_field |
This field is routed to all instances of DisplayList and can be used to force a rebuild of all display lists. | |
static const int | cache_delay_default = 3 |
default cache delay value | |
Display list is extended in order to set front sidedness of triangles outside the display list.
This is due to that the front face value depends the previous value of front face. If we did not do this and the display list was used in several places where the front face differs there would be normal errors. The drawback with having it outside the display list is that you cannot call the render() function to render the geometry correctly, but MUST use the callList() function in DisplayList.