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 render();
virtual int flush();
virtual int shutdown();
virtual int destroy();
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));
// release ownership of its pointer and add the node to UnigineEditor
decal_proj->release();
Editor::get()->addNode(decal_proj->getNode());
return 1;
}
int AppWorldLogic::shutdown() {
// clear pointer
decal_proj.clear();
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.
Ptr<DecalProj> cast( const Ptr<Decal> & base )
Casts a DecalProj out of the Decal instance.Arguments
- const Ptr<Decal> & base - Pointer to Decal.
Return value
Pointer to DecalProj.Ptr<DecalProj> cast( const Ptr<Node> & node )
Casts a DecalProj out of the Node instance.Arguments
- const Ptr<Node> & node - Pointer to Node.
Return value
Pointer to DecalProj.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( )
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( )
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( )
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( )
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( )
Returns the distance to the near clipping plane of the decal.Return value
The distance to the near clipping plane, in units.int type( )
Returns the type of the node.Return value
Decal type identifier.Last update:
2020-01-14
Help improve this article
Was this article helpful?
(or select a word/phrase and press Ctrl+Enter)