This page has been translated automatically.
视频教程
界面
要领
高级
实用建议
基础
专业(SIM)
UnigineEditor
界面概述
资源工作流程
Version Control
设置和首选项
项目开发
调整节点参数
Setting Up Materials
设置属性
照明
Sandworm
使用编辑器工具执行特定任务
如何擴展編輯器功能
嵌入式节点类型
Nodes
Objects
Effects
Decals
光源
Geodetics
World Nodes
Sound Objects
Pathfinding Objects
Players
编程
基本原理
搭建开发环境
使用范例
C++
C#
UnigineScript
统一的Unigine着色器语言 UUSL (Unified UNIGINE Shader Language)
Plugins
File Formats
材质和着色器
Rebuilding the Engine Tools
GUI
双精度坐标
应用程序接口
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
Tutorials
注意! 这个版本的文档是过时的,因为它描述了一个较老的SDK版本!请切换到最新SDK版本的文档。
注意! 这个版本的文档描述了一个不再受支持的旧SDK版本!请升级到最新的SDK版本。

Unigine::ObjectWaterMesh Class

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

Interface for object water mesh handling. The water mesh can have four sine waves. The object is used to create small water basins such as ponds, lakes and so on. ObjectWaterMesh has physics support, so it can have a body assigned, therefore, it can interact with other scene objects.

See Also#

A UnigineScript API sample <UnigineSDK>/data/samples/objects/water_01

ObjectWaterMesh Class

Members


static ObjectWaterMeshPtr create ( ) #

Constructor. Creates a new water mesh object.

static ObjectWaterMeshPtr create ( const Ptr<Mesh> & mesh ) #

Constructor. Creates a new water mesh object.

Arguments

  • const Ptr<Mesh> & mesh - The mesh smart pointer.

static ObjectWaterMeshPtr create ( const char * path ) #

Constructor. Creates a new water mesh object from a specified file.

Arguments

  • const char * path - Path to the water mesh.

void setFieldMask ( int mask ) #

Sets a field mask specifying the area of the Field node to be applied.

Arguments

  • int mask - An integer value, each bit of which is used to set a mask.

int getFieldMask ( ) #

Returns the mask specifying the area of the applied Field node.

Return value

The integer value, each bit of which sets a mask.

float getHeight ( const Math::Vec3 & position ) #

Returns a height offset of a given point relatively to the water mesh surface.

Arguments

  • const Math::Vec3 & position - The point position coordinates.

Return value

Height offset of the point.

int setMesh ( const Ptr<Mesh> & mesh ) #

Allows for reinitialization of the water mesh object: copies a given mesh into the current water mesh.
Source code (C++)
// create an empty decal mesh
ObjectWaterMeshPtr waterMesh = ObjectWaterMesh::create();
// create a mesh
MeshPtr mesh = Mesh::create("lake.mesh");
// copy the mesh into the water mesh
waterMesh->setMesh(mesh);

Arguments

  • const Ptr<Mesh> & mesh - The mesh smart pointer.

Return value

1 if the mesh is copied successfully; otherwise, 0.

int getMesh ( const Ptr<Mesh> & mesh ) #

Copies the current water mesh into the received mesh.
Source code (C++)
// a water mesh from which geometry will be obtained
ObjectWaterMeshPtr waterMesh = ObjectWaterMesh::create("lake.mesh");
// create a new mesh
MeshPtr mesh = Mesh::create();
// copy geometry to the created mesh
if (waterMesh->getMesh(mesh)) {
	// do something with the obtained mesh
}
else {
	Log::error("Failed to copy a mesh\n");
}

Arguments

  • const Ptr<Mesh> & mesh - The received mesh smart pointer.

Return value

1 if the mesh is copied successfully; otherwise, 0.

int setMeshPath ( const char * path, int force_load = 0 ) #

Sets a new path to the .mesh file to be used for the object and forces loading of the mesh.

Arguments

  • const char * path - New path to the .mesh file to be set.
  • int force_load - Force flag.
    • If 1 is specified, the mesh with the new name will be loaded immediately from the file specified as the first argument for this function.
    • If 0 is specified, only the mesh name will be updated.

Return value

1 if:
  • The current mesh name coincides the new name.
  • The mesh with the new name has been loaded successfully.
  • The force flag is set to 0.
In other cases, 0.

const char * getMeshPath ( ) #

Returns the path to the .mesh file currently used for the object.

Return value

Path to the .mesh file.

Math::vec3 getNormal ( const Math::Vec3 & position ) #

Returns the normal vector of a given point (used to orient objects along the waves normals).

Arguments

  • const Math::Vec3 & position - The point position coordinates.

Return value

Normal vector.

void setWave ( int num, const Math::vec4 & wave ) #

Sets parameters for one of four simulated water waves.

Arguments

  • int num - Wave number in range [0;3].
  • const Math::vec4 & wave - Wave parameters:
    • The X and Y components containing the velocity of the wave.
    • The Z component containing the frequency.
    • The W component containing the amplitude.

Math::vec4 getWave ( int num ) #

Returns parameters of one of four simulated water waves.

Arguments

  • int num - Wave number in range [0;3].

Return value

Wave parameters:
  • The X and Y components containing the velocity of the wave.
  • The Z component containing the frequency.
  • The W component containing the amplitude.

void setWaveAngle ( int num, float angle ) #

Sets direction (angle of spreading) for a given wave:
  • If 0 is specified, the wave spreads along the Y axis and is parallel to the X axis.
  • If a positive value is specified, the wave direction is slanted counterclockwise relative to its initial spread.
  • If a negative value is specified, the wave is rotated clockwise.

Arguments

  • int num - Wave number in range [0;3].
  • float angle - Angle, in degrees. Both positive and negative values are acceptable.

float getWaveAngle ( int num ) #

Returns direction (angle of spreading) of a given wave.

Arguments

  • int num - Wave number in range [0;3].

Return value

Angle, in degrees.

void setWaveHeight ( int num, float height ) #

Sets the distance between the highest and the lowest peaks for the given wave. It sets the wave form along with the setWaveLength() function. The higher the value is, the higher the waves are.

Arguments

  • int num - Wave number in range [0;3].
  • float height - Height, in units.

float getWaveHeight ( int num ) #

Returns the distance between the highest and the lowest peaks for the given wave.

Arguments

  • int num - Wave number in range [0;3].

Return value

Height, in units.

void setWaveLength ( int num, float length ) #

Sets the distance between successive crests for the given wave. The higher the length value is, the broader the waves are.

Arguments

  • int num - Wave number in range [0;3].
  • float length - Length, in units.

float getWaveLength ( int num ) #

Returns the distance between successive crests of the given wave.

Arguments

  • int num - Wave number in range [0;3].

Return value

Length, in units.

void setWaveSpeed ( int num, float speed ) #

Sets a speed for a given wave. The higher the value, the faster waves follow each other.

Arguments

  • int num - Wave number in range [0;3].
  • float speed - Speed, in units per second.

float getWaveSpeed ( int num ) #

Returns the speed of a given wave.

Arguments

  • int num - Wave number in range [0;3].

Return value

Speed, in units per second.

int loadMesh ( const char * path ) #

Loads a mesh for the current water mesh from the file. This function doesn't change the mesh name.

Arguments

  • const char * path - The name of the mesh file.

Return value

1 if the mesh is loaded successfully; otherwise, 0.

int saveMesh ( const char * path ) #

Saves the object water mesh into a file.

Arguments

  • const char * path - A name of the file.

Return value

1 if the mesh is saved successfully; otherwise, 0.

static int type ( ) #

Returns the type of the node.

Return value

Object type identifier.
Last update: 2024-09-03
Build: ()