![]() |
C++ SDK Reference
12.5
|
A scene object is a static (i.e. – non-moving) object in the scenario. Scene objects are the basic terrain that characters are ground clamped and navigate around. Scene objects do not typically animate. More...
#include <diguySceneObject.h>
Public Member Functions | |
| const char * | get_name () |
| Returns the name of the scene object. More... | |
| int | set_name (const char *name) |
| This function sets the name of this object. More... | |
| long | get_uid () |
| All scene objects are assigned a unique identifier, or uid. More... | |
| const char * | get_filename () |
| Returns the filename of the scene object. More... | |
| const char * | get_nodename () |
| Returns: node within the scene object file; returned string is 0 length if contents of entire file should be used. More... | |
| const char * | get_alternate_filename () |
| Returns: alternate filename of the scene object. More... | |
| const char * | get_fully_resolved_filename () |
| Returns the fully resolved filename of the scene object. More... | |
| int | show () |
| Attempts to load the file returned by get_filename() and construct an object that can be rendered in the current graphics environment by the call draw_visual(). More... | |
| int | hide () |
| Hides the scene object. More... | |
| int | add_vertex_to_user_defined (float x, float y, float z) |
| Adds a vertex to a user defined scene object. More... | |
| int | add_triangle_to_user_defined (int index0, int index1, int index2) |
| Adds a triangle to a user defined scene object. More... | |
| int | add_vertex_array_to_user_defined (const float *const vertices, int num_vertices, int skipBytes=12) |
| Adds an array of vertices to a user defined scene object. More... | |
| int | add_triangle_array_to_user_defined (const int *const indices, int num_indices) |
| Adds an array of triangles to a user defined scene object. More... | |
| int | add_triangle_to_user_defined (const float *const pos0, const float *const pos1, const float *const pos2) |
| Adds a triangle to a user defined object. More... | |
| int | build_user_defined () |
| Builds the geometry of the user defined scene object from data passed via add_vertex_* and add_triangle_* calls. More... | |
Shader Functions | |
| int | set_render_mode_shader (const char *shader_name, const char *render_mode=NULL) |
| This function is essentially the same as the function diguyCharacter::set_render_mode_shader(), but applies to this scene object. More... | |
| void | reset_render_mode_shader_to_default (const char *render_mode=NULL) |
| This function is essentially the same as the function diguyCharacter::reset_render_mode_shader_to_default(), but applies to this scene object. More... | |
| const char * | get_render_mode_shader (const char *render_mode=NULL) |
| This function is essentially the same as the function diguyCharacter::get_render_mode_shader(), but applies to this to this scene object. More... | |
| diguyGraphicsShaderProgram * | get_shader_program () |
| This function is essentially the same as the function diguyCharacter::get_shader_program(), but applies to this to this scene object. More... | |
| diguyGraphicsShaderTechnique * | get_shader_technique () |
| This function is essentially the same as the function diguyCharacter::get_shader_technique(), but applies to this to this scene object. More... | |
| int | set_temporary_current_shader (const char *shader_name) |
| This function is essentially the same as the function diguyCharacter::set_temporary_current_shader_program(), but applies to this to this scene object. More... | |
| void | reset_current_shader_to_default () |
| This function is essentially the same as the function diguyCharacter::reset_current_shader_to_default(), but applies to this to this scene object. More... | |
| diguyGraphicsShaderInstance * | get_shader_instance () |
| This function is essentially the same as the function diguyCharacter::get_shader_instance(), but applies to this to this scene object. More... | |
| void | reset_shader_instance_variables_to_initial_values () |
| This function is essentially the same as the function diguyCharacter::reset_shader_instance_variables_to_initial_values(), but applies to this scene object. More... | |
| void | reset_shader_instance_variables_to_program_defaults () |
| This function is essentially the same as the function diguyCharacter::reset_shader_instance_variables_to_program_defaults(), but applies to this scene object. More... | |
Deprecated Functions | |
| int | set_switch_state (const char *switch_name, int state) |
| Set the state of a switch belonging to this scene object. More... | |
| int | get_switch_state (const char *switch_name) |
| Get the state of a switch belonging to this scene object. More... | |
| int | set_dof_state (const char *dof_name, float tx, float ty, float tz, float rz, float rx, float ry) |
| Set the state of a DOF element belonging to this scene object. More... | |
| int | set_dof_state_flt (const char *dof_name, float tx, float ty, float tz, float rx, float ry, float rz) |
| Set the state of a DOF element belonging to this scene object. More... | |
| int | get_dof_state (const char *dof_name, float *tx, float *ty, float *tz, float *rz, float *rx, float *ry) |
| Get the state of a DOF element belonging to this scene object. More... | |
| int | get_dof_state_flt (const char *dof_name, float *tx, float *ty, float *tz, float *rx, float *ry, float *rz) |
| Get the state of a DOF element belonging to this scene object. More... | |
| int | add_switch_target (const char *switch_name, int state, float t) |
| Set a trigger to change the state of a switch at a given time. More... | |
| int | abort_all_switch_targets (const char *switch_name) |
| Abort all the targets states for a given switch which have been set either using the DI-Guy function, add_dof_target() or using a behavior file. More... | |
| int | add_dof_target (const char *dof_name, float tx, float ty, float tz, float rz, float rx, float ry, float blend_tin, float blend_tout, const char *blend_function_name=0) |
| Set a trigger to change the state of a DOF at a given time. More... | |
| int | add_dof_target_flt (const char *dof_name, float tx, float ty, float tz, float rx, float ry, float rz, float blend_tin, float blend_tout, const char *blend_function_name=0) |
| Set a trigger to change the state of a DOF at a given time. More... | |
| int | abort_all_dof_targets (const char *dof_name) |
| Abort all the targets states for a given DOF which have been set either using the DI-Guy function, add_dof_target() or using a behavior file. More... | |
| int | set_shader_program (const char *shader_name) |
| Deprecated as of 10.5.2. More... | |
Experimental Functions | |
The following functions are experimental and may change or disappear with no warning. | |
| int | set_position (float x, float y, float z) |
| Documentation Pending. More... | |
| int | get_position (float *x, float *y, float *z) |
| int | set_orientation (float rz, float rx, float ry) |
| int | get_orientation (float *rz, float *rx, float *ry) |
| int | set_scale (float sx, float sy, float sz) |
| int | get_scale (float *sx, float *sy, float *sz) |
| int | set_filename (const char *file_name) |
| int | get_is_sky_box () |
| int | set_is_sky_box (int skybox) |
| int | draw_visual () |
| Draws the scene object. More... | |
| int | get_include_in_octtree () |
| int | set_include_in_octtree (int val) |
| int | set_include_in_physics_sim_scene (int include_in_simulation_terrain) |
| int | get_include_in_physics_sim_scene () |
| int | set_physics_collision_group (diguyPhysicsCollisionGroup collision_group) |
| diguyPhysicsCollisionGroup | get_physics_collision_group () |
| int | get_min (float *x, float *y, float *z) |
| int | get_max (float *x, float *y, float *z) |
| void | set_scene_graph_mask (unsigned int mask) |
| unsigned int | get_scene_graph_mask () |
| int | get_enabled () |
| int | set_enabled (int enabled) |
| int | get_visible () |
| int | set_visible (int visible) |
| static int | set_texture_load_behavior (diguyGraphicsTextureLoadingBehavior mode) |
| Documentation Pending should be a member of diguyGraphicsTextureLoadingBehavior DIGUY_LOAD_INSTANTLY, DIGUY_LOAD_PRIORITY_ASYNC, DIGUY_LOAD_ASYNC. More... | |
| static diguyGraphicsTextureLoadingBehavior | get_texture_load_behavior () |
Private Functions | |
The functions and variables past this point are for internal use only. No external access to them is expected or necessary. | |
| bdiScenarioSceneObject * | m_scripted_object |
| A pointer to internal data. More... | |
| class | bdiScenarioSceneObject |
| bdiScenarioSceneObject * | get_scripted_object () |
| diguySceneObject (bdiScenarioSceneObject *scene_object) | |
| A private constructor. More... | |
| ~diguySceneObject () | |
| A private destructor. More... | |
A scene object is a static (i.e. – non-moving) object in the scenario. Scene objects are the basic terrain that characters are ground clamped and navigate around. Scene objects do not typically animate.
|
private |
A private constructor.
|
private |
A private destructor.
| const char* diguySceneObject::get_name | ( | ) |
Returns the name of the scene object.
This pointer will never be NULL.
Returns:
name of the scene object
Callable From:
| int diguySceneObject::set_name | ( | const char * | name | ) |
This function sets the name of this object.
Returns:
0 on success, -1 on failure
Callable From:
| long diguySceneObject::get_uid | ( | ) |
All scene objects are assigned a unique identifier, or uid.
This function returns this scene object's uid.
Note: unique identifiers will change between DI-Guy runs!
Returns:
unique identifier of object
Callable From:
| const char* diguySceneObject::get_filename | ( | ) |
Returns the filename of the scene object.
This pointer will never be NULL.
The returned filename may be relative to another directory, such as $DIGUY/geometry/sets. Call get_fully_resolved_filename() to have DI-Guy search for the fully resolved filename.
Returns:
filename of the scene object
Callable From:
| const char* diguySceneObject::get_nodename | ( | ) |
Returns: node within the scene object file; returned string is 0 length if contents of entire file should be used.
Callable From:
| const char* diguySceneObject::get_alternate_filename | ( | ) |
Returns: alternate filename of the scene object.
Callable From:
| const char* diguySceneObject::get_fully_resolved_filename | ( | ) |
Returns the fully resolved filename of the scene object.
Returns NULL if the file cannot be found.
Returns:
fully resolved filename of the scene object; NULL if not found
Callable From:
| int diguySceneObject::show | ( | ) |
Attempts to load the file returned by get_filename() and construct an object that can be rendered in the current graphics environment by the call draw_visual().
Returns:
0 on success, -1 on failure
OpenGL Version:
Function will create OpenGL display lists.
Direct3D Version:
Function will have no effect. User must load and display object.
Callable From:
| int diguySceneObject::hide | ( | ) |
Hides the scene object.
See show() for notes on which platforms do not yet display scene objects.
Returns:
0 on success, -1 on failure
Callable From:
| int diguySceneObject::add_vertex_to_user_defined | ( | float | x, |
| float | y, | ||
| float | z | ||
| ) |
Adds a vertex to a user defined scene object.
Returns:
0 on success, -1 on failure
| int diguySceneObject::add_triangle_to_user_defined | ( | int | index0, |
| int | index1, | ||
| int | index2 | ||
| ) |
Adds a triangle to a user defined scene object.
Indices refer to vertices added with a add_vertex_* call.
Returns:
0 on success, -1 on failure
| int diguySceneObject::add_vertex_array_to_user_defined | ( | const float *const | vertices, |
| int | num_vertices, | ||
| int | skipBytes = 12 |
||
| ) |
Adds an array of vertices to a user defined scene object.
| skipBytes | bytes between vertex position information |
Returns:
0 on success, -1 on failure
| int diguySceneObject::add_triangle_array_to_user_defined | ( | const int *const | indices, |
| int | num_indices | ||
| ) |
Adds an array of triangles to a user defined scene object.
The array should contain indices to vertices added with add_vertex_* calls.
| num_indices | Number of indices (3 indices per triangle). |
Returns:
0 on success, -1 on failure
| int diguySceneObject::add_triangle_to_user_defined | ( | const float *const | pos0, |
| const float *const | pos1, | ||
| const float *const | pos2 | ||
| ) |
Adds a triangle to a user defined object.
Positions are expected to be float[3].
Returns:
0 on success, -1 on failure
| int diguySceneObject::build_user_defined | ( | ) |
Builds the geometry of the user defined scene object from data passed via add_vertex_* and add_triangle_* calls.
Returns:
0 on success, -1 on failure
| int diguySceneObject::set_render_mode_shader | ( | const char * | shader_name, |
| const char * | render_mode = NULL |
||
| ) |
This function is essentially the same as the function diguyCharacter::set_render_mode_shader(), but applies to this scene object.
Returns:
0 on success, -1 on failure
Callable From:
| void diguySceneObject::reset_render_mode_shader_to_default | ( | const char * | render_mode = NULL | ) |
This function is essentially the same as the function diguyCharacter::reset_render_mode_shader_to_default(), but applies to this scene object.
Callable From:
| const char* diguySceneObject::get_render_mode_shader | ( | const char * | render_mode = NULL | ) |
This function is essentially the same as the function diguyCharacter::get_render_mode_shader(), but applies to this to this scene object.
Returns:
name of shader program; NULL if none
Callable From:
| diguyGraphicsShaderProgram* diguySceneObject::get_shader_program | ( | ) |
This function is essentially the same as the function diguyCharacter::get_shader_program(), but applies to this to this scene object.
It's here for backwards compatibility DI-Guy 12 now uses shader techniques as wrappers for shader programs.
Returns:
object of type diguyGraphicsShaderProgram; NULL if none
Callable From:
| diguyGraphicsShaderTechnique* diguySceneObject::get_shader_technique | ( | ) |
This function is essentially the same as the function diguyCharacter::get_shader_technique(), but applies to this to this scene object.
Returns:
object of type diguyGraphicsShaderTechnique; NULL if none
Callable From:
| int diguySceneObject::set_temporary_current_shader | ( | const char * | shader_name | ) |
This function is essentially the same as the function diguyCharacter::set_temporary_current_shader_program(), but applies to this to this scene object.
Returns:
0 on success, -1 on failure
Callable From:
| void diguySceneObject::reset_current_shader_to_default | ( | ) |
This function is essentially the same as the function diguyCharacter::reset_current_shader_to_default(), but applies to this to this scene object.
Callable From:
| diguyGraphicsShaderInstance* diguySceneObject::get_shader_instance | ( | ) |
This function is essentially the same as the function diguyCharacter::get_shader_instance(), but applies to this to this scene object.
Note that the shader instance of a scene object can change over the lifetime of the scene object. Therefore the returned pointer should not be stored, but should be re-read each time it is needed.
Returns:
object of type diguyGraphicsShaderInstance; NULL if none
Callable From:
| void diguySceneObject::reset_shader_instance_variables_to_initial_values | ( | ) |
This function is essentially the same as the function diguyCharacter::reset_shader_instance_variables_to_initial_values(), but applies to this scene object.
Callable From:
| void diguySceneObject::reset_shader_instance_variables_to_program_defaults | ( | ) |
This function is essentially the same as the function diguyCharacter::reset_shader_instance_variables_to_program_defaults(), but applies to this scene object.
Callable From:
| int diguySceneObject::set_switch_state | ( | const char * | switch_name, |
| int | state | ||
| ) |
Set the state of a switch belonging to this scene object.
Currently only supported on OpenGL platform.
| switch_name | the name of the switch element |
| state | the state, i.e. active sub-element, of the switch |
Returns:
0 on success, -1 on failure
Callable From:
| int diguySceneObject::get_switch_state | ( | const char * | switch_name | ) |
Get the state of a switch belonging to this scene object.
Currently only supported on OpenGL platform.
| switch_name | the name of the switch element |
Returns:
The state of the switch, -1 if fails.
Callable From:
| int diguySceneObject::set_dof_state | ( | const char * | dof_name, |
| float | tx, | ||
| float | ty, | ||
| float | tz, | ||
| float | rz, | ||
| float | rx, | ||
| float | ry | ||
| ) |
Set the state of a DOF element belonging to this scene object.
Currently only supported on OpenGL platform.
| dof_name | the name of the DOF element |
| tx,ty,tz | the x, y, and z displacements of the DOF |
| rz,rx,ry | the rotation of the DOF about the z, x, and y axes |
The DOF will be rotated in ZXY order. For rotation in XYZ order, use set_dof_state_flt().
Returns:
0 on success, -1 on failure
Callable From:
| int diguySceneObject::set_dof_state_flt | ( | const char * | dof_name, |
| float | tx, | ||
| float | ty, | ||
| float | tz, | ||
| float | rx, | ||
| float | ry, | ||
| float | rz | ||
| ) |
Set the state of a DOF element belonging to this scene object.
Currently only supported on OpenGL platform.
| dof_name | the name of the DOF element |
| tx,ty,tz | the x, y, and z displacements of the DOF |
| rz,rx,ry | the rotation of the DOF about the z, x, and y axes |
The DOF will be rotated in XYZ order. For rotation in ZXY order, use set_dof_state().
Returns:
0 on success, -1 on failure
Callable From:
| int diguySceneObject::get_dof_state | ( | const char * | dof_name, |
| float * | tx, | ||
| float * | ty, | ||
| float * | tz, | ||
| float * | rz, | ||
| float * | rx, | ||
| float * | ry | ||
| ) |
Get the state of a DOF element belonging to this scene object.
Currently only supported on OpenGL platform.
| dof_name | the name of the DOF element |
| tx,ty,tz | the x, y, and z displacements of the DOF |
| rz,rx,ry | the rotation of the DOF about the z-, x-, and y-axes |
The returned rotation values assume ZXY order. For XYZ order, use get_dof_state_flt().
Returns:
0 on success, -1 on failure
Callable From:
| int diguySceneObject::get_dof_state_flt | ( | const char * | dof_name, |
| float * | tx, | ||
| float * | ty, | ||
| float * | tz, | ||
| float * | rx, | ||
| float * | ry, | ||
| float * | rz | ||
| ) |
Get the state of a DOF element belonging to this scene object.
Currently only supported on OpenGL platform.
| dof_name | the name of the DOF element |
| tx,ty,tz | the x, y, and z displacements of the DOF |
| rx,ry,rz | the rotation of the DOF about the z-, x-, and y-axes |
The returned rotation values assume ZXY order. For XYZ order, use get_dof_state_flt().
Returns:
0 on success, -1 on failure
Callable From:
| int diguySceneObject::add_switch_target | ( | const char * | switch_name, |
| int | state, | ||
| float | t | ||
| ) |
Set a trigger to change the state of a switch at a given time.
Currently only supported on OpenGL platform.
| switch_name | the name of the switch to be triggered |
| state | the state the switch should be in after time t |
| t | the time at which the switch should switch |
Returns:
0 on success, -1 on failure
Callable From:
| int diguySceneObject::abort_all_switch_targets | ( | const char * | switch_name | ) |
Abort all the targets states for a given switch which have been set either using the DI-Guy function, add_dof_target() or using a behavior file.
Currently only supported on OpenGL platform.
| switch_name | the name of the switch whose targets are to be aborted |
Returns:
0 on success, -1 on failure
Callable From:
| int diguySceneObject::add_dof_target | ( | const char * | dof_name, |
| float | tx, | ||
| float | ty, | ||
| float | tz, | ||
| float | rz, | ||
| float | rx, | ||
| float | ry, | ||
| float | blend_tin, | ||
| float | blend_tout, | ||
| const char * | blend_function_name = 0 |
||
| ) |
Set a trigger to change the state of a DOF at a given time.
Currently only supported on OpenGL platform.
| dof_name | the name of the DOF element |
| tx,ty,tz | the x, y, and z displacements of the DOF |
| rz,rx,ry | the rotation of the DOF about the z-, x-, and y-axes |
| blend_tin | the time at which the DOF should begin changing states |
| blend_tout | the time at which the DOF should stop changing states |
| blend_function_name | the type of interpolation to be used between the current and desired DOF states |
Currently, valid function names are "Linear", "HalfSine", and "QuarterSine".
The DOF will be rotated in ZXY order. For rotation in XYZ order, use set_dof_state_flt().
Returns:
0 on success, -1 on failure
Callable From:
| int diguySceneObject::add_dof_target_flt | ( | const char * | dof_name, |
| float | tx, | ||
| float | ty, | ||
| float | tz, | ||
| float | rx, | ||
| float | ry, | ||
| float | rz, | ||
| float | blend_tin, | ||
| float | blend_tout, | ||
| const char * | blend_function_name = 0 |
||
| ) |
Set a trigger to change the state of a DOF at a given time.
Currently only supported on OpenGL platform.
| dof_name | the name of the DOF element |
| tx,ty,tz | the x, y, and z displacements of the DOF |
| rx,ry,rz | the rotation of the DOF about the z-, x-, and y-axes The DOF will be rotated in XYZ order. For rotation in ZXY order, use add_dof_target(). |
| blend_tin | the time at which the DOF should begin changing states |
| blend_tout | the time at which the DOF should stop changing states |
| blend_function_name | the type of interpolation to be used between the current and desired DOF states |
Currently, valid function names are "Linear", "HalfSine", and "QuarterSine".
The DOF will be rotated in XYZ order. For rotation in ZXY order, use set_dof_state_flt().
Returns:
0 on success, -1 on failure
Callable From:
| int diguySceneObject::abort_all_dof_targets | ( | const char * | dof_name | ) |
Abort all the targets states for a given DOF which have been set either using the DI-Guy function, add_dof_target() or using a behavior file.
Currently only supported on OpenGL platform.
| dof_name | the name of the DOF whose targets are to be aborted |
Returns:
0 on success, -1 on failure
Callable From:
| int diguySceneObject::set_shader_program | ( | const char * | shader_name | ) |
Deprecated as of 10.5.2.
Use set_shader_program_name() instead.
| int diguySceneObject::set_position | ( | float | x, |
| float | y, | ||
| float | z | ||
| ) |
Documentation Pending.
This function allows the a master flight file xrefs with large offsets from the origin to be untranslated. The offset can then be added to the XYZ position of the Scene Object. This is sometimes necessary to overcome far position rendering issues.
| int diguySceneObject::get_position | ( | float * | x, |
| float * | y, | ||
| float * | z | ||
| ) |
| int diguySceneObject::set_orientation | ( | float | rz, |
| float | rx, | ||
| float | ry | ||
| ) |
| int diguySceneObject::get_orientation | ( | float * | rz, |
| float * | rx, | ||
| float * | ry | ||
| ) |
| int diguySceneObject::set_scale | ( | float | sx, |
| float | sy, | ||
| float | sz | ||
| ) |
| int diguySceneObject::get_scale | ( | float * | sx, |
| float * | sy, | ||
| float * | sz | ||
| ) |
| int diguySceneObject::set_filename | ( | const char * | file_name | ) |
| int diguySceneObject::get_is_sky_box | ( | ) |
| int diguySceneObject::set_is_sky_box | ( | int | skybox | ) |
|
static |
Documentation Pending should be a member of diguyGraphicsTextureLoadingBehavior DIGUY_LOAD_INSTANTLY, DIGUY_LOAD_PRIORITY_ASYNC, DIGUY_LOAD_ASYNC.
|
static |
| int diguySceneObject::draw_visual | ( | ) |
Draws the scene object.
Currently OpenGL only.
Returns:
0 on success, -1 on failure
Callable From:
| int diguySceneObject::get_include_in_octtree | ( | ) |
| int diguySceneObject::set_include_in_octtree | ( | int | val | ) |
| int diguySceneObject::set_include_in_physics_sim_scene | ( | int | include_in_simulation_terrain | ) |
| int diguySceneObject::get_include_in_physics_sim_scene | ( | ) |
| int diguySceneObject::set_physics_collision_group | ( | diguyPhysicsCollisionGroup | collision_group | ) |
| diguyPhysicsCollisionGroup diguySceneObject::get_physics_collision_group | ( | ) |
| int diguySceneObject::get_min | ( | float * | x, |
| float * | y, | ||
| float * | z | ||
| ) |
| int diguySceneObject::get_max | ( | float * | x, |
| float * | y, | ||
| float * | z | ||
| ) |
| void diguySceneObject::set_scene_graph_mask | ( | unsigned int | mask | ) |
| unsigned int diguySceneObject::get_scene_graph_mask | ( | ) |
| int diguySceneObject::get_enabled | ( | ) |
| int diguySceneObject::set_enabled | ( | int | enabled | ) |
| int diguySceneObject::get_visible | ( | ) |
| int diguySceneObject::set_visible | ( | int | visible | ) |
|
inline |
|
friend |
|
private |
A pointer to internal data.