Unigine::DecalProj Class
Header: | #include <UnigineDecals.h> |
Inherits: | Decal |
This class describes how to create and modify projected decals.
See also#
A UnigineScript API sample <UnigineSDK>/data/samples/decals/proj_02
Creating a Projected Decal#
The following code illustrates how to create a projected decal, set its parameters and add the node to UnigineEditor.
// AppWorldLogic.h
#include <UnigineLogic.h>
#include <UnigineEditor.h>
#include <UnigineDecals.h>
class AppWorldLogic : public Unigine::WorldLogic {
public:
AppWorldLogic();
virtual ~AppWorldLogic();
virtual int init();
virtual int update();
virtual int postUpdate();
virtual int updatePhysics();
virtual int shutdown();
virtual int save(const Unigine::StreamPtr &stream);
virtual int restore(const Unigine::StreamPtr &stream);
private:
Unigine::DecalProjPtr decal_proj;
};
// AppWorldLogic.cpp
#include "AppWorldLogic.h";
using namespace Unigine;
int AppWorldLogic::init()
{
// create an proj decal and setting its radius to 10, fov to 60, aspect to 1.0f, material to "decal_base"
decal_proj = DecalProj::create(10.0f, 60.0f, 1.0f, "decal_base");
// set the name and position of the decal
decal_proj->setName("Proj Decal");
decal_proj->setWorldPosition(Math::Vec3(0.0f, 0.0f, 5.0f));
return 1;
}
DecalProj Class
Members
static DecalProjPtr create ( float radius, float fov, float aspect, const char * name ) #
Constructor. Creates a new projected decal with the given properties.Arguments
- float radius - The height of the projection pyramid along the Z axis, in units.
- float fov - The field of view of the decal's projector, in degrees.
- float aspect - The aspect ratio of the decal, in units.
- const char * name - A material of the decal.
void setAspect ( float aspect ) #
Sets the new aspect ratio of the decal, in units.Arguments
- float aspect - The aspect ratio of the decal, in units. If a negative value is provided, 0 will be used instead.
float getAspect ( ) const#
Returns the current aspect ratio of the decal.Return value
The aspect ratio of the decal, in units.void setFov ( float fov ) #
Sets a new field of view of the decal's projector.Arguments
- float fov - A field of view of the decal's projector, in degrees. The provided value will be clamped in the range [1;90].
float getFov ( ) const#
Returns the current field of view of the decal's projector.Return value
The field of view of the decal's projector, in degrees.Math::mat4 getProjection ( ) const#
Returns the projection matrix.Return value
The projection matrix of the decal.void setRadius ( float radius ) #
Sets a new height of the projection pyramid along the Z axis, in units.Arguments
- float radius - A height of the projection pyramid along the Z axis, in units. If a too small value is provided, 1E-6 will be used instead.
float getRadius ( ) const#
Returns the current height of the projection pyramid along the Z axis, in units.Return value
The height of the projection pyramid along the Z axis, in units.void setZNear ( float znear ) #
Sets a distance to the near clipping plane of the decal.Arguments
- float znear - A new distance to the near clipping plane, in units. If a negative value is provided, 0 will be used instead.
float getZNear ( ) const#
Returns the distance to the near clipping plane of the decal.Return value
The distance to the near clipping plane, in units.static int type ( ) #
Returns the type of the node.Return value
Decal type identifier.Last update:
2020-07-31
Help improve this article
Was this article helpful?
(or select a word/phrase and press Ctrl+Enter)