![]() |
DI-Guy SDK Documentation
13.5
|
A scene object is a static (that is, non-moving) object in the scenario. Scene objects are the basic terrain that characters are ground-clamped to and navigate around or on. Scene objects do not typically animate. More...
#include <diguySceneObject.h>
Public Member Functions | |
General Functions | |
Unless otherwise specified, all functions callable from:
| |
| 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... | |
| 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) |
| Sets/gets the scene object position. More... | |
| int | get_position (float *x, float *y, float *z) |
| int | set_orientation (float rz, float rx, float ry) |
| Sets/gets the scene object orientation. More... | |
| int | get_orientation (float *rz, float *rx, float *ry) |
| int | set_scale (float sx, float sy, float sz) |
| Sets/gets the scene object scale. More... | |
| 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) |
| 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 (that is, non-moving) object in the scenario. Scene objects are the basic terrain that characters are ground-clamped to and navigate around or on. 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
| int diguySceneObject::set_name | ( | const char * | name | ) |
This function sets the name of this object.
Returns:
0 on success, -1 on failure
| 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
| 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
| 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.
| const char* diguySceneObject::get_alternate_filename | ( | ) |
Returns: alternate filename of the scene object.
| 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
| 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
| int diguySceneObject::hide | ( | ) |
Hides the scene object.
Returns:
0 on success, -1 on failure
| 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
| 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.
| 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
| 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
| 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
| 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
| 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.
| 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
| 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.
| 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.
| 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 | ||
| ) |
Sets/gets the scene object position.
| int diguySceneObject::get_position | ( | float * | x, |
| float * | y, | ||
| float * | z | ||
| ) |
| int diguySceneObject::set_orientation | ( | float | rz, |
| float | rx, | ||
| float | ry | ||
| ) |
Sets/gets the scene object orientation.
| int diguySceneObject::get_orientation | ( | float * | rz, |
| float * | rx, | ||
| float * | ry | ||
| ) |
| int diguySceneObject::set_scale | ( | float | sx, |
| float | sy, | ||
| float | sz | ||
| ) |
Sets/gets the scene object scale.
| 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 |
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.