first commit
This commit is contained in:
66
include/engine/core/renderer_toolbox.h
Normal file
66
include/engine/core/renderer_toolbox.h
Normal file
@ -0,0 +1,66 @@
|
||||
/* -----------------------------------------------------------------------------
|
||||
GSFramework
|
||||
Copyright 2001-2013 Emmanuel Julien. All Rights Reserved.
|
||||
----------------------------------------------------------------------------- */
|
||||
|
||||
|
||||
#ifndef __NRENDERER_TOOLBOX__
|
||||
#define __NRENDERER_TOOLBOX__
|
||||
|
||||
|
||||
#include "core/renderer.h"
|
||||
|
||||
|
||||
namespace GS {
|
||||
namespace RendererToolbox {
|
||||
using Core::Material;
|
||||
using Render::Renderer;
|
||||
|
||||
/// Wrapper to display a cross in 3D.
|
||||
void DrawCross(Renderer &, const Vector4 &, float size = Units::Mtr(1), const Color * = 0, Material::BlendOperator = Material::Blend_None);
|
||||
/// Wrapper to display an axis aligned square in 3D.
|
||||
void DrawSquare(Renderer &, const Vector4 &, float size = Units::Mtr(1), Material::BlendOperator = Material::Blend_None);
|
||||
/// Wrapper to display an OOBB using the line function of a derived renderer.
|
||||
void DrawOBB(Renderer &, const OBB &, const Color * = 0, Material::BlendOperator = Material::Blend_None);
|
||||
/// Wrapper to display an OOBB using the triangle function of a derived renderer.
|
||||
void DrawFilledOBB(Renderer &, const OBB &, const Color *, Material::BlendOperator = Material::Blend_None, Material::RenderWord = Material::Render_None);
|
||||
/// Wrapper to display an AABB in 3D.
|
||||
void DrawAABB(Renderer &, const MinMax &, const Color * = 0, Material::BlendOperator = Material::Blend_None);
|
||||
/// Wrapper to display a cube in 3D.
|
||||
void DrawCube(Renderer &, const Vector4 &, float size = Units::Mtr(1), const Color * = 0, Material::BlendOperator = Material::Blend_None);
|
||||
/// Wrapper to display a sphere in 3D.
|
||||
void DrawSphere(Renderer &, const Vector4 &, float radius = Units::Mtr(1), const Color * = 0, Material::BlendOperator = Material::Blend_None);
|
||||
/// Wrapper to display a ball in 3D.
|
||||
void DrawBall(Renderer &, const nMatrix4 &, float radius = Units::Mtr(1), Color * = 0, Material::BlendOperator = Material::Blend_None);
|
||||
/// Wrapper to display a circle in 3D.
|
||||
void DrawCircle(Renderer &, const Vector4 &, float radius = Units::Mtr(1), const Matrix3 * = 0, const Color * = 0, Material::BlendOperator = Material::Blend_None);
|
||||
/// Wrapper to display a cylinder in 3D.
|
||||
void DrawCylinder(Renderer &, const Vector4 &, float radius = Units::Mtr(1), float length = Units::Mtr(1), const Matrix3 * = 0, const Color * = 0, Material::BlendOperator = Material::Blend_None);
|
||||
/// Wrapper to display a capsule in 3D.
|
||||
void DrawCapsule(Renderer &, const Vector4 &, float radius = Units::Mtr(1.f), float length = Units::Mtr(1), const Matrix3 * = 0, const Color * = 0, Material::BlendOperator = Material::Blend_None);
|
||||
/// Wrapper to display a cone in 3D.
|
||||
void DrawCone(Renderer &, const Vector4 &, float radius = Units::Mtr(1.f), float length = Units::Mtr(1), const Matrix3 * = 0, const Color * = 0, Material::BlendOperator = Material::Blend_None);
|
||||
|
||||
/// Wrapper to line 3D.
|
||||
void Line3D(Renderer &, const Vector4 &, const Vector4 &, const Color * = 0, Material::BlendOperator = Material::Blend_None, Material::RenderWord = Material::Render_None);
|
||||
/// Draw triangle.
|
||||
void Triangle3D(Renderer &, const Vector4 [3], const Color [3] = 0, const Vector2 [3] = 0, const Render::Texture * = 0, Material::BlendOperator = Material::Blend_None, Material::RenderWord = Material::Render_None);
|
||||
|
||||
/// Return nearest but highest power of two from a given value.
|
||||
template <class T> T GetPow2(T v, bool no_shrink = false)
|
||||
{
|
||||
T h = 1;
|
||||
if (no_shrink)
|
||||
while (h < v)
|
||||
h *= 2;
|
||||
else
|
||||
while ((h + h / 2) < v)
|
||||
h *= 2;
|
||||
return h;
|
||||
}
|
||||
|
||||
} // RendererToolbox
|
||||
} // GS
|
||||
|
||||
|
||||
#endif // __NRENDERER_TOOLBOX__
|
||||
Reference in New Issue
Block a user