This page has been translated automatically.
Видеоуроки
Интерфейс
Основы
Продвинутый уровень
Подсказки и советы
Основы
Программирование на C#
Рендеринг
Профессиональный уровень (SIM)
Принципы работы
Свойства (properties)
Компонентная Система
Рендер
Режимы вывода изображения
Физика
Браузер SDK 2
Лицензирование и типы лицензий
Дополнения (Add-Ons)
Демонстрационные проекты
API Samples
Редактор UnigineEditor
Обзор интерфейса
Работа с ассетами
Контроль версий
Настройки и предпочтения
Работа с проектами
Настройка параметров ноды
Setting Up Materials
Настройка свойств
Освещение
Sandworm
Использование инструментов редактора для конкретных задач
Расширение функционала редактора
Встроенные объекты
Ноды (Nodes)
Объекты (Objects)
Эффекты
Декали
Источники света
Geodetics
World-ноды
Звуковые объекты
Объекты поиска пути
Player-ноды
Программирование
Основы
Настройка среды разработки
Примеры использования
C++
C#
UnigineScript
Унифицированный язык шейдеров UUSL (Unified UNIGINE Shader Language)
Плагины
Форматы файлов
Материалы и шейдеры
Rebuilding the Engine Tools
Интерфейс пользователя (GUI)
Двойная точность координат
API
Animations-Related Classes
Containers
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
IG Plugin
CIGIConnector Plugin
Rendering-Related Classes
VR-Related Classes
Работа с контентом
Оптимизация контента
Материалы
Визуальный редактор материалов
Material Nodes Library
Miscellaneous
Input
Math
Matrix
Textures
Art Samples
Учебные материалы
Внимание! Эта версия документация УСТАРЕЛА, поскольку относится к более ранней версии SDK! Пожалуйста, переключитесь на самую актуальную документацию для последней версии SDK.
Внимание! Эта версия документации описывает устаревшую версию SDK, которая больше не поддерживается! Пожалуйста, обновитесь до последней версии SDK.

Unigine::Object Class

Header: #include <UnigineObjects.h>
Inherits from: Node

An object with a set of surfaces to represent geometry. Rendering materials are assigned per object surface. An object can be assigned a physical body.

Object Class

Перечисления (Enums)

SURFACE_SHADOW_MODE#

ИмяОписание
SURFACE_SHADOW_MODE_MIXED = 0Mode to cast shadows from both static and dynamic light sources.
SURFACE_SHADOW_MODE_DYNAMIC = 1Mode to cast shadows only if the surface is lit by a dynamic light source.

SURFACE_LIGHTING_MODE#

ИмяОписание
SURFACE_LIGHTING_MODE_STATIC = 0Optimized for use in static GI, static reflections and cached shadows.
SURFACE_LIGHTING_MODE_DYNAMIC = 1Excludes the surface from use in static GI and static reflections and is suitable for dynamic shadows.
SURFACE_LIGHTING_MODE_ADVANCED = 2Enables manual adjustment of all lighting-related settings.

Members


bool setBody ( const Ptr<Body> & body, bool update = 1 ) #

Assigns a physical body to the object.

Arguments

  • const Ptr<Body> & body - Physical body to be assigned to the object.
  • bool update - Update flag. Set this flag to update the object after assigning the specified body to it.

Return value

true if the specified body is set successfully; otherwise, false.

void setBody ( const Ptr<Body> & body ) #

Assigns a physical body to the object.

Arguments

  • const Ptr<Body> & body - Physical body to be assigned to the object.

Ptr<Body> getBody ( ) const#

Returns a physical body assigned to the object.

Return value

Body assigned to the object or NULL (0), if no body is assigned.

Ptr<BodyRigid> getBodyRigid ( ) const#

Returns a rigid body assigned to the object.

Return value

Rigid body assigned to the object or NULL (0), if no body is assigned or the body is not rigid.

Math::BoundBox getBoundBox ( int surface ) const#

Returns the bounding box of a given surface.

Arguments

  • int surface - Surface number.

Return value

Bounding box.

Math::BoundSphere getBoundSphere ( int surface ) const#

Returns the bounding sphere of a given surface.

Arguments

  • int surface - Surface number.

Return value

Bounding sphere.

void setBakeToEnvProbe ( bool enabled, int surface ) #

Sets a value indicating if the specified surface is to be baked to environment probes.

Arguments

  • bool enabled - 1 to enable baking of the specified surface to environment probes, 0 - to disable it.
  • int surface - Surface number.

bool getBakeToEnvProbe ( int surface ) const#

Returns a value indicating if the specified surface is to be baked to environment probes.

Arguments

  • int surface - Surface number.

Return value

true if the specified surface is to be baked to environment probes; otherwise, false.

void setBakeToGI ( bool enabled, int surface ) #

Sets a value indicating if the specified surface is to be baked to GI (voxel probes and lightmaps).

Arguments

  • bool enabled - 1 to enable baking of the specified surface to GI, 0 - to disable it.
  • int surface - Surface number.

bool getBakeToGI ( int surface ) const#

Returns a value indicating if the specified surface is to be baked to GI (voxel probes and lightmaps).

Arguments

  • int surface - Surface number.

Return value

1 if the specified surface is to be baked to GI; otherwise, 0.

void setCastEnvProbeShadow ( bool enabled, int surface ) #

Enables or disables casting shadows from environment probes by the specified surface.

Arguments

  • bool enabled - 1 to enable casting shadows from environment probes by the specified surface, 0 to disable it.
  • int surface - Surface number.

bool getCastEnvProbeShadow ( int surface ) const#

Returns a value indicating if casting shadows from environment probes by the specified surface is enabled.

Arguments

  • int surface - Surface number.

Return value

1 if casting shadows from environment probes by the specified surface is enabled; otherwise, 0.

void setCastShadow ( bool enabled, int surface ) #

Enables or disables casting shadows from non-world lights for a given surface.

Arguments

  • bool enabled - 1 if shadows are to be cast by a given surface; otherwise, 0.
  • int surface - Surface number.

bool getCastShadow ( int surface ) const#

Returns the surface cast shadow flag, which indicates if a given surface should cast shadows from non-world lights.

Arguments

  • int surface - Surface number.

Return value

Positive number if shadows are cast by a given surface; otherwise, 0.

void setCastWorldShadow ( bool enabled, int surface ) #

Enables or disables casting shadows from world lights for a given surface.

Arguments

  • bool enabled - true if world shadows are to be cast by a given surface; otherwise, false.
  • int surface - Surface number.

bool getCastWorldShadow ( int surface ) const#

Returns the surface cast world shadow flag, which indicates if a given surface should cast shadows from world lights.

Arguments

  • int surface - Surface number.

Return value

Positive number if world shadows are cast by a given surface; otherwise, 0.

void setCollision ( bool enabled, int surface ) #

Enables or disables collision detection for a given surface.

Arguments

  • bool enabled - 1 if collision detection is enabled for a given surface; otherwise, 0.
  • int surface - Surface number.

bool getCollision ( int surface ) const#

Returns the surface collision flag, which indicates if collision detection for a given surface is enabled.

Arguments

  • int surface - Surface number.

Return value

Positive number if collision detection is enabled for a given surface; otherwise, 0.

void setCollisionMask ( int mask, int surface ) #

Sets a collision mask for a given surface. Two objects collide, if they both have matching masks.

Arguments

  • int mask - Surface collision mask.
  • int surface - Surface number.

int getCollisionMask ( int surface ) const#

Returns the collision mask for a given surface.

Arguments

  • int surface - Surface number.

Return value

Surface collision mask.

void setEnabled ( bool enabled ) #

Enables or disables the node.

Arguments

  • bool enabled - 1 to enable the node, 0 to disable it.

void setEnabled ( bool enabled, int surface ) #

Enables or disables a surface with the specified number. The disabled surface is not rendered, does not take part in collision detection, and does not cast shadows.
Source code (C++)
// temporarily disable the first surface of the object (index 0)
obj->setEnabled(false, 0);	// (enable/disable, surface index)

//...

// enable the first surface again if it is disabled
if(!obj->isEnabled(0))
	obj->setEnabled(true, 0);

Arguments

  • bool enabled - true to enable the surface, false to disable it.
  • int surface - Surface number.

bool isEnabled ( int surface ) const#

Returns a value indicating if a given surface is enabled.
Source code (C++)
// temporarily disable the first surface of the object (index 0)
obj->setEnabled(false, 0);	// (enable/disable, surface index)

//...

// enable the first surface again if it is disabled
if(!obj->isEnabled(0))
	obj->setEnabled(true, 0);

Arguments

  • int surface - Surface number.

Return value

true if the surface is enabled; otherwise, false.

bool isEnabled ( ) const#

Returns a value indicating if the node and its parent nodes are enabled.

Return value

Positive number if the node and its parent nodes are enabled; otherwise, 0.

void setIntersection ( bool enabled, int surface ) #

Enables or disables intersections with a given surface.

Arguments

  • bool enabled - true to enable intersections with a given surface, false to disable them.
  • int surface - Surface number.

bool getIntersection ( const Math::Vec3& p0, const Math::Vec3& p1, const Ptr<ObjectIntersectionTexCoord> & v, int surface ) const#

Checks if there is an intersection between a line and a given surface. If the function returns true the data about the texture coordinates of the intersection point will be put to ObjectIntersectionTexCoord object.
Notice
The following objects have individual parameters, that control accuracy of intersection detection for them:

Arguments

Return value

true if there is an intersection with a given surface; otherwise, false.

bool getIntersection ( int surface ) const#

Returns a surface intersection flag. This flag indicates if intersections with a given surface are enabled.

Arguments

  • int surface - Surface number.

Return value

true if intersections with a given surface are enabled; otherwise, false.

bool getIntersection ( const Math::Vec3& p0, const Math::Vec3& p1, const Ptr<ObjectIntersectionNormal> & v, int surface ) const#

Checks if there is an intersection between a line and a given surface. If the function returns true the data about the normal at the intersection point will be put to ObjectIntersectionNormal object.
Notice
The following objects have individual parameters, that control accuracy of intersection detection for them:

Arguments

  • const Math::Vec3& p0 - Line start point coordinates (local).
  • const Math::Vec3& p1 - Line end point coordinates (local).
  • const Ptr<ObjectIntersectionNormal> & v - ObjectIntersectionNormal class instance to store corresponding intersection data.
  • int surface - Surface number.

Return value

true if there is an intersection with a given surface; otherwise, false.

bool getIntersection ( const Math::Vec3 & p0, const Math::Vec3 & p1, int mask, const Ptr<ObjectIntersection> & v, int * ret_surface ) const#

Checks if there is an intersection between a line and a surface with a given intersection mask. If the function returns true the data about the intersection point will be put to ObjectIntersection object and the number of the first intersected surface will be put to the return variable.
Notice
The following objects have individual parameters, that control accuracy of intersection detection for them:

Arguments

  • const Math::Vec3 & p0 - Line start point coordinates (local).
  • const Math::Vec3 & p1 - Line end point coordinates (local).
  • int mask - Intersection mask.
  • const Ptr<ObjectIntersection> & v - ObjectIntersection class instance to store corresponding intersection data.
  • int * ret_surface - Intersected surface index.

Return value

true if there is an intersection; otherwise, false.

bool getIntersection ( const Math::Vec3& p0, const Math::Vec3 & p1, const Ptr<ObjectIntersection> & v, int surface ) const#

Checks if there is an intersection between a line and a given surface. If the function returns true the data about the intersection point will be put to ObjectIntersection object.
Notice
The following objects have individual parameters, that control accuracy of intersection detection for them:

Arguments

  • const Math::Vec3& p0 - Line start point coordinates (local).
  • const Math::Vec3 & p1 - Line end point coordinates (local).
  • const Ptr<ObjectIntersection> & v - ObjectIntersection class instance to store corresponding intersection data.
  • int surface - Surface number.

Return value

true if there is an intersection with a given surface; otherwise, false.

bool getIntersection ( const Math::Vec3& p0, const Math::Vec3& p1, int mask, const Ptr<ObjectIntersectionNormal> & v, int * ret_surface ) const#

Checks if there is an intersection between a line and a surface with a given intersection mask. If the function returns true the data about the normal at the intersection point will be put to ObjectIntersectionNormal object and the number of the first intersected surface will be put to the return variable.
Notice
The following objects have individual parameters, that control accuracy of intersection detection for them:

Arguments

  • const Math::Vec3& p0 - Line start point coordinates (local).
  • const Math::Vec3& p1 - Line end point coordinates (local).
  • int mask - Intersection mask.
  • const Ptr<ObjectIntersectionNormal> & v - ObjectIntersectionNormal class instance to store corresponding intersection data.
  • int * ret_surface - Intersected surface index.

Return value

true if there is an intersection; otherwise, false.

bool getIntersection ( const Math::Vec3& p0, const Math::Vec3& p1, int mask, const Ptr<ObjectIntersectionTexCoord> & v, int * ret_surface ) const#

Checks if there is an intersection between a line and a surface with a given intersection mask. If the function returns true the data about the texture coordinates of the intersection point will be put to ObjectIntersectionNormal object and the number of the first intersected surface will be put to the return variable.
Notice
The following objects have individual parameters, that control accuracy of intersection detection for them:

Arguments

  • const Math::Vec3& p0 - Line start point coordinates (local).
  • const Math::Vec3& p1 - Line end point coordinates (local).
  • int mask - Intersection mask.
  • const Ptr<ObjectIntersectionTexCoord> & v - ObjectIntersectionTexCoord class instance to store corresponding intersection data.
  • int * ret_surface - Intersected surface index.

Return value

true if there is an intersection; otherwise, false.

bool getIntersection ( const Math::Vec3& p0, const Math::Vec3& p1, int mask, Math::Vec3 * ret_point, Math::vec3 * OUT_ret_normal, Math::vec4 * OUT_ret_texcoord, int * ret_index, int * OUT_ret_instance, int * ret_surface ) const#

Checks if there is an intersection between a line and a surface with a given intersection mask. If the function returns true the data about the intersection (point, normal and texture coordinates) and the number of the first intersected surface will be put to corresponding return variables.
Notice
The following objects have individual parameters, that control accuracy of intersection detection for them:

Arguments

  • const Math::Vec3& p0 - Line start point coordinates (local).
  • const Math::Vec3& p1 - Line end point coordinates (local).
  • int mask - Intersection mask.
  • Math::Vec3 * ret_point - Intersection point coordinates. Pass NULL if this parameter is not required.
  • Math::vec3 * OUT_ret_normal - Coordinates of the normal vector to the intersection point. Pass NULL if this parameter is not required.
    Notice
    This output buffer is to be filled by the Engine as a result of executing the method.
  • Math::vec4 * OUT_ret_texcoord - Texture coordinates of the intersection point (vec4, where vec4.xy is for the first (0) UV channel, vec4.zw is for the second (1) UV channel). Pass NULL if this parameter is not required.
    Notice
    This output buffer is to be filled by the Engine as a result of executing the method.
  • int * ret_index - Intersected triangle number. Pass NULL if this parameter is not required.
  • int * OUT_ret_instance - Intersected instance number. Pass NULL if this parameter is not required.
    Notice
    Intersected instance number can be obtained for the following classes:
    Notice
    This output buffer is to be filled by the Engine as a result of executing the method.
  • int * ret_surface - Intersected surface number. Pass NULL if this parameter is not required.

Return value

true if there is at least one intersection found; otherwise, false.

bool getIntersection ( const Math::Vec3 & p0, const Math::Vec3& p1, Math::Vec3 * ret_point, Math::vec3 * OUT_ret_normal, Math::vec4 * OUT_ret_texcoord, int * ret_index, int * OUT_ret_instance, int surface ) const#

Checks if there is an intersection between a line and a given surface. If the function returns true the data about the intersection (point, normal and texture coordinates) will be put to corresponding return variables.
Notice
The following objects have individual parameters, that control accuracy of intersection detection for them:

Arguments

  • const Math::Vec3 & p0 - Line start point coordinates (local).
  • const Math::Vec3& p1 - Line end point coordinates (local).
  • Math::Vec3 * ret_point - Intersection point coordinates. Pass NULL if this parameter is not required.
  • Math::vec3 * OUT_ret_normal - Coordinates of the normal vector to the intersection point. Pass NULL if this parameter is not required.
    Notice
    This output buffer is to be filled by the Engine as a result of executing the method.
  • Math::vec4 * OUT_ret_texcoord - Texture coordinates of the intersection point (vec4, where vec4.xy is for the first (0) UV channel, vec4.zw is for the second (1) UV channel). Pass NULL if this parameter is not required.
    Notice
    This output buffer is to be filled by the Engine as a result of executing the method.
  • int * ret_index - Intersected triangle number. Pass NULL if this parameter is not required.
  • int * OUT_ret_instance - Intersected instance number. Pass NULL if this parameter is not required.
    Notice
    Intersected instance number can be obtained for the following classes:
    Notice
    This output buffer is to be filled by the Engine as a result of executing the method.
  • int surface - Surface number.

Return value

true if there is an intersection with a given surface; otherwise, false.

void setIntersectionMask ( int mask, int surface ) #

Sets an intersection mask for a given surface.

Arguments

  • int mask - Surface intersection mask.
  • int surface - Surface number.

int getIntersectionMask ( int surface ) const#

Returns the intersection mask for a given surface.

Arguments

  • int surface - Surface number.

Return value

Surface intersection mask.

void setPhysicsIntersection ( bool enabled, int surface ) #

Enables or disables physics intersections (between physical objects with bodies and collider shapes, or ray intersections with collider geometry) for a given surface.

Arguments

  • bool enabled - true to enable physics intersections with a given surface, false to disable them.
  • int surface - Surface number.

bool getPhysicsIntersection ( int surface ) const#

Returns a surface physics intersection flag. This flag indicates if physics intersections (between physical objects with bodies and collider shapes, or ray intersections with collider geometry) with a given surface are enabled.

Arguments

  • int surface - Surface number.

Return value

true if intersections with a given surface are enabled; otherwise, false.

void setPhysicsIntersectionMask ( int mask, int surface ) #

Sets the physics intersection mask for a surface with the specified number.

Arguments

  • int mask - Surface physics intersection mask.
  • int surface - Surface number.

int getPhysicsIntersectionMask ( int surface ) const#

Returns the physics intersection mask for a surface with the specified number.

Arguments

  • int surface - Surface number.

Return value

Surface physics intersection mask set for the specified surface.

void setShadowMask ( int mask, int surface ) #

Sets a shadow mask for a given surface.

For the shadow from an object's surface to be rendered for a light source, this mask must match the following ones (one bit, at least):

Arguments

  • int mask - Surface shadow mask.
  • int surface - Surface number.

int getShadowMask ( int surface ) const#

Returns the shadow mask for a given surface.

For the shadow from an object's surface to be rendered for a light source, this mask must match the following ones (one bit, at least):

Arguments

  • int surface - Surface number.

Return value

Surface shadow mask.

Ptr<Material> getMaterial ( int surface ) const#

Returns a material used for a given surface.

Arguments

  • int surface - Surface number.

Return value

Material smart pointer.

Ptr<Material> getMaterialInherit ( int surface ) #

Inherits the surface material (i.e. creates a material instance). Modifications made to a new material instance will not affect the source material.
Notice
A child material will be created only once, all subsequent calls to this method will return the first created child material.

Arguments

  • int surface - Surface number.

Return value

Inherited material smart pointer.

bool isMaterialInherited ( int surface ) const#

Returns the value indicating if a given surface material is inherited. Modifications made in a material instance do not affect the source material.

Arguments

  • int surface - Surface number.

Return value

Positive number if the material is inherited; otherwise, 0.

void clearMaterialInherit ( int surface ) #

Removes the inherited material and sets back the source(parent) material for the specified surface.

Arguments

  • int surface - Surface number.

void setMaterialParameterInt ( const char * name, int parameter, int surface ) #

Sets the value of a given integer parameter of the surface material.
Notice
When called for the first time, this method creates a copy of the source material (which is equal to the getMaterialInherit method).

Arguments

  • const char * name - Parameter name.
  • int parameter - Parameter value.
  • int surface - Surface number.

int getMaterialParameterInt ( const char * name, int surface ) const#

Returns the value of a given integer parameter of the surface material.

Arguments

  • const char * name - Parameter name.
  • int surface - Surface number.

Return value

Parameter value.

void setMaterialParameterInt2 ( const char * name, const Math::ivec2 & parameter, int surface ) #

Sets the value of a given ivec2 parameter of the surface material.
Notice
When called for the first time, this method creates a copy of the source material (which is equal to the getMaterialInherit method).

Arguments

  • const char * name - Parameter name.
  • const Math::ivec2 & parameter - Parameter value.
  • int surface - Surface number.

Math::ivec2 getMaterialParameterInt2 ( const char * name, int surface ) const#

Returns the value of a given ivec2 parameter of the surface material.

Arguments

  • const char * name - Parameter name.
  • int surface - Surface number.

Return value

Parameter value.

void setMaterialParameterInt3 ( const char * name, const Math::ivec3 & parameter, int surface ) #

Sets the value of a given ivec3 parameter of the surface material.
Notice
When called for the first time, this method creates a copy of the source material (which is equal to the getMaterialInherit method).

Arguments

  • const char * name - Parameter name.
  • const Math::ivec3 & parameter - Parameter value.
  • int surface - Surface number.

Math::ivec3 getMaterialParameterInt3 ( const char * name, int surface ) const#

Returns the value of a given ivec3 parameter of the surface material.

Arguments

  • const char * name - Parameter name.
  • int surface - Surface number.

Return value

Parameter value.

void setMaterialParameterInt4 ( const char * name, const Math::ivec4 & parameter, int surface ) #

Sets the value of a given ivec4 parameter of the surface material.
Notice
When called for the first time, this method creates a copy of the source material (which is equal to the getMaterialInherit method).

Arguments

  • const char * name - Parameter name.
  • const Math::ivec4 & parameter - Parameter value.
  • int surface - Surface number.

Math::ivec4 getMaterialParameterInt4 ( const char * name, int surface ) const#

Returns the value of a given ivec4 parameter of the surface material.

Arguments

  • const char * name - Parameter name.
  • int surface - Surface number.

Return value

Parameter value.

void setMaterialParameterFloat ( const char * name, float parameter, int surface ) #

Sets the value of a given float parameter of the surface material.
Notice
When called for the first time, this method creates a copy of the source material (which is equal to the getMaterialInherit method).

Arguments

  • const char * name - Parameter name.
  • float parameter - Parameter value.
  • int surface - Surface number.

float getMaterialParameterFloat ( const char * name, int surface ) const#

Returns the value of a given float parameter of the surface material.

Arguments

  • const char * name - Parameter name.
  • int surface - Surface number.

Return value

Parameter value.

void setMaterialParameterFloat2 ( const char * name, const Math::vec2 & parameter, int surface ) #

Sets the value of a given vec2 parameter of the surface material.
Notice
When called for the first time, this method creates a copy of the source material (which is equal to the getMaterialInherit method).

Arguments

  • const char * name - Parameter name.
  • const Math::vec2 & parameter - Parameter value.
  • int surface - Surface number.

Math::vec2 getMaterialParameterFloat2 ( const char * name, int surface ) const#

Returns the value of a given vec2 parameter of the surface material.

Arguments

  • const char * name - Parameter name.
  • int surface - Surface number.

Return value

Parameter value.

void setMaterialParameterFloat3 ( const char * name, const Math::vec3 & parameter, int surface ) #

Sets the value of a given vec3 parameter of the surface material.
Notice
When called for the first time, this method creates a copy of the source material (which is equal to the getMaterialInherit method).

Arguments

  • const char * name - Parameter name.
  • const Math::vec3 & parameter - Parameter value.
  • int surface - Surface number.

Math::vec3 getMaterialParameterFloat3 ( const char * name, int surface ) const#

Returns the value of a given vec3 parameter of the surface material.

Arguments

  • const char * name - Parameter name.
  • int surface - Surface number.

Return value

Parameter value.

void setMaterialParameterFloat4 ( const char * name, const Math::vec4 & parameter, int surface ) #

Sets the value of a given vec4 parameter of the surface material.
Notice
When called for the first time, this method creates a copy of the source material (which is equal to the getMaterialInherit method).

Arguments

  • const char * name - Parameter name.
  • const Math::vec4 & parameter - Parameter value.
  • int surface - Surface number.

Math::vec4 getMaterialParameterFloat4 ( const char * name, int surface ) const#

Returns the value of a given vec4 parameter of the surface material.

Arguments

  • const char * name - Parameter name.
  • int surface - Surface number.

Return value

Parameter value.

void setMaterialState ( const char * name, int state, int surface ) #

Sets the state value for a given surface material.
Notice
When called for the first time, this method creates a copy of the source material (which is equal to the getMaterialInherit method).

Arguments

  • const char * name - Material state name.
  • int state - State value.
  • int surface - Surface number.

int getMaterialState ( const char * name, int surface ) const#

Returns the state value of a given surface material.

Arguments

  • const char * name - Material state name.
  • int surface - Surface number.

Return value

State value.

void setMaterialTexture ( const char * name, const char * texture, int surface ) #

Sets the path to a given texture of a given surface material.
Notice
When called for the first time, this method creates a copy of the source material (which is equal to the getMaterialInherit method).

Arguments

  • const char * name - Material texture name.
  • const char * texture - Path to the texture file.
  • int surface - Surface number.

const char * getMaterialTexture ( const char * name, int surface ) const#

Returns the path to a given texture of a given surface material.

Arguments

  • const char * name - Material texture name.
  • int surface - Surface number.

Return value

Path to the texture file.

void setMinVisibleDistance ( float distance, int surface ) #

Updates the minimum visibility distance of a given surface. It is the distance, starting from which the surface begins to fade in until it becomes completely visible.

Arguments

  • float distance - Minimum visibility distance, in units. If a negative value is provided, 0 will be used instead. The default value is -inf.
  • int surface - Surface number.

float getMinVisibleDistance ( int surface ) const#

Returns minimum visibility distance of a given surface. It is the distance, starting from which the surface begins to fade in until it becomes completely visible.

Arguments

  • int surface - Surface number.

Return value

Minimum visibility distance, in units.

void setMaxVisibleDistance ( float distance, int surface ) #

Updates the maximum visibility distance of a given surface. It is the distance, starting from which the surface begins to fade out until it becomes completely invisible.

Arguments

  • float distance - Maximum visibility distance, in units. If a negative value is provided, 0 will be used instead. The default value is inf.
  • int surface - Surface number.

float getMaxVisibleDistance ( int surface ) const#

Returns the maximum visibility distance of a given surface. It is the distance, starting from which the surface begins to fade out until it becomes completely invisible.

Arguments

  • int surface - Surface number.

Return value

Maximum visibility distance, in units.

void setMinFadeDistance ( float distance, int surface ) #

Updates the minimum fade-in distance of a given surface. Over this distance the surface smoothly becomes visible due to alpha fading. It is counted starting from the minimum visibility distance.

Arguments

  • float distance - Minimum fade-in distance, in units. If a negative value is provided, 0 will be used instead. The default value is 0.
  • int surface - Surface number.

float getMinFadeDistance ( int surface ) const#

Returns the minimum fade-in distance of a given surface. Over this distance the surface smoothly becomes visible due to alpha fading. It is counted starting from the minimum visibility distance.

Arguments

  • int surface - Surface number.

Return value

Minimum fade-in distance, in units.

void setMaxFadeDistance ( float distance, int surface ) #

Updates the maximum fade-out distance of a given surface. Over this distance the surface smoothly becomes invisible due to alpha fading. It is counted off starting from the maximum visibility distance.

Arguments

  • float distance - Maximum fade-out distance, in units. If a negative value is provided, 0 will be used instead. The default value is 0.
  • int surface - Surface number.

float getMaxFadeDistance ( int surface ) const#

Returns the maximum fade-out distance. Over this distance the surface smoothly becomes invisible due to alpha fading. It is counted starting from the maximum visibility distance.

Arguments

  • int surface - Surface number.

Return value

Maximum fade-out distance, in units.

void setMinParent ( int parent, int surface ) #

Sets surface minimum LOD parent surface number.

Arguments

  • int parent - Surface minimum LOD parent surface number.
  • int surface - Surface number.

int getMinParent ( int surface ) const#

Returns the surface minimum LOD parent surface number.

Arguments

  • int surface - Surface number.

Return value

Surface minimum LOD parent surface number.

void setMaxParent ( int parent, int surface ) #

Sets a surface maximum LOD parent surface number.

Arguments

  • int parent - Surface maximum LOD parent surface number.
  • int surface - Surface number.

int getMaxParent ( int surface ) const#

Returns the surface maximum LOD parent surface number.

Arguments

  • int surface - Surface number.

Return value

Surface maximum LOD parent surface number.

int getNumSurfaces ( ) const#

Returns the number of surfaces of the object.

Return value

int getNumTriangles ( int surface ) const#

Returns the number of triangles comprising a given surface.

Arguments

  • int surface - Surface number.

Return value

Number of triangles.

void setParent ( int parent, int surface ) #

Sets or clears the parent surface for a given surface.

Arguments

  • int parent - Number of the parent surface or -1 to clear the parent.
  • int surface - Surface number.

int getParent ( int surface ) const#

Returns the number of the parent surface for a given surface.

Arguments

  • int surface - Surface number.

Return value

Parent surface number. If -1 is returned, the parent surface is not specified for a given surface.

int setSurfaceProperty ( const char * name, const char * pattern ) #

Sets a new property for a given surface.

Arguments

  • const char * name - Name of the new property.
  • const char * pattern - Pattern (string with a regular expression), against which surface names will be matched.

Return value

1 if the property is set successfully; otherwise, 0.

int setSurfaceProperty ( const char * name, int surface ) #

Sets a new property for the specified surface.

Arguments

  • const char * name - Name of the new property.
  • int surface - Surface number.

Return value

1 if the property is set successfully; otherwise, 0.

int setSurfaceProperty ( const UGUID & guid, int surface ) #

Sets a new property for the specified surface.

Arguments

  • const UGUID & guid - Property GUID.
  • int surface - Surface number.

Return value

1 if the property is set successfully; otherwise, 0.

int setSurfaceProperty ( const UGUID & guid, const char * pattern ) #

Sets a new property for the specified surface(s).

Arguments

  • const UGUID & guid - Property GUID.
  • const char * pattern - Pattern (string with a regular expression), against which surface names will be matched.

Return value

1 if the property is set successfully; otherwise, 0.

int setSurfaceProperty ( const Ptr<Property> & property, int surface ) #

Sets a new property for the specified surface.

Arguments

  • const Ptr<Property> & property - Property smart pointer.
  • int surface - Surface number.

Return value

1 if the property is set successfully; otherwise, 0.

int setSurfaceProperty ( const Ptr<Property> & property, const char * pattern ) #

Sets a new property for the specified surface(s).

Arguments

  • const Ptr<Property> & property - Property smart pointer.
  • const char * pattern - Pattern (string with a regular expression), against which surface names will be matched.

Return value

1 if the property is set successfully; otherwise, 0.

Ptr<Property> getSurfaceProperty ( int surface ) const#

Returns the property smart pointer.

Arguments

  • int surface - Surface number.

Return value

Property smart pointer.

Ptr<Property> getSurfacePropertyInherit ( int surface ) #

Inherits the property for the specific object. All changes of the inherited property will not affect the reference one.

Arguments

  • int surface - Surface number.

Return value

Inherited property smart pointer.

void clearSurfaceProperty ( int surface ) #

Removes the assigned property from the specified surface.

Arguments

  • int surface - Surface number.

void clearSurfacePropertyInherit ( int surface ) #

Removes the inherited property and sets back the source(parent) property for the specified surface.

Arguments

  • int surface - Surface number.

bool isSurfacePropertyInherited ( int surface ) const#

Returns a value indicating if a given property is inherited.

Arguments

  • int surface - Surface number.

Return value

Positive number if the surface property is inherited; otherwise, 0.

const char * getSurfacePropertyName ( int surface ) const#

Returns the name of the property of a given surface.

Arguments

  • int surface - Surface number.

Return value

Property name.

const char * getSurfaceName ( int surface ) const#

Returns the name of a given surface.

Arguments

  • int surface - Surface number.

Return value

Surface name.

void setViewportMask ( int mask, int surface ) #

Sets a viewport mask for a given surface. The object surface is rendered, if its mask matches the player (camera) and material masks.
Source code (C++)
// hide the first surface from the camera by disabling all the bits of the mask
obj->setViewportMask(0, 0);

// restore visibility of the surface (the camera must have the first bit of the Viewport mask enabled)
obj->setViewportMask(1, 0);

// enable all the bits by using bitwise NOT
obj->setViewportMask(~0, 0);

// enable ONLY the fifth bit of the mask
obj->setViewportMask(1 << 4, 0);

Arguments

  • int mask - Surface viewport mask.
  • int surface - Surface number.

int getViewportMask ( int surface ) const#

Returns a viewport mask for a given surface. The object surface is rendered, if its mask matches the player (camera) and material masks.
Source code (C++)
// get the viewport mask of the first surface
int mask = obj->getViewportMask(0);

// check if the fifth bit is set
bool isBitSet = (mask >> 4 & 1) != 0;

// check if masks match
bool doMasksMatch = (mask & mask2) != 0;

Arguments

  • int surface - Surface number.

Return value

Surface viewport mask.

Math::WorldBoundBox getWorldBoundBox ( int surface ) const#

Returns the world bounding box of a given surface.

Arguments

  • int surface - Surface number.

Return value

Bounding box (in world coordinates).

Math::WorldBoundSphere getWorldBoundSphere ( int surface ) const#

Returns the world bounding sphere of a given surface.

Arguments

  • int surface - Surface number.

Return value

Bounding sphere (in world coordinates).

int findSurface ( const char * name ) const#

Searches for a surface with a given name.

Arguments

  • const char * name - Surface name.

Return value

Surface number if it exists; otherwise, -1.

void flushBodyTransform ( ) #

Forces to set the transformations of the body for the node.

void render ( Render::PASS pass, int surface ) #

Renders raw object's surface to texture in specified pass.

Notice
All camera parameters should be set manually.

Usage Example

Source code (C++)
texture_render->bindColorTexture(0, texture);
texture_render->enable();
object->render(Render::PASS_AMBIENT, 0);
texture_render->disable();
texture_render->unbindColorTexture(0);

Arguments

void setSoundOcclusion ( float occlusion, int surface ) #

Sets a new sound occlusion value for the specified surface of the object, that determines how much it affects sounds in case of occlusion. For a sound source to be occluded by the specified surface, at least one bit of its occlusion mask should match the occlusion mask of the sound source.
Notice
Sound occlusion must be enabled.

Arguments

  • float occlusion - Occlusion value in the range [0.0f, 1.0f] to be set for the specified surface.
    • 0.0f - no occlusion, sound volume will stay the same in case of occlusion by the surface.
    • 1.0f - maximum occlusion, sound will not be heard at all in case of occlusion by the surface.
    The default value is 0.0f.
  • int surface - Surface number.

float getSoundOcclusion ( int surface ) const#

Returns the current sound occlusion value for the specified surface of the object, that determines how much it affects sounds in case of occlusion. For a sound source to be occluded by the specified surface, at least one bit of its occlusion mask should match the occlusion mask of the sound source.
Notice
Sound occlusion must be enabled.

Arguments

  • int surface - Surface number.

Return value

Current occlusion value in the range [0.0f, 1.0f] set for the specified surface.
  • 0.0f - no occlusion, sound volume will stay the same in case of occlusion by the surface.
  • 1.0f - maximum occlusion, sound will not be heard at all in case of occlusion by the surface.
The default value is 0.0f.

void setSoundOcclusionMask ( int mask, int surface ) #

Sets a new sound occlusion mask for the specified surface of the object. For a sound source to be occluded by the specified surface, at least one bit of this mask should match the occlusion mask of the sound source. Each surface has its own occlusion value, that determines how much it affects sounds in case of occlusion.
Notice
Sound occlusion must be enabled.

Arguments

  • int mask - Integer, each bit of which is a mask for sound source occlusion.
  • int surface - Surface number.

int getSoundOcclusionMask ( int surface ) const#

Returns sound occlusion mask for the specified surface of the object. For a sound source to be occluded by the specified surface, at least one bit of this mask should match the occlusion mask of the sound source. Each surface has its own occlusion value, that determines how much it affects sounds in case of occlusion.
Notice
Sound occlusion must be enabled.

Arguments

  • int surface - Surface number.

Return value

Integer, each bit of which is a mask for sound source occlusion.

void setPhysicsFriction ( float value, int surface ) #

Sets the coefficient of friction for the specified surface. This coefficient allows to model more rough rubbing of surfaces and is opposite to the body's movement direction. Friction parameter values of both surfaces being in contact are considered. The resulting calculated friction depends on the objects' masses and gravity, and the angle between contacting surfaces.
  • The higher the value, the less tendency the body has to slide.
Friction is calculated by the contact between physical bodies.

Arguments

  • float value - Friction coefficient value in the range [0.0f, 1.0f] to be set for the specified surface.
  • int surface - Surface number.

float getPhysicsFriction ( int surface ) const#

Returns the current coefficient of friction for the specified surface. This coefficient allows to model more rough rubbing of surfaces and is opposite to the body's movement direction. Friction parameter values of both surfaces being in contact are considered. The resulting calculated friction depends on the objects' masses and gravity, and the angle between contacting surfaces.
  • The higher the value, the less tendency the body has to slide.
Friction is calculated by the contact between physical bodies.

Arguments

  • int surface - Surface number.

Return value

Current friction coefficient value in the range [0.0f, 1.0f] set for the specified surface.

void setPhysicsRestitution ( float value, int surface ) #

Sets the coefficient of restitution for the specified surface. This coefficient determines the degree of relative kinetic energy retained after a collision. It defines how bouncy the object is by contacting with another object. It depends on the elasticity of the materials of colliding bodies. The simulated restitution, like friction, considers the total value for both objects being in contact.
  • The maximum value of 1.0f models elastic collision. Objects bounce off according to the impulse they get by contact.
  • The minimum value of 0.0f models inelastic collision. Objects do not bounce at all.
Restitution is calculated by the contact between physical bodies.

Arguments

  • float value - Restitution coefficient value in the range [0.0f, 1.0f] to be set for the specified surface.
  • int surface - Surface number.

float getPhysicsRestitution ( int surface ) const#

Returns the current coefficient of restitution for the specified surface. This coefficient determines the degree of relative kinetic energy retained after a collision. It defines how bouncy the object is by contacting with another object. It depends on the elasticity of the materials of colliding bodies. The simulated restitution, like friction, considers the total value for both objects being in contact.
  • The maximum value of 1.0f models elastic collision. Objects bounce off according to the impulse they get by contact.
  • The minimum value of 0.0f models inelastic collision. Objects do not bounce at all.
Restitution is calculated by the contact between physical bodies.

Arguments

  • int surface - Surface number.

Return value

Current restitution coefficient value in the range [0.0f, 1.0f] set for the specified surface.

void setShadowMode ( Object::SURFACE_SHADOW_MODE mode, int surface ) #

Sets the shadow mode for the specified surface. To cast a shadow from a light source (Omni, Proj, or World), the surface's shadow mode should be adjusted in accordance with the shadow mode of the light source.

Arguments

Object::SURFACE_SHADOW_MODE getShadowMode ( int surface ) const#

Returns the shadow mode set for the specified surface. To cast a shadow from a light source (Omni, Proj, or World), the surface's shadow mode should be adjusted in accordance with the shadow mode of the light source.

Arguments

  • int surface - Target surface number.

Return value

Surface shadow mode, one of the following:

UGUID getLostMaterialGUID ( int surface ) const#

Returns the GUID of a lost material. If for some reason a material assigned to the specified surface is missing, this method can be used to get it's GUID.

Arguments

  • int surface - Target surface number.

Return value

Lost material GUID.

UGUID getLostSurfacePropertyGUID ( int surface ) const#

Returns the GUID of a lost surface property. If for some reason a property assigned to the specified surface is missing, this method can be used to get it's GUID.

Arguments

  • int surface - Target surface number.

Return value

Lost property GUID.

bool isVisibleCamera ( ) const#

Checks if the object is rendered.

Return value

1 if the object is rendered; otherwise, 0.

bool isVisibleShadow ( ) const#

Checks if only the object shadow is rendered.

Return value

1 if the object shadow is rendered; otherwise, 0.

void setLightingMode ( Object::SURFACE_LIGHTING_MODE mode, int surface ) #

Sets the lighting mode for the specified surface.

Arguments

Object::SURFACE_LIGHTING_MODE getLightingMode ( int surface ) const#

Returns the lighting mode for the specified surface.

Arguments

  • int surface - Target surface number.

Return value

Surface lighting mode, one of the following:

void setMaterialFilePath ( const char * path, int surface ) #

Sets the material by file path to a given surface.

Arguments

  • const char * path - Material file path.
  • int surface - Target surface number.

void setMaterialFilePath ( const char * path, const char * pattern ) #

Sets the material by file path to given surfaces.

Arguments

  • const char * path - Material file path.
  • const char * pattern - Pattern (string with a regular expression), against which surface names will be matched.

const char * getMaterialFilePath ( int surface ) const#

Returns the file path for the material assigned to a given surface.

Arguments

  • int surface - Target surface number.

Return value

Material file path.

void setMaterialGUID ( const UGUID & guid, int surface ) #

Sets a new material with a given GUID to the specified surface.

Arguments

  • const UGUID & guid - Material GUID.
  • int surface - Target surface number.

void setMaterialGUID ( const UGUID & guid, const char * pattern ) #

Sets a new material with a given GUID to the specified surface.

Arguments

  • const UGUID & guid - Material GUID.
  • const char * pattern - Pattern (string with a regular expression), against which surface names will be matched.

UGUID getMaterialGUID ( int surface ) const#

Returns a GUID of the material for the specified surface.

Arguments

  • int surface - Target surface number.

Return value

Material GUID.

void setMaterial ( const Ptr<Material> & mat, int surface ) #

Sets a new material for the specified surface.

Arguments

  • const Ptr<Material> & mat - Material smart pointer.
  • int surface - Surface number.

void setMaterial ( const Ptr<Material> & mat, const char * pattern ) #

Sets a new material for the specified surface.

Arguments

  • const Ptr<Material> & mat - Material smart pointer.
  • const char * pattern - Pattern (string with a regular expression), against which surface names will be matched.

int getSurfaceStatDrawCalls ( int surface ) const#

Returns the number of draw calls (DIP) for the surface with the specified number during the last frame.

Arguments

  • int surface - Surface number.

Return value

Number of draw calls (DIP) for the specified surface during the last frame.

int getSurfaceStatDrawCountViewport ( int surface ) const#

Returns the number of times the surface with the specified number was drawn in the viewport last frame.

Arguments

  • int surface - Surface number.

Return value

Number of times the specified surface was drawn in the viewport last frame.

int getSurfaceStatDrawCountReflection ( int surface ) const#

Returns the number of times the surface with the specified index was drawn during reflections rendering in the last frame.

Arguments

  • int surface - Surface number.

Return value

Number of times the specified surface was drawn during reflections rendering in the last frame.

int getSurfaceStatDrawCountShadow ( int surface ) const#

Returns the number of times the surface with the specified index was drawn during shadows rendering in the last frame.
AppWorldLogic.cpp
ObjectMeshStaticPtr mesh;
int total_draw_count_shadows = 0;

// event handler function calculating the total number of times the surfaces of a Static Mesh were drawn

void endscreen_event_handler()
{
	total_draw_count_shadows = 0;

	for (int surf = 0; surf < mesh->getNumSurfaces(); surf++)
	{
		if (mesh->getSurfaceStatFrame(surf) == Engine::get()->getFrame())
		{
			// This surface was rendered during the current frame, so the info is up-to date
			total_draw_count_shadows += mesh->getSurfaceStatDrawCountShadow(surf);
		}
	}
}

// create an instance of the EventConnection class
EventConnection endscreen_event_connection;

int AppWorldLogic::init()
{

	// subscribe to the EndScreen event with a handler function keeping the connection
	Render::getEventEndScreen().connect(endscreen_event_connection, endscreen_event_handler);

	return 1;
}

Arguments

  • int surface - Surface number.

Return value

Number of times the specified surface was drawn during shadows rendering in the last frame.

long long getSurfaceStatFrame ( int surface ) const#

Returns the number of Engine frame, in which the surface with the specified number was drawn last time.

Arguments

  • int surface - Surface number.

Return value

Number of frame, in which the specified surface was drawn last time.
Last update: 17.10.2024
Build: ()