Unigine::DecalOrtho Class
Header: | #include <UnigineDecals.h> |
Inherits: | Decal |
This class describes how to create and modify orthographic decals.
Creating an Orthographic Decal#
The following code illustrates how to create an orthographic 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::DecalOrthoPtr decal_ortho;
};
// AppWorldLogic.cpp
#include "AppWorldLogic.h";
using namespace Unigine;
int AppWorldLogic::init()
{
// create an ortho decal and setting its radius to 10, width and height to 2, material to "decal_base"
decal_ortho = DecalOrtho::create(10.0f, 2.0f, 2.0f, "decal_base");
// set the name and position of the decal
decal_ortho->setName("Ortho Decal");
decal_ortho->setWorldPosition(Math::Vec3(0.0f, 0.0f, 5.0f));
// release ownership of its pointer and add the node to UnigineEditor
decal_ortho->release();
Editor::get()->addNode(decal_ortho->getNode());
return 1;
}
int AppWorldLogic::shutdown() {
// clear pointer
decal_ortho.clear();
return 1;
}
DecalOrtho Class
Members
static DecalOrthoPtr create ( float radius, float width, float height, const char * material )
Constructor. Creates a new projected decal with the given properties.Arguments
- float radius - The height of the projection box along the Z axis, in units.
- float width - The length of the projection box along the X axis, in units.
- float height - The length of the projection box along the Y axis, in units.
- const char * material - A material of the decal.
Ptr<DecalOrtho> cast( const Ptr<Decal> & base )
Casts a DecalOrtho out of the Decal instance.Arguments
- const Ptr<Decal> & base - Pointer to Decal.
Return value
Pointer to DecalOrtho.Ptr<DecalOrtho> cast( const Ptr<Node> & node )
Casts a DecalOrtho out of the Node instance.Arguments
- const Ptr<Node> & node - Node smart pointer.
Return value
Pointer to the DecalOrtho.void setHeight( float height )
Sets a new length of the projection box along the Y axis.Arguments
- float height - The length of the projection box along the Y axis, in units. If a negative value is provided, 0 will be used instead.
float getHeight( )
Returns the current length of the projection box along the Y axis.Return value
The length of the projection box along the Y axis, in units.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 box along the Z axis.Arguments
- float radius - A height of the projection box 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 box along the Z axis.Return value
The height of the projection box along the Z axis, in units.void setWidth( float width )
Sets the new length of the projection box along the X axis.Arguments
- float width - The length of the projection box along the X axis, in units. If a negative value is provided, 0 will be used instead.
float getWidth( )
Returns the current length of the projection box along the X axis, in units.Return value
The length of the projection box along the X axis, in units.void setZNear( float znear )
Sets a new value of the near clipping plane.Arguments
- float znear - A value of the near clipping plane, ranging from 0 to 1. If a negative value is provided, 0 will be used instead.
float getZNear( )
Returns the value of the near clipping plane.Return value
The value of the near clipping plane, ranging from 0 to 1.int type( )
Returns a type identifier.Return value
Type identifier.Last update:
27.12.2018
Помогите сделать статью лучше
Была ли эта статья полезной?
(или выберите слово/фразу и нажмите Ctrl+Enter