UnigineEditor
Interface Overview
Assets Workflow
Settings and Preferences
Adjusting Node Parameters
Setting Up Materials
Setting Up Properties
Landscape Tool
Using Editor Tools for Specific Tasks
FAQ
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 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.

void renderPoint2D( const Math::vec3 & v, float size, const Math::vec4 & color )

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 & v - Point coordinates.
  • float size - Point size in range [0;1]. The point size is set in proportion to the screen resolution.
  • const Math::vec4 & color - Point color.

void renderPoint3D( const Math::Vec3 & v, float size, const Math::vec4 & color, 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 & v - Point coordinates.
  • float size - Point size in range [0;1]. The point size is set in proportion to the screen resolution.
  • const Math::vec4 & color - 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 renderLine2D( const Math::vec3 & v0, const Math::vec3 & v1, const Math::vec4 & color )

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 & v0 - Starting point of the line.
  • const Math::vec3 & v1 - Ending point of the line.
  • const Math::vec4 & color - Line color.

void renderLine3D( const Math::Vec3 & v0, const Math::Vec3 & v1, const Math::vec4 & color )

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

Arguments

  • const Math::Vec3 & v0 - Starting point of the line.
  • const Math::Vec3 & v1 - Ending point of the line.
  • const Math::vec4 & color - Line color.

void renderLine2D( const Math::vec3 & v0, const Math::vec3 & v1, const Math::vec3 & v2, const Math::vec4 & color )

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 & v0 - Coordinates of the starting point of the line.
  • const Math::vec3 & v1 - Coordinates of the intermediate point of the line.
  • const Math::vec3 & v2 - Coordinates of the ending point of the line.
  • const Math::vec4 & color - Line color.

void renderLine3D( const Math::Vec3 & v0, const Math::Vec3 & v1, const Math::Vec3 & v2, const Math::vec4 & color )

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

Arguments

  • const Math::Vec3 & v0 - Coordinates of the starting point of the line.
  • const Math::Vec3 & v1 - Coordinates of the intermediate point of the line.
  • const Math::Vec3 & v2 - Coordinates of the ending point of the line.
  • const Math::vec4 & color - Line color.

void renderLine2D( const Math::vec3 & v0, const Math::vec3 & v1, const Math::vec3 & v2, const Math::vec3 & v3, const Math::vec4 & color )

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 & v0 - Coordinates of the starting point of the line.
  • const Math::vec3 & v1 - Coordinates of the first intermediate point of the line.
  • const Math::vec3 & v2 - Coordinates of the second intermediate point of the line.
  • const Math::vec3 & v3 - Coordinates of the ending point of the line.
  • const Math::vec4 & color - Line color.

void renderLine3D( const Math::Vec3 & v0, const Math::Vec3 & v1, const Math::Vec3 & v2, const Math::Vec3 & v3, const Math::vec4 & color )

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

Arguments

  • const Math::Vec3 & v0 - Coordinates of the starting point of the line.
  • const Math::Vec3 & v1 - Coordinates of the first intermediate point of the line.
  • const Math::Vec3 & v2 - Coordinates of the second intermediate point of the line.
  • const Math::Vec3 & v3 - Coordinates of the ending point of the line.
  • const Math::vec4 & color - Line color.

void renderTriangle2D( const Math::vec3 & v0, const Math::vec3 & v1, const Math::vec3 & v2, const Math::vec4 & color )

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 & v0 - Coordinates of the first vertex.
  • const Math::vec3 & v1 - Coordinates of the second vertex.
  • const Math::vec3 & v2 - Coordinates of the third vertex.
  • const Math::vec4 & color - Triangle color.

void renderTriangle3D( const Math::Vec3 & v0, const Math::Vec3 & v1, const Math::Vec3 & v2, const Math::vec4 & color )

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

Arguments

  • const Math::Vec3 & v0 - Coordinates of the first vertex.
  • const Math::Vec3 & v1 - Coordinates of the second vertex.
  • const Math::Vec3 & v2 - Coordinates of the third vertex.
  • const Math::vec4 & color - Triangle color.

void renderQuad2D( const Math::vec3 & v0, const Math::vec3 & v1, const Math::vec3 & v2, const Math::vec3 & v3, const Math::vec4 & color )

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 & v0 - Coordinates of the first vertex.
  • const Math::vec3 & v1 - Coordinates of the second vertex.
  • const Math::vec3 & v2 - Coordinates of the third vertex.
  • const Math::vec3 & v3 - Coordinates of the fourth vertex.
  • const Math::vec4 & color - Quadrilateral color.

void renderQuad3D( const Math::Vec3 & v0, const Math::Vec3 & v1, const Math::Vec3 & v2, const Math::Vec3 & v3, const Math::vec4 & color )

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

Arguments

  • const Math::Vec3 & v0 - Coordinates of the first vertex.
  • const Math::Vec3 & v1 - Coordinates of the second vertex.
  • const Math::Vec3 & v2 - Coordinates of the third vertex.
  • const Math::Vec3 & v3 - Coordinates of the fourth vertex.
  • const Math::vec4 & color - Quadrilateral color.

void renderBillboard3D( const Math::Vec3 & v, float size, const Math::vec4 & texcoord, int screen_space = 0 )

Renders a 3D billboard of the specified size.

Arguments

  • const Math::Vec3 & v - Coordinates of the billboard.
  • float size - The billboard size.
  • const Math::vec4 & texcoord - 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

renderVector( const Math::Vec3 & position_start, const Math::Vec3 & position_end, const Math::vec4 & color, float arrow_size = 0.25f, int screen_space = 0 )

Renders a vector of a given color.

Arguments

  • const Math::Vec3 & position_start - Coordinates of the vector origin.
  • const Math::Vec3 & position_end - Coordinates of the vector target.
  • const Math::vec4 & color - 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 renderDirection( const Math::Vec3 & position, const Math::vec3 & direction, const Math::vec4 & color, float arrow_size = 0.25f, int screen_space = 1 )

Renders a direction vector of a given color.

Arguments

  • const Math::Vec3 & position - Coordinates of the vector origin.
  • const Math::vec3 & direction - Target vector direction.
  • const Math::vec4 & color - 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 renderBox( const Math::vec3 & size, const Math::Mat4 & transform, const Math::vec4 & color )

Renders a wireframe box of a given color.

Arguments

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

void renderFrustum( const Math::mat4 & projection, const Math::Mat4 & transform, const Math::vec4 & color )

Renders a wireframe frustum of a given color.

Arguments

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

void renderCircle( float radius, const Math::Mat4 & transform, const Math::vec4 & color )

Renders a wireframe circle of a given color.

Arguments

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

void renderSector( float radius, float angle, const Math::Mat4 & transform, const Math::vec4 & color )

Renders a wireframe sector of a given color.

Arguments

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

void renderCone( float radius, float angle, const Math::Mat4 & transform, const Math::vec4 & color )

Renders a wireframe cone of a given color.

Arguments

  • float radius - Radius of the cone.
  • float angle - Angle of the cone.
  • const Math::Mat4 & transform - Transformation matrix used to position the cone.
  • const Math::vec4 & color - Cone color.

void renderSphere( float radius, const Math::Mat4 & transform, const Math::vec4 & color )

Renders a wireframe sphere of a given color.

Arguments

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

void renderCapsule( float radius, float height, const Math::Mat4 & transform, const Math::vec4 & color )

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

Arguments

  • float radius - Radius of the capsule.
  • float height - Height of the capsule.
  • const Math::Mat4 & transform - Transformation matrix used to position the capsule.
  • const Math::vec4 & color - Capsule color.

void renderCylinder( float radius, float height, const Math::Mat4 & transform, const Math::vec4 & color )

Renders a wireframe cylinder of a given color.

Arguments

  • float radius - Radius of the cylinder.
  • float height - Height of the cylinder.
  • const Math::Mat4 & transform - Transformation matrix used to position the cylinder.
  • const Math::vec4 & color - Cylinder color.

void renderEllipse( const Math::vec3 & radius, const Math::Mat4 & transform, const Math::vec4 & color )

Renders a wireframe ellipse of a given color.

Arguments

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

void renderSolidBox( const Math::vec3 & size, const Math::Mat4 & transform, const Math::vec4 & color )

Renders a solid box of a given color.

Arguments

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

void renderSolidSphere( float radius, const Math::Mat4 & transform, const Math::vec4 & color )

Renders a solid sphere of a given color.

Arguments

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

void renderSolidCapsule( float radius, float height, const Math::Mat4 & transform, const Math::vec4 & color )

Renders a solid capsule.

Arguments

  • float radius - Radius of the capsule.
  • float height - Height of the capsule.
  • const Math::Mat4 & transform - Transformation matrix used to position the capsule.
  • const Math::vec4 & color - Capsule color.

void renderSolidCylinder( float radius, float height, const Math::Mat4 & transform, const Math::vec4 & color )

Renders a solid cylinder of a given color.

Arguments

  • float radius - Radius of the cylinder.
  • float height - Height of the cylinder.
  • const Math::Mat4 & transform - Transformation matrix used to position the cylinder.
  • const Math::vec4 & color - Cylinder color.

void renderSolidEllipse( const Math::vec3 & radius, const Math::Mat4 & transform, const Math::vec4 & color )

Renders a solid ellipse of a given color.

Arguments

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

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 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 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 renderBoxHandler( const Ptr<Node> & node, const Math::vec3 & size, const Math::vec4 & color )

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 & size - Dimensions of the box (length of one face of the box).
  • const Math::vec4 & color - Box color.

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

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 radius - Radius of the sphere.
  • const Math::vec4 & color - Sphere color.

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

Renders a texture handler of the specified size.

Arguments

  • const Ptr<Node> & node - Pointer to the node, for which the handler is rendered.
  • float size - 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 renderObject( const Ptr<Object> & object, const Math::vec4 & color )

Renders an object wireframe.

Arguments

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

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

Renders borders 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 borders will be rendered.

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

Renders a solid-colored object.

Arguments

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

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

Renders a solid-colored surface of a given object.

Arguments

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

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 renderMessage2D( const Math::vec3 & position, const Math::vec3 & center, const char * str, const Math::vec4 & color, int outline )

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

Arguments

  • const Math::vec3 & position - Coordinates of the anchor point of the message, each in [0;1] range.
  • const Math::vec3 & center - Message alignment. The first two values in the vector set the offset, the third one is ignored. For example, vec3(-1,-1,0) sets the offset of the center of the message to its upper left edge. vec3(1,1,0) - to the lower right corner.
  • const char * str - Message text to display.
  • const Math::vec4 & color - Color, in which the message will be rendered.
  • int outline - 1 to use font outlining, 0 not to use.

void renderMessage2D( const Math::vec3 & position, const Math::vec3 & center, const char * str, const Math::vec4 & color, int outline, int font_size )

Renders a message in a given color with the specified font size. Message position is specified in screen coordinates.

Arguments

  • const Math::vec3 & position - Coordinates of the anchor point of the message, each in [0;1] range.
  • const Math::vec3 & center - Message alignment. The first two values in the vector set the offset, the third one is ignored. For example, vec3(-1,-1,0) sets the offset of the center of the message to its upper left edge. vec3(1,1,0) - to the lower right corner.
  • const char * str - Message text to display.
  • const Math::vec4 & color - Color, in which the message will be rendered.
  • int outline - 1 to use font outlining, 0 not to use.
  • int font_size - Font size.

void renderMessage3D( const Math::Vec3 & position, const Math::vec3 & center, const char * str, const Math::vec4 & color, int outline )

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

Arguments

  • const Math::Vec3 & position - Coordinates of the anchor point of the message (in world coordinates).
  • const Math::vec3 & center - Message alignment. The first two values in the vector set the offset, the third one is ignored. For example, vec3(-1,-1,0) sets the offset of the center of the message to its upper left edge. vec3(1,1,0) - to the lower right corner.
  • const char * str - Message text to display.
  • const Math::vec4 & color - Color, in which the message will be rendered.
  • int outline - 1 to use font outlining, 0 not to use.

void renderMessage3D( const Math::Vec3 & position, const Math::vec3 & center, const char * str, const Math::vec4 & color, int outline, int font_size )

Renders a message in a given color with the specified font size. Message position is specified in world coordinates.

Arguments

  • const Math::Vec3 & position - Coordinates of the anchor point of the message (in world coordinates).
  • const Math::vec3 & center - Message alignment. The first two values in the vector set the offset, the third one is ignored. For example, vec3(-1,-1,0) sets the offset of the center of the message to its upper left edge. vec3(1,1,0) - to the lower right corner.
  • const char * str - Message text to display.
  • const Math::vec4 & color - Color, in which the message will be rendered.
  • int outline - 1 to use font outlining, 0 not to use.
  • int font_size - Font size.
Last update: 2018-06-27