Triangle_mesh Class Reference
[Elements]
Description
Represents a triangle mesh within the scene graph. Actual mesh data is not loaded unless the mesh property is accessed or the mesh data fields are accessed. At that time a read-only binary representation of the mesh is retrieved and stored in the object. Refer to the documentation for the geometry_get_mesh command for details of this binary format. This representation can be passed to the static create method to generate a new mesh based on the data. It can also be edited by accessing the properties of this class which return JavaScript typed array views of the underlying binary representation. If these properties are modified the V8 representation will become inconsistent with that stored in the database until such time as the commit method is called. This will create a new mesh in the database with the same name as the existing one, overwriting it. You can also completely change the mesh data properties by setting them yourself but note that these will not be validated by this class.
Constructor
- Triangle_mesh( String name)
- More...
Functions
- varying as( String type_name)
- Upcasts an element to a specific element type. More...
- commit()
- Commits any changes made to the mesh. More...
- the copy( String name, Number privacy_level)
- Make a copy of this element in the database. More...
- create( String element_type, Number privacy_level)
- Creates a scene element called name. More...
- delete()
- Remove this element from the database.
- bool exists( String element_type)
- Returns whether the element exists or not. More...
- localize( Number privacy_level)
- Localizes this element. More...
- varying property_get( String cache, String command, String element_name_arg, Function as_a)
- Retrieves and caches a property of an element. More...
- property_set( String cache, String command, String element_name_arg, String value_arg_name, varying value, Function from_a)
- Sets and caches a property of an element. More...
- set_material( String material, bool override)
- Sets the material and, optionally, material override on this element. More...
Static Functions
- Triangle_mesh create( String name, Object mesh, Boolean visible)
- Creates a new Triangle_mesh. More...
Properties
- Attributes attributes
- The attributes associated with this element.
- bool disable
- Set to true to disable the element and all elements below this in the scene graph. More...
- bool exists
- Returns whether the triangle mesh exists or not. More...
- bool hide
- Alias for disable.
- Mdl_material_instance[] material
- The material to use for this element. More...
- Uint32Array material_ids
- The array of material_ids for each triangle.
- String material_override
- The override attribute for the material. More...
- Number max_displacement
- The maximum displacement allowed on an object.
- Object mesh
- The actual mesh data in a binary representation retrieved on demand.
- String name
- The name of the element. More...
- Uint32Array normal_indices
- The array of normal_indices which specify the normals to be used for each vertex of a triangle. More...
- Float32Array normals
- The array of normal point values used by the mesh.
- Uint32Array point_indices
- The array of point_indices which specify the points to be used for each vertex of a triangle. More...
- Float32Array points
- Returns the array of position point values used by the mesh.
- Boolean tagged
- Whether or not the mesh should utilise the material_ids property to apply different materials to each triangle. More...
- String type_name
- The type name of the element. More...
- Array user
- The array of Float32Array items each of which represent the user data values for a given named user data set.
- Array user_indices
- The array of Uint32Array items which specify the user data to be used for each vertex of a triangle. More...
- Array user_names
- The array of string items which specify the names of the each user data set.
- Array user_sizes
- The array of number items which specify the size of the vectors used by the user data.
- Array uv_indices
- The array of Uint32Array items which specify the UVs to be used for each vertex of a triangle. More...
- Array uv_sizes
- The array of number items which specify the size of the vectors used by the texture space.
- Array uvs
- The array of Float32Array items each of which represent the UV values for a given texture coordinate space.
Constructor
- Triangle_mesh( String name)
-
Parameters
- name
- The name of the triangle mesh
Functions
- varying Triangle_mesh.as( String type_name)
-
Upcasts an element to a specific element type. If this element is not of the given type then undefined is returned. If type_name does not have a matching element implementation an error is thrown. Note that this is not strictly an upcast but will return a new instance of the specific class representing type_name.
Parameters
- type_name
- the element type name to convert to.
Returns
the specific Element implementation for this element.
- Triangle_mesh.commit()
-
Commits any changes made to the mesh. This will overwrite the current mesh in the database with the modified version. Please note that no validation is performed on the mesh data. Additionally note that the original mesh data is shadowed in the database and not deleted. If you wish to ensure the old data is removed you should create a new mesh with a differet name using the static create method and then remove the original mesh by calling its delete method.
- the Triangle_mesh.copy( String name, Number privacy_level)
-
Make a copy of this element in the database.
Parameters
- name
- The name of the new element to copy to.
- privacy_level
- The privacy level to which the element will be copied. Defaults to the privacy level of the current scope.
Returns
copied element
- Triangle_mesh.create( String element_type, Number privacy_level)
-
Creates a scene element called name. Throws on error.
Parameters
- element_type
- the type of element to create
- privacy_level
- The privacy level to create the element at. Defaults to the privacy level of the current scope.
- Triangle_mesh Triangle_mesh.create( String name, Object mesh, Boolean visible) [static]
-
Creates a new Triangle_mesh.
Note:Note that only the binary format is supported.
Parameters
- name
- the name of the triangle mesh to create
- mesh
- triangle mesh data used to create the mesh. See geometry_get_mesh command for details
- visible
- if true will set the visible attribute on the generated mesh. Defaults to true
Returns
the generated mesh scene element
- Triangle_mesh.delete()
-
Remove this element from the database.
- bool Triangle_mesh.exists( String element_type)
-
Returns whether the element exists or not.
Note:element_type of 'Scene' is not supported. To test if a Scene exists use this.as('Scene') !== undefined
Parameters
- element_type
- if provided then the element must also be of this type.
- Triangle_mesh.localize( Number privacy_level)
-
Localizes this element.
Parameters
- privacy_level
- The privacy level to which the element will be localized. Defaults to the privacy level of the current scope.
- varying Triangle_mesh.property_get( String cache, String command, String element_name_arg, Function as_a)
-
Retrieves and caches a property of an element. The value of the property must be retrievable via a command that takes a single argument which is the name of the element to retrieve the property from. The name of this Element is used. If the returned property is another named scene Element then the element's constructor can be provided to return the element itself rather than it's name. On error this will return undefined.
Parameters
- cache
- name of the property to cache the result to
- command
- name of the RS command to get the property value
- element_name_arg
- name of the command argument to use for the element name
- as_a
- if the property being retrieved is an RS Element then the element constructor should be passed in here. The result of the command is assumed to be the element name and this is used to create an Element instance to return rather than the name of the element. Use undefined if the retrieved value is not an element.
Returns
the property value if it exists or undefined
- Triangle_mesh.property_set( String cache, String command, String element_name_arg, String value_arg_name, varying value, Function from_a)
-
Sets and caches a property of an element. The value of the property must be set via a command that takes two arguments, one being the name of the element to set and the other being the property's value. The names of these arguments are passed in. If the property is another named scene Element then the element's constructor can be provided and value can either be the element itself or it's name. Will throw on error.
Parameters
- cache
- name of the property to cache the result to
- command
- name of the RS command to set the property value
- element_name_arg
- name of the command argument to use for the element name
- value_arg_name
- name of the value argument to use for the value
- value
- the value to set
- from_a
- if the property being set is a RealityServer Element then the element constructor should be passed in here. value can then either be the name of the scene element or the Element itself. If value is a name then an Element is constructed and cache rather than the name itself. Use undefined if the value does not represent an Element .
- Triangle_mesh.set_material( String material, bool override)
-
Sets the material and, optionally, material override on this element.
Parameters
- material
- the material to set, see Element_scene_graph.material
- override
- if defined then sets override on the material, see Element_scene_graph.material_override
Properties
- Attributes Triangle_mesh.attributes
-
The attributes associated with this element.
- bool Triangle_mesh.disable
-
Set to true to disable the element and all elements below this in the scene graph. Set to false to show again or undefined to remove the disable attribute completely.
- bool Triangle_mesh.exists
-
Returns whether the triangle mesh exists or not. This test is type checked.
- bool Triangle_mesh.hide
-
Alias for disable.
- Mdl_material_instance[] Triangle_mesh.material
-
The material to use for this element. When setting can supply either a String giving the name of the material to use or a Mdl_material_instance . Arrays of these can also be used. Note that single values will always be converted to arrays when setting. Getting always returns an array of Mdl_material_instance .
- Uint32Array Triangle_mesh.material_ids
-
The array of material_ids for each triangle.
- String Triangle_mesh.material_override
-
The override attribute for the material. Accepts the strings override or standard as valid values. Truthy non-string values will be interpreted as override, otherwise standard.
- Number Triangle_mesh.max_displacement
-
The maximum displacement allowed on an object.
- Object Triangle_mesh.mesh
-
The actual mesh data in a binary representation retrieved on demand.
- String Triangle_mesh.name
-
The name of the element. Read only.
- Uint32Array Triangle_mesh.normal_indices
-
The array of normal_indices which specify the normals to be used for each vertex of a triangle. This is a flat array, random access is possible by using the fact that all triangles always have three vertices
- Float32Array Triangle_mesh.normals
-
The array of normal point values used by the mesh.
- Uint32Array Triangle_mesh.point_indices
-
The array of point_indices which specify the points to be used for each vertex of a triangle. This is a flat array, random access is possible by using the fact that all triangles always have three vertices
- Float32Array Triangle_mesh.points
-
Returns the array of position point values used by the mesh.
- Boolean Triangle_mesh.tagged
-
Whether or not the mesh should utilise the material_ids property to apply different materials to each triangle. If true then the material_ids property must also be present
- String Triangle_mesh.type_name
-
The type name of the element. If the element does not exists returns undefined. Read only.
Note:For a Scene element this will return 'Attribute_container', not 'Scene'.
- Array Triangle_mesh.user
-
The array of Float32Array items each of which represent the user data values for a given named user data set.
- Array Triangle_mesh.user_indices
-
The array of Uint32Array items which specify the user data to be used for each vertex of a triangle. This is a flat array, random access is possible by using the fact that all triangles always have three vertices
- Array Triangle_mesh.user_names
-
The array of string items which specify the names of the each user data set.
- Array Triangle_mesh.user_sizes
-
The array of number items which specify the size of the vectors used by the user data.
- Array Triangle_mesh.uv_indices
-
The array of Uint32Array items which specify the UVs to be used for each vertex of a triangle. This is a flat array, random access is possible by using the fact that all triangles always have three vertices
- Array Triangle_mesh.uv_sizes
-
The array of number items which specify the size of the vectors used by the texture space.
- Array Triangle_mesh.uvs
-
The array of Float32Array items each of which represent the UV values for a given texture coordinate space.