Programming
Fundamentals
Setting Up Development Environment
Usage Examples
UnigineScript
C++
C#
UUSL (Unified UNIGINE Shader Language)
File Formats
Rebuilding the Engine and Tools
GUI
Double Precision Coordinates
API
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
CIGI Client Plugin

Unigine::Primitives Class

Header:#include <UniginePrimitives.h>

This class contains methods allowing you to create dynamic meshes of the predefined forms, or add surfaces of the predefined forms to already existing dynamic meshes.

Primitives Class

Members


Ptr<ObjectMeshDynamic> createBox(const Math::vec3 & size)

Creates a dynamic mesh in a form of a box.

Arguments

  • const Math::vec3 & size - Box size along the X, Y and Z axes.

Return value

ObjectMeshDynamic instance.

Ptr<ObjectMeshDynamic> createCapsule(float radius, float height, int stacks = 16, int slices = 32)

Creates a dynamic mesh in a form of a capsule.

Arguments

  • float radius - Capsule radius.
  • float height - Capsule height.
  • int stacks - Number of stacks that divide the capsule radially.
  • int slices - Number of slices that divide the capsule horizontally.

Return value

ObjectMeshDynamic instance.

Ptr<ObjectMeshDynamic> createCylinder(float radius, float height, int stacks = 1, int slices = 32)

Creates a dynamic mesh in a form of a cylinder.

Arguments

  • float radius - Cylinder radius.
  • float height - Cylinder height.
  • int stacks - Number of stacks that divide the cylinder radially.
  • int slices - Number of slices that divide the cylinder horizontally.

Return value

ObjectMeshDynamic instance.

Ptr<ObjectMeshDynamic> createDodecahedron(float radius)

Creates a dynamic mesh in a form of a dodecahedron.

Arguments

  • float radius - Dodecahedron radius.

Return value

ObjectMeshDynamic instance.

Ptr<ObjectMeshDynamic> createIcosahedron(float radius)

Creates a dynamic mesh in a form of an icosahedron.

Arguments

  • float radius - Icosahedron radius.

Return value

ObjectMeshDynamic instance.

Ptr<ObjectMeshDynamic> createPlane(float width, float height, float step)

Creates a dynamic mesh in a form of a plane. It is divided into equal squares whose size is defined by the given step.

Arguments

  • float width - Plane width.
  • float height - Plane height.
  • float step - Step of surface subdivision (vertical and horizontal).

Return value

ObjectMeshDynamic instance.

Ptr<ObjectMeshDynamic> createPrism(float size_0, float size_1, float height, int sides = 8)

Creates a dynamic mesh in a form of a prism.

Arguments

  • float size_0 - Radius of the circle circumscribed about the top prism base.
  • float size_1 - Radius of the circle circumscribed about the bottom prism base.
  • float height - Height of the prism.
  • int sides - Number of the prism faces.

Return value

ObjectMeshDynamic instance.

Ptr<ObjectMeshDynamic> createSphere(float radius, int stacks = 16, int slices = 32)

Creates a dynamic mesh in a form of a sphere.

Arguments

  • float radius - Sphere radius.
  • int stacks - Number of stacks that divide the sphere radially.
  • int slices - Number of slices that divide the sphere horizontally.

Return value

ObjectMeshDynamic instance.

void addBoxSurface(Ptr<ObjectMeshDynamic> & object, const Math::vec3 & size, const Math::mat4 & transform)

Appends a box of the specified size to ObjectMeshDynamic.

Arguments

  • Ptr<ObjectMeshDynamic> & object - ObjectMeshDynamic instance.
  • const Math::vec3 & size - Box size along the X, Y and Z axes.
  • const Math::mat4 & transform - Box transformation matrix.

void addCapsuleSurface(Ptr<ObjectMeshDynamic> & object, float radius, float height, const Math::mat4 & transform, int stacks = 16, int slices = 32)

Appends a capsule of the specified size to ObjectMeshDynamic. The stacks and slices specify the surface's subdivision.

Arguments

  • Ptr<ObjectMeshDynamic> & object - ObjectMeshDynamic instance.
  • float radius - Capsule radius.
  • float height - Capsule height along the central axis.
  • const Math::mat4 & transform - Capsule transformation matrix.
  • int stacks - Number of stacks that divide the capsule radially.
  • int slices - Number of slices that divide the capsule horizontally.

void addCylinderSurface(Ptr<ObjectMeshDynamic> & object, float radius, float height, const Math::mat4 & transform, int stacks = 1, int slices = 32)

Appends a cylinder of the specified size to ObjectMeshDynamic. The stacks and slices specify the surface's subdivision.

Arguments

  • Ptr<ObjectMeshDynamic> & object - ObjectMeshDynamic instance.
  • float radius - Cylinder radius.
  • float height - Cylinder height.
  • const Math::mat4 & transform - Cylinder transformation matrix.
  • int stacks - Number of stacks that divide the cylinder radially.
  • int slices - Number of slices that divide the cylinder horizontally.

void addDodecahedronSurface(Ptr<ObjectMeshDynamic> & object, float radius, const Math::mat4 & transform)

Appends a dodecahedron (a polyhedron with twelve flat faces) of the specified size to ObjectMeshDynamic.

Arguments

  • Ptr<ObjectMeshDynamic> & object - ObjectMeshDynamic instance.
  • float radius - Dodecahedron radius.
  • const Math::mat4 & transform - Transformation matrix.

void addIcosahedronSurface(Ptr<ObjectMeshDynamic> & object, float radius, const Math::mat4 & transform)

Appends a icosahedron (a polyhedron with twenty flat faces) of the specified size to ObjectMeshDynamic.

Arguments

  • Ptr<ObjectMeshDynamic> & object - ObjectMeshDynamic instance.
  • float radius - Icosahedron radius.
  • const Math::mat4 & transform - Transformation matrix.

void addPlaneSurface(Ptr<ObjectMeshDynamic> & object, float width, float height, float step, const Math::mat4 & transform)

Appends a plane surface to the dynamic mesh. The plane is divided into equal squares, size of which is defined by the given step.

Arguments

  • Ptr<ObjectMeshDynamic> & object - ObjectMeshDynamic instance.
  • float width - Width of the plane.
  • float height - Height of the plane.
  • float step - Step of surface subdivision (vertical and horizontal).
  • const Math::mat4 & transform - Plane transformation matrix.

void addPrismSurface(Ptr<ObjectMeshDynamic> & object, float size_0, float size_1, float height, const Math::mat4 & transform, int sides = 8)

Appends a prism to the dynamic mesh.

Arguments

  • Ptr<ObjectMeshDynamic> & object - ObjectMeshDynamic instance.
  • float size_0 - Radius of the circle circumscribed about the top prism base.
  • float size_1 - Radius of the circle circumscribed about the bottom prism base.
  • float height - Dimension of the prism's central axis.
  • const Math::mat4 & transform - Prism transformation matrix.
  • int sides - Number of the prism faces.

void addSphereSurface(Ptr<ObjectMeshDynamic> & object, float radius, const Math::mat4 & transform, int stacks = 16, int slices = 32)

Appends a sphere surface to the dynamic mesh. The stacks and slices specify the surface's subdivision.

Arguments

  • Ptr<ObjectMeshDynamic> & object - ObjectMeshDynamic instance.
  • float radius - Sphere radius.
  • const Math::mat4 & transform - Transformation matrix.
  • int stacks - Number of stacks that divide the sphere radially.
  • int slices - Number of slices that divide the sphere horizontally.
Last update: 2017-12-21