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 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.
Last update: 2017-07-03
Help improve this article
Was this article helpful?
(or select a word/phrase and press Ctrl+Enter)