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
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
CIGI Client Plugin
Rendering-Related Classes

Unigine::Visualizer Class

Header:#include <UnigineVisualizer.h>

Controls visualizer-related settings. The visualizer is used to render mesh wireframe, object bounding boxes, and all sorts of visual helpers (such as physical collision shapes, joints, etc.).

Usage Example

To render a world origin, do the following:

Source code (C++)
// AppWorldLogic.cpp
#include "AppWorldLogic.h"
#include "UnigineVisualizer.h"

using namespace Unigine;
using namespace Math;

int AppWorldLogic::init() {
	/* ... */
	// enable the visualizer
	Visualizer::get()->setEnabled(1);

	return 1;
}

int AppWorldLogic::update() {
	// render world origin
	Visualizer::get()->renderVector(Vec3(0.0f,0.0f,0.1f), Vec3(1.0f,0.0f,0.1f), vec4(1.0f,0.0f,0.0f,1.0f));
	Visualizer::get()->renderVector(Vec3(0.0f,0.0f,0.1f), Vec3(0.0f,1.0f,0.1f), vec4(0.0f,1.0f,0.0f,1.0f));
	Visualizer::get()->renderVector(Vec3(0.0f,0.0f,0.1f), Vec3(0.0f,0.0f,1.1f), vec4(0.0f,0.0f,1.0f,1.0f));

	return 1;
}

Visualizer Class

Members


Visualizer * get()

Returns a pointer to the existing Visualizer instance.

Return value

A pointer to the Visualizer instance.

void setEnabled(int enabled)

Enables or disables the visualizer.

Arguments

  • int enabled - 1 to enable the visualizer, 0 to disable it.

int isEnabled()

Returns a value indicating if the visualizer is enabled.

Return value

1 if the visualizer is enabled; otherwise, 0.

void setSize(int size)

Updates the current size of the handler. All handlers have the same size.

Arguments

  • int size - A new handler size in pixels.

int getSize()

Returns the handler size. All handlers have the same size.

Return value

The current size of the handler in pixels.

void setTextureName(const char * name)

Updates the current name of the texture.

Arguments

  • const char * name - A new name of the texture.

const char * getTextureName()

Returns the string with the name of the texture.

Return value

The name of the texture.

void renderBillboard3D(const Math::Vec3 & arg1, float arg2, const Math::vec4 & arg3, int screen_space = 0)

Renders a 3D billboard of the specified size.

Arguments

  • const Math::Vec3 & arg1 - Coordinates of the billboard.
  • float arg2 - The billboard size.
  • const Math::vec4 & arg3 - The billboard texture coordinates.
  • int screen_space - A flag indicating the type of dimensions to be used:
    • 0 - use the world space dimensions
    • 1 - use the screen space dimensions

void renderBoundBox(const BoundBox & bb, const Math::Mat4 & transform, const Math::vec4 & color)

Renders the bounding box in a given color.

Arguments

  • const BoundBox & bb - The bounding box.
  • const Math::Mat4 & transform - Transformation matrix for the bounding box.
  • const Math::vec4 & color - Color, in which the box will be rendered.

void renderBoundSphere(const BoundSphere & bs, const Math::Mat4 & transform, const Math::vec4 & color)

Renders the bounding sphere in a given color.

Arguments

  • const BoundSphere & bs - The bounding sphere.
  • const Math::Mat4 & transform - Transformation matrix for the bounding sphere.
  • const Math::vec4 & color - Color, in which the sphere will be rendered.

void renderBox(const Math::vec3 & arg1, const Math::Mat4 & arg2, const Math::vec4 & arg3)

Renders a wireframe box of a given color.

Arguments

  • const Math::vec3 & arg1 - Dimensions of the box.
  • const Math::Mat4 & arg2 - Transformation matrix, which is used to position the box.
  • const Math::vec4 & arg3 - Box color.

void renderBoxHandler(const Ptr<Node> & node, const Math::vec3 & arg2, const Math::vec4 & arg3)

Renders a handler in a form of a box.

Arguments

  • const Ptr<Node> & node - Pointer to the node, for which the handler is rendered.
  • const Math::vec3 & arg2 - Dimensions of the box (length of one face of the box).
  • const Math::vec4 & arg3 - Box color.

void renderCapsule(float arg1, float arg2, const Math::Mat4 & arg3, const Math::vec4 & arg4)

Renders a wireframe capsule (capped cylinder) of a given color.

Arguments

  • float arg1 - Radius of the capsule.
  • float arg2 - Height of the capsule.
  • const Math::Mat4 & arg3 - Transformation matrix used to position the capsule.
  • const Math::vec4 & arg4 - Capsule color.

void renderCircle(float arg1, const Math::Mat4 & arg2, const Math::vec4 & arg3)

Renders a wireframe circle of a given color.

Arguments

  • float arg1 - Radius of the circle.
  • const Math::Mat4 & arg2 - Transformation matrix used to position the circle.
  • const Math::vec4 & arg3 - Circle color.

void renderCone(float arg1, float arg2, const Math::Mat4 & arg3, const Math::vec4 & arg4)

Renders a wireframe cone of a given color.

Arguments

  • float arg1 - Radius of the cone.
  • float arg2 - Angle of the cone.
  • const Math::Mat4 & arg3 - Transformation matrix used to position the cone.
  • const Math::vec4 & arg4 - Cone color.

void renderCylinder(float arg1, float arg2, const Math::Mat4 & arg3, const Math::vec4 & arg4)

Renders a wireframe cylinder of a given color.

Arguments

  • float arg1 - Radius of the cylinder.
  • float arg2 - Height of the cylinder.
  • const Math::Mat4 & arg3 - Transformation matrix used to position the cylinder.
  • const Math::vec4 & arg4 - Cylinder color.

void renderDirection(const Math::Vec3 & arg1, const Math::vec3 & arg2, const Math::vec4 & arg3, float arrow_size = 0.25f, int screen_space = 0)

Renders a direction vector of a given color.

Arguments

  • const Math::Vec3 & arg1 - Coordinates of the vector origin.
  • const Math::vec3 & arg2 - Target vector direction.
  • const Math::vec4 & arg3 - Vector color.
  • float arrow_size - Arrow size.
  • int screen_space - A flag indicating the type of dimensions to be used:
    • 0 - use the world space dimensions
    • 1 - use the screen space dimensions

void renderEllipse(const Math::vec3 & arg1, const Math::Mat4 & arg2, const Math::vec4 & arg3)

Renders a wireframe ellipse of a given color.

Arguments

  • const Math::vec3 & arg1 - Ellipse radius values along three axes.
  • const Math::Mat4 & arg2 - Transformation matrix for the ellipse.
  • const Math::vec4 & arg3 - Ellipse color.

void renderFrustum(const Math::mat4 & arg1, const Math::Mat4 & arg2, const Math::vec4 & arg3)

Renders a wireframe frustum of a given color.

Arguments

  • const Math::mat4 & arg1 - Projection matrix used to transform the coordinates.
  • const Math::Mat4 & arg2 - Transformation matrix used to position the frustum.
  • const Math::vec4 & arg3 - Frustum color.

void renderLine2D(const Math::vec3 & arg1, const Math::vec3 & arg2, const Math::vec3 & arg3, const Math::vec3 & arg4, const Math::vec4 & arg5)

Renders a 2D line of a given color by using 2 points. 2D lines are rendered in the screen plane; coordinates of the upper left corner are (0; 0), of the lower right corner — (1; 1).

Arguments

  • const Math::vec3 & arg1 - Coordinates of the starting point of the line.
  • const Math::vec3 & arg2 - Coordinates of the first intermediate point of the line.
  • const Math::vec3 & arg3 - Coordinates of the second intermediate point of the line.
  • const Math::vec3 & arg4 - Coordinates of the ending point of the line.
  • const Math::vec4 & arg5 - Line color.

void renderLine2D(const Math::vec3 & arg1, const Math::vec3 & arg2, const Math::vec4 & arg3)

Renders a 2D line of a given color by using 2 points. 2D lines are rendered in the screen plane; coordinates of the upper left corner are (0; 0), of the lower right corner — (1; 1).

Arguments

  • const Math::vec3 & arg1 - Starting point of the line.
  • const Math::vec3 & arg2 - Ending point of the line.
  • const Math::vec4 & arg3 - Line color.

void renderLine2D(const Math::vec3 & arg1, const Math::vec3 & arg2, const Math::vec3 & arg3, const Math::vec4 & arg4)

Renders a 2D line of a given color by using 2 points. 2D lines are rendered in the screen plane; coordinates of the upper left corner are (0; 0), of the lower right corner — (1; 1).

Arguments

  • const Math::vec3 & arg1 - Coordinates of the starting point of the line.
  • const Math::vec3 & arg2 - Coordinates of the intermediate point of the line.
  • const Math::vec3 & arg3 - Coordinates of the ending point of the line.
  • const Math::vec4 & arg4 - Line color.

void renderLine3D(const Math::Vec3 & arg1, const Math::Vec3 & arg2, const Math::Vec3 & arg3, const Math::Vec3 & arg4, const Math::vec4 & arg5)

Renders a 3D line of a given color. 3D lines are rendered in the world space.

Arguments

  • const Math::Vec3 & arg1 - Coordinates of the starting point of the line.
  • const Math::Vec3 & arg2 - Coordinates of the first intermediate point of the line.
  • const Math::Vec3 & arg3 - Coordinates of the second intermediate point of the line.
  • const Math::Vec3 & arg4 - Coordinates of the ending point of the line.
  • const Math::vec4 & arg5 - Line color.

void renderLine3D(const Math::Vec3 & arg1, const Math::Vec3 & arg2, const Math::vec4 & arg3)

Renders a 3D line of a given color. 3D lines are rendered in the world space.

Arguments

  • const Math::Vec3 & arg1 - Starting point of the line.
  • const Math::Vec3 & arg2 - Ending point of the line.
  • const Math::vec4 & arg3 - Line color.

void renderLine3D(const Math::Vec3 & arg1, const Math::Vec3 & arg2, const Math::Vec3 & arg3, const Math::vec4 & arg4)

Renders a 3D line of a given color. 3D lines are rendered in the world space.

Arguments

  • const Math::Vec3 & arg1 - Coordinates of the starting point of the line.
  • const Math::Vec3 & arg2 - Coordinates of the intermediate point of the line.
  • const Math::Vec3 & arg3 - Coordinates of the ending point of the line.
  • const Math::vec4 & arg4 - Line color.

void renderMessage2D(const Math::vec3 & arg1, const Math::vec3 & arg2, const char * arg3, const Math::vec4 & arg4, int arg5)

Renders a message in a given color. Message position is specified in screen coordinates.

Arguments

  • const Math::vec3 & arg1 - Coordinates of the anchor point of the message in range [0;1].
  • const Math::vec3 & arg2 - Center of the message. The first two values in the vector set the offset, the third one is ignored. For example, vec3(-1,-1,0) offsets the center of the message to its upper left edge. vec3(1,1,0) offsets the center to the lower right corner.
  • const char * arg3 - Message text to display.
  • const Math::vec4 & arg4 - Message color.
  • int arg5 - Message outline: 1 to use the outline, 0 not to use.

void renderMessage3D(const Math::Vec3 & arg1, const Math::vec3 & arg2, const char * arg3, const Math::vec4 & arg4, int arg5)

Renders a message in a given color. Message position is specified in world coordinates.

Arguments

  • const Math::Vec3 & arg1 - Coordinates of the anchor point of the message (in world coordinates).
  • const Math::vec3 & arg2 - Center of the message. The first two values in the vector set the offset, the third one is ignored. For example, vec3(-1,-1,0) offsets the center of the message to its upper left edge. vec3(1,1,0) offsets the center to the lower right corner.
  • const char * arg3 - Message text to display.
  • const Math::vec4 & arg4 - Message color.
  • int arg5 - Message outline: 1 to use the outline, 0 not to use.

void renderNodeBoundBox(const Ptr<Node> & node, const Math::vec4 & color)

Renders an axis-aligned bound box of a given node.

Arguments

  • const Ptr<Node> & node - Node, for which the bound box is rendered.
  • const Math::vec4 & color - Color, in which the box will be rendered.

void renderNodeBoundSphere(const Ptr<Node> & node, const Math::vec4 & color)

Renders a bound sphere of a given node.

Arguments

  • const Ptr<Node> & node - Node, for which the bound sphere is rendered.
  • const Math::vec4 & color - Color, in which the sphere will be rendered.

void renderObject(const Ptr<Object> & object, const Math::vec4 & arg2)

Renders an object wireframe.

Arguments

  • const Ptr<Object> & object - Object, which wireframe will be rendered.
  • const Math::vec4 & arg2 - Color, in which the wireframe will be rendered.

void renderObjectSurface(const Ptr<Object> & object, int arg2, const Math::vec4 & arg3)

Renders borders of a given object surface.

Arguments

  • const Ptr<Object> & object - Object, which contains the target surface.
  • int arg2 - The number of the target surface in the object.
  • const Math::vec4 & arg3 - Color, in which the borders will be rendered.

void renderObjectSurfaceBoundBox(const Ptr<Object> & object, int surface, const Math::vec4 & color)

Renders a bound box of a given object surface.

Arguments

  • const Ptr<Object> & object - Object, which contains the target surface.
  • int surface - The number of the target surface in the object.
  • const Math::vec4 & color - Color, in which the box will be rendered.

void renderObjectSurfaceBoundSphere(const Ptr<Object> & object, int surface, const Math::vec4 & color)

Renders a bound sphere of a given object surface.

Arguments

  • const Ptr<Object> & object - Object, which contains the target surface.
  • int surface - The number of the target surface in the object.
  • const Math::vec4 & color - Color, in which the sphere will be rendered.

void renderPoint2D(const Math::vec3 & arg1, float arg2, const Math::vec4 & arg3)

Renders a 2D point of a given size and color. 2D points are rendered in the screen plane; coordinates of the upper left corner are (0; 0), of the lower right corner—(1; 1).

Arguments

  • const Math::vec3 & arg1 - Point coordinates.
  • float arg2 - Point size in range [0;1]. The point size is set in proportion to the screen resolution.
  • const Math::vec4 & arg3 - Point color.

void renderPoint3D(const Math::Vec3 & arg1, float arg2, const Math::vec4 & arg3, int screen_space = 0)

Renders a 3D point of a given size and color. 3D points are rendered in the world space.

Arguments

  • const Math::Vec3 & arg1 - Point coordinates.
  • float arg2 - Point size in range [0;1]. The point size is set in proportion to the screen resolution.
  • const Math::vec4 & arg3 - Point color.
  • int screen_space - A flag indicating the type of dimensions to be used:
    • 0 - use the world space dimensions
    • 1 - use the screen space dimensions

void renderQuad2D(const Math::vec3 & arg1, const Math::vec3 & arg2, const Math::vec3 & arg3, const Math::vec3 & arg4, const Math::vec4 & arg5)

Renders a 2D quadrilateral of a given color. 2D quads are rendered in the screen plane; coordinates of the upper left corner are (0; 0), of the lower right corner—(1; 1).

Arguments

  • const Math::vec3 & arg1 - Coordinates of the first vertex.
  • const Math::vec3 & arg2 - Coordinates of the second vertex.
  • const Math::vec3 & arg3 - Coordinates of the third vertex.
  • const Math::vec3 & arg4 - Coordinates of the fourth vertex.
  • const Math::vec4 & arg5 - Quadrilateral color.

void renderQuad3D(const Math::Vec3 & arg1, const Math::Vec3 & arg2, const Math::Vec3 & arg3, const Math::Vec3 & arg4, const Math::vec4 & arg5)

Renders a 3D quadrilateral of a given color. 3D quads are rendered in the world space.

Arguments

  • const Math::Vec3 & arg1 - Coordinates of the first vertex.
  • const Math::Vec3 & arg2 - Coordinates of the second vertex.
  • const Math::Vec3 & arg3 - Coordinates of the third vertex.
  • const Math::Vec3 & arg4 - Coordinates of the fourth vertex.
  • const Math::vec4 & arg5 - Quadrilateral color.

void renderSector(float arg1, float arg2, const Math::Mat4 & arg3, const Math::vec4 & arg4)

Renders a wireframe sector of a given color.

Arguments

  • float arg1 - Radius of the circle from which a sector is cut.
  • float arg2 - Angle of the sector.
  • const Math::Mat4 & arg3 - Transformation matrix used to position the sector.
  • const Math::vec4 & arg4 - Sector color.

void renderSolidBox(const Math::vec3 & arg1, const Math::Mat4 & arg2, const Math::vec4 & arg3)

Renders a solid box of a given color.

Arguments

  • const Math::vec3 & arg1 - Size of the solid box.
  • const Math::Mat4 & arg2 - Transformation matrix used to position the solid box.
  • const Math::vec4 & arg3 - Box color.

void renderSolidCapsule(float arg1, float arg2, const Math::Mat4 & arg3, const Math::vec4 & arg4)

Renders a solid capsule.

Arguments

  • float arg1 - Radius of the capsule.
  • float arg2 - Height of the capsule.
  • const Math::Mat4 & arg3 - Transformation matrix used to position the capsule.
  • const Math::vec4 & arg4 - Capsule color.

void renderSolidCylinder(float arg1, float arg2, const Math::Mat4 & arg3, const Math::vec4 & arg4)

Renders a solid cylinder of a given color.

Arguments

  • float arg1 - Radius of the cylinder.
  • float arg2 - Height of the cylinder.
  • const Math::Mat4 & arg3 - Transformation matrix used to position the cylinder.
  • const Math::vec4 & arg4 - Cylinder color.

void renderSolidEllipse(const Math::vec3 & arg1, const Math::Mat4 & arg2, const Math::vec4 & arg3)

Renders a solid ellipse of a given color.

Arguments

  • const Math::vec3 & arg1 - Ellipse radius values along three axes.
  • const Math::Mat4 & arg2 - Transformation matrix used to position the ellipse.
  • const Math::vec4 & arg3 - Ellipse color.

void renderSolidObject(const Ptr<Object> & object, const Math::vec4 & arg2)

Renders a solid-colored object.

Arguments

  • const Ptr<Object> & object - Object smart pointer.
  • const Math::vec4 & arg2 - Color in which the object will be rendered.

void renderSolidObjectSurface(const Ptr<Object> & object, int arg2, const Math::vec4 & arg3)

Renders a solid-colored surface of a given object.

Arguments

  • const Ptr<Object> & object - Object smart pointer.
  • int arg2 - The number of the object's surface.
  • const Math::vec4 & arg3 - Color, in which the object's surface will be rendered.

void renderSolidSphere(float arg1, const Math::Mat4 & arg2, const Math::vec4 & arg3)

Renders a solid sphere of a given color.

Arguments

  • float arg1 - Radius of the solid sphere.
  • const Math::Mat4 & arg2 - Transformation matrix used to position the solid sphere.
  • const Math::vec4 & arg3 - Sphere color.

void renderSphere(float arg1, const Math::Mat4 & arg2, const Math::vec4 & arg3)

Renders a wireframe sphere of a given color.

Arguments

  • float arg1 - Radius of the sphere.
  • const Math::Mat4 & arg2 - Transformation matrix used to position the sphere.
  • const Math::vec4 & arg3 - Sphere color.

void renderSphereHandler(const Ptr<Node> & node, float arg2, const Math::vec4 & arg3)

Renders a node handler in a form of a sphere.

Arguments

  • const Ptr<Node> & node - Pointer to the node, for which the handler is rendered.
  • float arg2 - Radius of the sphere.
  • const Math::vec4 & arg3 - Sphere color.

void renderTextureHandler(const Ptr<Node> & node, float arg2, int screen_space = 0)

Renders a texture handler of the specified size.

Arguments

  • const Ptr<Node> & node - Pointer to the node, for which the handler is rendered.
  • float arg2 - Texture size (length of one side of the texture).
  • int screen_space - A flag indicating the type of dimensions to be used:
    • 0 - use the world space dimensions
    • 1 - use the screen space dimensions

void renderTriangle2D(const Math::vec3 & arg1, const Math::vec3 & arg2, const Math::vec3 & arg3, const Math::vec4 & arg4)

Renders a 2D triangle of a given color. 2D triangles are rendered in the screen plane; coordinates of the upper left corner are (0; 0), of the lower right corner—(1; 1).

Arguments

  • const Math::vec3 & arg1 - Coordinates of the first vertex.
  • const Math::vec3 & arg2 - Coordinates of the second vertex.
  • const Math::vec3 & arg3 - Coordinates of the third vertex.
  • const Math::vec4 & arg4 - Triangle color.

void renderTriangle3D(const Math::Vec3 & arg1, const Math::Vec3 & arg2, const Math::Vec3 & arg3, const Math::vec4 & arg4)

Renders a 3D triangle of a given color. 3D triangles are rendered in the world space.

Arguments

  • const Math::Vec3 & arg1 - Coordinates of the first vertex.
  • const Math::Vec3 & arg2 - Coordinates of the second vertex.
  • const Math::Vec3 & arg3 - Coordinates of the third vertex.
  • const Math::vec4 & arg4 - Triangle color.

renderVector(const Math::Vec3 & arg1, const Math::Vec3 & arg2, const Math::vec4 & arg3, float arrow_size = 0.25f, int screen_space = 0)

Renders a vector of a given color.

Arguments

  • const Math::Vec3 & arg1 - Coordinates of the vector origin.
  • const Math::Vec3 & arg2 - Coordinates of the vector target.
  • const Math::vec4 & arg3 - Vector color.
  • float arrow_size - Arrow size.
  • int screen_space - A flag indicating the type of dimensions to be used:
    • 0 - use the world space dimensions
    • 1 - use the screen space dimensions

void renderWorldSectorObjectSurfaces(const Ptr<WorldSector> & sector, const Math::vec4 & color)

Renders objects wireframes inside a given sector.

Arguments

  • const Ptr<WorldSector> & sector - Sector, in which the object wireframes will be rendered.
  • const Math::vec4 & color - Color, in which the wireframes will be rendered.

void clear()

Clears all internal primitives created by calls to renderSmth functions. These primitives are accumulated in the internal buffer and then rendered together.
Notice
This method can be used to render several viewports with visualizer.
Last update: 2017-10-20