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:
// 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.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 in range [0;1].
- const Math::vec3 & center - 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 * str - Message text to display.
- const Math::vec4 & color - Message color.
- int outline - Message outline: 1 to use the outline, 0 not to use.
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 - 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 * str - Message text to display.
- const Math::vec4 & color - Message color.
- int outline - Message outline: 1 to use the outline, 0 not to use.
Last update: 2018-04-26
Help improve this article
Was this article helpful?
(or select a word/phrase and press Ctrl+Enter)