Nebula
Loading...
Searching...
No Matches
im3dcontext.h
Go to the documentation of this file.
1#pragma once
2//------------------------------------------------------------------------------
11//------------------------------------------------------------------------------
12
13#include "coregraphics/buffer.h"
15#include "input/inputevent.h"
16#include "math/bbox.h"
17#include "math/line.h"
18
19namespace Im3d
20{
29
31{
33public:
37 virtual ~Im3dContext();
38
39 static void Create();
40 static void Discard();
41
42 static void DrawText(const Math::vec3& position, Util::String const& text, const float size = 10.0f, const Math::vec4 color = { 1.0f, 0.0f, 0.0f, 1.0f }, uint32_t renderFlags = CheckDepth);
43
44 static void DrawPoint(const Math::vec3& position, const float size = 10.0f, const Math::vec4 color = { 1.0f, 0.0f, 0.0f, 1.0f }, uint32_t renderFlags = CheckDepth);
45
46 static void DrawLine(const Math::line& line, const float size = 1.0f, const Math::vec4 color = {1.0f, 0.0f, 0.0f, 1.0f}, uint32_t renderFlags = CheckDepth);
47
48 static void DrawQuad(const Math::point& a, const Math::point& b, const Math::point& c, const Math::point& d, const Math::vec4 color = {1.0f, 0.0f, 0.0f, 1.0f}, uint32_t renderFlags = CheckDepth);
49
50 static void DrawBox(const Math::bbox& box, const Math::vec4& color, uint32_t renderFlags = CheckDepth|Wireframe);
51
52 static void DrawOrientedBox(const Math::mat4& transform, const Math::bbox& box, const Math::vec4& color, uint32_t renderFlags = CheckDepth | Wireframe);
53
54 static void DrawBox(const Math::mat4& modelTransform, const Math::vec4& color, uint32_t renderFlags = CheckDepth | Wireframe);
56 static void DrawSphere(const Math::mat4& modelTransform, const Math::vec4& color, uint32_t renderFlags = CheckDepth | Wireframe);
58 static void DrawSphere(const Math::point& pos, float radius, const Math::vec4& color, uint32_t renderFlags = CheckDepth | Wireframe);
60 static void DrawCylinder(const Math::point& start, const Math::point& end, float radius, const Math::vec4& color);
62 static void DrawCone(const Math::point& start, const Math::point& end, float startRadius, float endRadius, const Math::vec4& color, uint32_t renderFlags = CheckDepth | Wireframe);
63
65 static void OnPrepareView(const Ptr<Graphics::View>& view, const Graphics::FrameContext& ctx);
67 static void Render(const CoreGraphics::CmdBufferId cmdBuf, const IndexT frameIndex);
68
70 static bool HandleInput(const Input::InputEvent& event);
71
73 static void SetGridStatus(bool enable);
75 static bool GetGridStatus();
77 static void SetGridSize(float cellSize, int cellCount);
79 static void GetGridSize(float& cellSize, int& cellCount);
81 static void SetGridColor(Math::vec4 const& color);
83 static const Math::vec4& GetGridColor();
85 static void SetGridOffset(Math::vec2 const& offset);
87 static Math::vec2 const& GetGridOffset();
89 static void SetGizmoSize(int size, int width);
90
92 static void GetGizmoSize(int& size, int& width);
94 static void SetViewportRect(Math::vec2 const& viewPortPosition, Math::vec2 const& viewPortSize);
95};
96
97
98} // namespace Im3d
Definition graphicscontext.h:165
static void SetGridOffset(Math::vec2 const &offset)
Definition im3dcontext.cc:658
static void SetGizmoSize(int size, int width)
configure size and thickness of gizmos
Definition im3dcontext.cc:676
Im3dContext()
constructor
Definition im3dcontext.cc:120
static void DrawLine(const Math::line &line, const float size=1.0f, const Math::vec4 color={1.0f, 0.0f, 0.0f, 1.0f}, uint32_t renderFlags=CheckDepth)
Definition im3dcontext.cc:242
static void OnPrepareView(const Ptr< Graphics::View > &view, const Graphics::FrameContext &ctx)
called before frame
Definition im3dcontext.cc:422
static void SetGridStatus(bool enable)
Definition im3dcontext.cc:602
static bool HandleInput(const Input::InputEvent &event)
handle event
Definition im3dcontext.cc:584
static void GetGridSize(float &cellSize, int &cellCount)
Definition im3dcontext.cc:630
static Math::vec2 const & GetGridOffset()
Definition im3dcontext.cc:667
static bool GetGridStatus()
Definition im3dcontext.cc:611
static void DrawQuad(const Math::point &a, const Math::point &b, const Math::point &c, const Math::point &d, const Math::vec4 color={1.0f, 0.0f, 0.0f, 1.0f}, uint32_t renderFlags=CheckDepth)
Definition im3dcontext.cc:253
static void Discard()
Definition im3dcontext.cc:206
static void SetViewportRect(Math::vec2 const &viewPortPosition, Math::vec2 const &viewPortSize)
Definition im3dcontext.cc:700
static void Create()
Definition im3dcontext.cc:137
static void Render(const CoreGraphics::CmdBufferId cmdBuf, const IndexT frameIndex)
called when rendering a frame batch
Definition im3dcontext.cc:530
static void DrawCone(const Math::point &start, const Math::point &end, float startRadius, float endRadius, const Math::vec4 &color, uint32_t renderFlags=CheckDepth|Wireframe)
draw a cone
Definition im3dcontext.cc:408
static void SetGridColor(Math::vec4 const &color)
Definition im3dcontext.cc:640
static void DrawPoint(const Math::vec3 &position, const float size=10.0f, const Math::vec4 color={ 1.0f, 0.0f, 0.0f, 1.0f }, uint32_t renderFlags=CheckDepth)
Definition im3dcontext.cc:231
static void DrawOrientedBox(const Math::mat4 &transform, const Math::bbox &box, const Math::vec4 &color, uint32_t renderFlags=CheckDepth|Wireframe)
Definition im3dcontext.cc:307
static void DrawCylinder(const Math::point &start, const Math::point &end, float radius, const Math::vec4 &color)
draw a cylinder
Definition im3dcontext.cc:393
static void DrawText(const Math::vec3 &position, Util::String const &text, const float size=10.0f, const Math::vec4 color={ 1.0f, 0.0f, 0.0f, 1.0f }, uint32_t renderFlags=CheckDepth)
Definition im3dcontext.cc:220
static void DrawSphere(const Math::mat4 &modelTransform, const Math::vec4 &color, uint32_t renderFlags=CheckDepth|Wireframe)
draw a sphere
Definition im3dcontext.cc:346
static void SetGridSize(float cellSize, int cellCount)
Definition im3dcontext.cc:620
static void DrawBox(const Math::bbox &box, const Math::vec4 &color, uint32_t renderFlags=CheckDepth|Wireframe)
Definition im3dcontext.cc:272
static const Math::vec4 & GetGridColor()
Definition im3dcontext.cc:649
static void GetGizmoSize(int &size, int &width)
configure size and thickness of gizmos
Definition im3dcontext.cc:688
virtual ~Im3dContext()
destructor
Definition im3dcontext.cc:128
A line in 3d space.
Definition line.h:22
Definition im3d.h:27
RenderFlag
Definition im3dcontext.h:22
@ CheckDepth
Definition im3dcontext.h:23
@ Wireframe
Definition im3dcontext.h:25
@ AlwaysOnTop
Definition im3dcontext.h:24
@ Solid
Definition im3dcontext.h:26
@ NumDepthFlags
Definition im3dcontext.h:27
A 3D vector.
Definition vec3.h:37
A 4D vector.
Definition vec4.h:24
Nebula's universal string class.
Definition String.cs:8
int IndexT
Definition types.h:41