10#define IM3D_VERSION "1.18"
18 #define IM3D_ASSERT(e) assert(e)
21#ifndef IM3D_VERTEX_ALIGNMENT
22 #define IM3D_VERTEX_ALIGNMENT 4
29typedef unsigned int U32;
151IM3D_API void DrawConeFilled2(
const Vec3& _start,
const Vec3& _end,
float _radiusStart,
float _radiusEnd,
bool _drawCapStart =
true,
bool _drawCapEnd =
true,
int _detail = -1);
152#if IM3D_USE_DEPRECATED_DRAW_CONE
156 IM3D_API inline void DrawCone(
const Vec3& _start,
const Vec3& _end,
float _radiusStart,
float _radiusEnd,
int _detail = -1) {
DrawCone2(_start, _end, _radiusStart, _radiusEnd, _detail); }
157 IM3D_API inline void DrawConeFilled(
const Vec3& _start,
const Vec3& _end,
float _radiusStart,
float _radiusEnd,
bool _drawCapStart =
true,
bool _drawCapEnd =
true,
int _detail = -1) {
DrawConeFilled2(_start, _end, _radiusStart, _radiusEnd, _drawCapStart, _drawCapEnd, _detail); }
161IM3D_API void Text(
const Vec3& _position,
U32 _textFlags,
const char* _text, ...);
162IM3D_API void Text(
const Vec3& _position,
float _size, Color _color,
U32 _textFlags,
const char* _text, ...);
192IM3D_API bool Gizmo(
const char* _id,
float _translation_[3],
float _rotation_[3*3],
float _scale_[3]);
200IM3D_API bool Gizmo(
Id _id,
float _translation_[3],
float _rotation_[3*3],
float _scale_[3]);
228 Vec2(
float _x,
float _y):
x(_x),
y(_y) {}
230 operator float*() {
return &
x; }
231 operator const float*()
const {
return &
x; }
243 Vec3(
float _xyz):
x(_xyz),
y(_xyz),
z(_xyz) {}
244 Vec3(
float _x,
float _y,
float _z):
x(_x),
y(_y),
z(_z) {}
248 operator float*() {
return &
x; }
249 operator const float*()
const {
return &
x; }
261 Vec4(
float _xyzw):
x(_xyzw),
y(_xyzw),
z(_xyzw),
w(_xyzw) {}
262 Vec4(
float _x,
float _y,
float _z,
float _w):
x(_x),
y(_y),
z(_z),
w(_w) {}
266 operator float*() {
return &
x; }
267 operator const float*()
const {
return &
x; }
279 Mat3(
float _diagonal);
281 float m00,
float m01,
float m02,
282 float m10,
float m11,
float m12,
283 float m20,
float m21,
float m22
288 operator float*() {
return m; }
289 operator const float*()
const {
return m; }
291 Vec3 getCol(
int _i)
const;
292 Vec3 getRow(
int _i)
const;
293 void setCol(
int _i,
const Vec3& _v);
294 void setRow(
int _i,
const Vec3& _v);
296 Vec3 getScale()
const;
297 void setScale(
const Vec3& _scale);
301 #ifdef IM3D_MATRIX_ROW_MAJOR
302 int i = _row * 3 + _col;
304 int i = _col * 3 + _row;
310 #ifdef IM3D_MATRIX_ROW_MAJOR
311 int i = _row * 3 + _col;
313 int i = _col * 3 + _row;
328 Mat4(
float _diagonal);
330 float m00,
float m01,
float m02,
float m03,
331 float m10,
float m11,
float m12,
float m13,
332 float m20,
float m21,
float m22,
float m23,
333 float m30 = 0.0f,
float m31 = 0.0f,
float m32 = 0.0f,
float m33 = 1.0f
338 operator float*() {
return m; }
339 operator const float*()
const {
return m; }
341 Vec4 getCol(
int _i)
const;
342 Vec4 getRow(
int _i)
const;
343 void setCol(
int _i,
const Vec4& _v);
344 void setRow(
int _i,
const Vec4& _v);
346 Vec3 getTranslation()
const;
347 void setTranslation(
const Vec3& _translation);
348 Mat3 getRotation()
const;
349 void setRotation(
const Mat3& _rotation);
350 Vec3 getScale()
const;
351 void setScale(
const Vec3& _scale);
355 #ifdef IM3D_MATRIX_ROW_MAJOR
356 int i = _row * 4 + _col;
358 int i = _col * 4 + _row;
364 #ifdef IM3D_MATRIX_ROW_MAJOR
365 int i = _row * 4 + _col;
367 int i = _col * 4 + _row;
385 Color(
float _r,
float _g,
float _b,
float _a = 1.0f);
387 operator U32()
const {
return v; }
389 void set(
int _i,
float _val)
392 U32 mask = 0xff << _i;
393 v = (
v & ~mask) | (
U32(_val * 255.0f) << _i);
403 U32 mask = 0xff << _i;
404 return float((
v & mask) >> _i) / 255.0f;
414 | ((
v & (0xff << 24)) >> 24)
415 | ((
v & (0xff << 16)) >> 8)
416 | ((
v & (0xff << 8)) << 8)
417 | ((
v & (0xff )) << 24)
628 void text(
const Vec3& _position,
float _size,
Color _color,
TextFlags _flags,
const char* _textStart,
const char* _textEnd);
629 void text(
const Vec3& _position,
float _size,
Color _color,
TextFlags _flags,
const char* _text, va_list _args);
632 void merge(
const Context& _src);
658 void setEnableSorting(
bool _enable);
660 void pushEnableSorting(
bool _enable);
661 void popEnableSorting();
664 void pushLayerId(
Id _layer);
682 bool gizmoAxisTranslation_Behavior(
Id _id,
const Vec3& _origin,
const Vec3& _axis,
float _snap,
float _worldHeight,
float _worldSize,
Vec3* _out_);
683 void gizmoAxisTranslation_Draw(
Id _id,
const Vec3& _origin,
const Vec3& _axis,
float _worldHeight,
float _worldSize,
Color _color);
685 bool gizmoPlaneTranslation_Behavior(
Id _id,
const Vec3& _origin,
const Vec3& _normal,
float _snap,
float _worldSize,
Vec3* _out_);
686 void gizmoPlaneTranslation_Draw(
Id _id,
const Vec3& _origin,
const Vec3& _normal,
float _worldSize,
Color _color);
688 bool gizmoAxislAngle_Behavior(
Id _id,
const Vec3& _origin,
const Vec3& _axis,
float _snap,
float _worldRadius,
float _worldSize,
float* _out_);
689 void gizmoAxislAngle_Draw(
Id _id,
const Vec3& _origin,
const Vec3& _axis,
float _worldRadius,
float _angle,
Color _color,
float _minAlpha);
691 bool gizmoAxisScale_Behavior(
Id _id,
const Vec3& _origin,
const Vec3& _axis,
float _snap,
float _worldHeight,
float _worldSize,
float *_out_);
692 void gizmoAxisScale_Draw(
Id _id,
const Vec3& _origin,
const Vec3& _axis,
float _worldHeight,
float _worldSize,
Color _color);
695 float pixelsToWorldSize(
const Vec3& _position,
float _pixels);
697 float worldSizeToPixels(
const Vec3& _position,
float _pixels);
699 int estimateLevelOfDetail(
const Vec3& _position,
float _worldSize,
int _min = 4,
int _max = 256);
702 bool makeHot(
Id _id,
float _depth,
bool _intersects);
704 void makeActive(
Id _id);
714 bool isVisible(
const Vec3& _origin,
float _radius);
715 bool isVisible(
const Vec3& _min,
const Vec3& _max);
801#if IM3D_THREAD_LOCAL_CONTEXT_PTR
802 #define IM3D_THREAD_LOCAL thread_local
804 #define IM3D_THREAD_LOCAL
836inline void Vertex(
float _x,
float _y,
float _z,
float _size) {
Vertex(
Vec3(_x, _y, _z), _size); }
837inline void Vertex(
float _x,
float _y,
float _z,
float _size,
Color _color) {
Vertex(
Vec3(_x, _y, _z), _size, _color); }
839inline void PushDrawState() {
Context& ctx =
GetContext(); ctx.pushColor(ctx.getColor()); ctx.pushAlpha(ctx.getAlpha()); ctx.pushSize(ctx.getSize()); ctx.pushEnableSorting(ctx.getEnableSorting()); }
889inline bool Gizmo(
const char* _id,
float _translation_[3],
float _rotation_[3*3],
float _scale_[3]) {
return Gizmo(
MakeId(_id), _translation_, _rotation_, _scale_); }
890inline bool Gizmo(
const char* _id,
float _transform_[4*4]) {
return Gizmo(
MakeId(_id), _transform_); }
#define IM3D_API
Definition im3d.h:13
#define IM3D_THREAD_LOCAL
Definition im3d.h:804
#define IM3D_VEC4_APP
Definition im3d_config.h:52
#define IM3D_VEC2_APP
Definition im3d_config.h:42
#define IM3D_VEC3_APP
Definition im3d_config.h:45
#define IM3D_ASSERT(e)
Definition im3d_config.h:15
#define IM3D_MAT3_APP
Definition im3d_config.h:57
#define IM3D_MAT4_APP
Definition im3d_config.h:60
IM3D_THREAD_LOCAL Context * g_CurrentContext
Definition im3d.cpp:1603
IM3D_API void PushDrawState()
Definition im3d.h:839
IM3D_API AppData & GetAppData()
Definition im3d.h:811
IM3D_API void NewFrame()
Definition im3d.h:812
IM3D_API void DrawXyzAxes()
Definition im3d.cpp:148
IM3D_API void DrawCapsule(const Vec3 &_start, const Vec3 &_end, float _radius, int _detail=-1)
Definition im3d.cpp:471
IM3D_API void Vertex(const Vec3 &_position)
Definition im3d.h:830
IM3D_API void PushLayerId(Id _layer)
Definition im3d.h:881
IM3D_API void PopEnableSorting()
Definition im3d.h:863
IM3D_API void End()
Definition im3d.h:828
IM3D_API bool GizmoWasActivated()
Definition im3d.h:891
constexpr Color Color_Red
Definition im3d.h:425
IM3D_API void DrawArrow(const Vec3 &_start, const Vec3 &_end, float _headLength=-1.0f, float _headThickness=-1.0f)
Definition im3d.cpp:565
IM3D_API void BeginLines()
Definition im3d.h:823
constexpr Color Color_White
Definition im3d.h:423
IM3D_API void EnableSorting(bool _enable)
Definition im3d.h:864
IM3D_API void SetMatrix(const Mat4 &_mat4)
Definition im3d.h:869
GizmoMode
Definition im3d.h:610
@ GizmoMode_Rotation
Definition im3d.h:612
@ GizmoMode_Translation
Definition im3d.h:611
@ GizmoMode_Scale
Definition im3d.h:613
IM3D_API float GetSize()
Definition im3d.h:859
U32 Id
Definition im3d.h:42
constexpr Color Color_Orange
Definition im3d.h:433
IM3D_API Id GetLayerId()
Definition im3d.h:884
constexpr Color Color_Magenta
Definition im3d.h:428
IM3D_API void BeginTriangles()
Definition im3d.h:826
IM3D_API void BeginLineLoop()
Definition im3d.h:824
IM3D_API Id GetId()
Definition im3d.h:878
IM3D_API void Draw()
Definition im3d.h:814
constexpr Color Color_Purple
Definition im3d.h:436
IM3D_API Id GetHotId()
Definition im3d.h:893
IM3D_API void EndFrame()
Definition im3d.h:813
IM3D_API void MulMatrix(const Mat4 &_mat4)
Definition im3d.cpp:116
IM3D_API void DrawSphereFilled(const Vec3 &_origin, float _radius, int _detail=-1)
Definition im3d.cpp:326
IM3D_API void PushMatrix()
Definition im3d.h:866
IM3D_API void PopColor()
Definition im3d.h:844
IM3D_API U32 GetDrawListCount()
Definition im3d.h:817
IM3D_API void PopDrawState()
Definition im3d.h:840
IM3D_API U32 GetTextDrawListCount()
Definition im3d.h:820
IM3D_API void BeginPoints()
Definition im3d.h:822
IM3D_API void DrawCylinder(const Vec3 &_start, const Vec3 &_end, float _radius, int _detail=-1)
Definition im3d.cpp:463
IM3D_API void SetIdentity()
Definition im3d.h:870
IM3D_API void PushColor()
Definition im3d.h:842
constexpr Id Id_Invalid
Definition im3d.h:43
IM3D_API bool IsVisible(const Vec3 &_origin, float _radius)
Definition im3d.h:895
IM3D_API void SetContext(Context &_ctx)
Definition im3d.h:899
constexpr Color Color_Teal
Definition im3d.h:437
constexpr Color Color_Gold
Definition im3d.h:434
constexpr Color Color_Brown
Definition im3d.h:435
IM3D_API void DrawQuadFilled(const Vec3 &_a, const Vec3 &_b, const Vec3 &_c, const Vec3 &_d)
Definition im3d.cpp:200
IM3D_API Context & GetContext()
Definition im3d.h:898
IM3D_API void Translate(float _x, float _y, float _z)
Definition im3d.cpp:121
IM3D_API const DrawList * GetDrawLists()
Definition im3d.h:816
IM3D_API bool GizmoRotation(const char *_id, float _rotation_[3 *3], bool _local=false)
Definition im3d.h:887
constexpr Color Color_Pink
Definition im3d.h:432
constexpr Color Color_Green
Definition im3d.h:426
IM3D_API void BeginLineStrip()
Definition im3d.h:825
constexpr Color Color_Blue
Definition im3d.h:427
IM3D_API void DrawCone2(const Vec3 &_start, const Vec3 &_end, float _radiusStart, float _radiusEnd, int _detail=-1)
Definition im3d.cpp:590
IM3D_API void DrawCylinderFilled(const Vec3 &_start, const Vec3 &_end, float _radius, bool _drawCapStart=true, bool _drawCapEnd=true, int _detail=-1)
Definition im3d.cpp:467
IM3D_API void PopAlpha()
Definition im3d.h:851
IM3D_API void PopMatrix()
Definition im3d.h:868
DrawPrimitiveType
Definition im3d.h:450
@ DrawPrimitive_Lines
Definition im3d.h:453
@ DrawPrimitive_Count
Definition im3d.h:456
@ DrawPrimitive_Points
Definition im3d.h:454
@ DrawPrimitive_Triangles
Definition im3d.h:452
IM3D_API void BeginTriangleStrip()
Definition im3d.h:827
IM3D_API void DrawCone(const Vec3 &_start, const Vec3 &_end, float _radiusStart, float _radiusEnd, int _detail=-1)
Definition im3d.h:156
IM3D_API void PushEnableSorting()
Definition im3d.h:861
constexpr Color Color_Yellow
Definition im3d.h:429
IM3D_API void SetAlpha(float _alpha)
Definition im3d.h:852
IM3D_API void DrawCircle(const Vec3 &_origin, const Vec3 &_normal, float _radius, int _detail=-1)
Definition im3d.cpp:224
IM3D_API Id GetActiveId()
Definition im3d.h:892
IM3D_API void DrawQuad(const Vec3 &_a, const Vec3 &_b, const Vec3 &_c, const Vec3 &_d)
Definition im3d.cpp:178
constexpr Color Color_Gray
Definition im3d.h:424
void PushLayerId()
Definition im3d.h:880
IM3D_API void PushId()
Definition im3d.h:872
IM3D_API void DrawLine(const Vec3 &_a, const Vec3 &_b, float _size, Color _color)
Definition im3d.cpp:170
PrimitiveMode
Definition im3d.h:600
@ PrimitiveMode_Triangles
Definition im3d.h:606
@ PrimitiveMode_None
Definition im3d.h:601
@ PrimitiveMode_LineLoop
Definition im3d.h:605
@ PrimitiveMode_Lines
Definition im3d.h:603
@ PrimitiveMode_Points
Definition im3d.h:602
@ PrimitiveMode_TriangleStrip
Definition im3d.h:607
@ PrimitiveMode_LineStrip
Definition im3d.h:604
IM3D_API bool GizmoTranslation(const char *_id, float _translation_[3], bool _local=false)
Definition im3d.h:886
constexpr Color Color_Black
Definition im3d.h:422
IM3D_API void PopSize()
Definition im3d.h:857
IM3D_API void DrawAlignedBoxFilled(const Vec3 &_min, const Vec3 &_max)
Definition im3d.cpp:408
IM3D_API void SetSize(float _size)
Definition im3d.h:858
IM3D_API void DrawPrism(const Vec3 &_start, const Vec3 &_end, float _radius, int _sides)
Definition im3d.cpp:529
constexpr Color Color_Cyan
Definition im3d.h:430
IM3D_API Id MakeId(const char *_str)
Definition im3d.cpp:831
IM3D_API void Rotate(const Vec3 &_axis, float _angle)
Definition im3d.cpp:131
IM3D_API bool GizmoScale(const char *_id, float _scale_[3])
Definition im3d.h:888
IM3D_API void PopLayerId()
Definition im3d.h:883
unsigned int U32
Definition im3d.h:29
TextFlags
Definition im3d.h:469
@ TextFlags_AlignBottom
Definition im3d.h:473
@ TextFlags_AlignRight
Definition im3d.h:471
@ TextFlags_AlignLeft
Definition im3d.h:470
@ TextFlags_AlignTop
Definition im3d.h:472
@ TextFlags_Default
Definition im3d.h:475
IM3D_API void PushAlpha()
Definition im3d.h:849
FrustumPlane
Definition im3d.h:516
@ FrustumPlane_Right
Definition im3d.h:520
@ FrustumPlane_Near
Definition im3d.h:517
@ FrustumPlane_Count
Definition im3d.h:524
@ FrustumPlane_Bottom
Definition im3d.h:521
@ FrustumPlane_Top
Definition im3d.h:519
@ FrustumPlane_Left
Definition im3d.h:522
@ FrustumPlane_Far
Definition im3d.h:518
IM3D_API void DrawConeFilled(const Vec3 &_start, const Vec3 &_end, float _radiusStart, float _radiusEnd, bool _drawCapStart=true, bool _drawCapEnd=true, int _detail=-1)
Definition im3d.h:157
@ Action_GizmoTranslation
Definition im3d.h:510
@ Action_GizmoLocal
Definition im3d.h:507
@ Action_Select
Definition im3d.h:506
@ Action_GizmoRotation
Definition im3d.h:508
@ Key_Count
Definition im3d.h:503
@ Action_GizmoScale
Definition im3d.h:509
@ Key_S
Definition im3d.h:500
@ Key_R
Definition im3d.h:499
@ Key_L
Definition im3d.h:498
@ Mouse_Left
Definition im3d.h:497
@ Action_Count
Definition im3d.h:512
@ Key_T
Definition im3d.h:501
IM3D_API void PopId()
Definition im3d.h:877
IM3D_API Color GetColor()
Definition im3d.h:847
IM3D_API void DrawConeFilled2(const Vec3 &_start, const Vec3 &_end, float _radiusStart, float _radiusEnd, bool _drawCapStart=true, bool _drawCapEnd=true, int _detail=-1)
Definition im3d.cpp:647
IM3D_API float GetAlpha()
Definition im3d.h:853
IM3D_API void DrawPoint(const Vec3 &_position, float _size, Color _color)
Definition im3d.cpp:163
constexpr Color Color_Navy
Definition im3d.h:438
IM3D_API void MergeContexts(Context &_dst_, const Context &_src)
Definition im3d.h:900
IM3D_API const TextDrawList * GetTextDrawLists()
Definition im3d.h:819
IM3D_API bool Gizmo(const char *_id, float _translation_[3], float _rotation_[3 *3], float _scale_[3])
Definition im3d.h:889
void DrawPrimitivesCallback(const DrawList &_drawList)
Definition im3d.h:466
IM3D_API void PushSize()
Definition im3d.h:855
IM3D_API void SetColor(Color _color)
Definition im3d.h:845
IM3D_API void DrawAlignedBox(const Vec3 &_min, const Vec3 &_max)
Definition im3d.cpp:376
IM3D_API void DrawSphere(const Vec3 &_origin, float _radius, int _detail=-1)
Definition im3d.cpp:285
IM3D_API void DrawCircleFilled(const Vec3 &_origin, const Vec3 &_normal, float _radius, int _detail=-1)
Definition im3d.cpp:251
IM3D_API void Scale(float _x, float _y, float _z)
Definition im3d.cpp:141
float m_snapRotation
Definition im3d.h:541
Vec2 m_viewportSize
Definition im3d.h:536
void setCullFrustum(const Mat4 &_viewProj, bool _ndcZNegativeOneToOne)
Definition im3d.cpp:1432
float m_snapScale
Definition im3d.h:542
float m_snapTranslation
Definition im3d.h:540
bool m_flipGizmoWhenBehind
Definition im3d.h:543
bool m_projOrtho
Definition im3d.h:538
float m_deltaTime
Definition im3d.h:539
Vec3 m_viewOrigin
Definition im3d.h:534
Vec3 m_cursorRayOrigin
Definition im3d.h:531
float m_projScaleY
Definition im3d.h:537
bool m_keyDown[Key_Count]
Definition im3d.h:529
void * m_appData
Definition im3d.h:544
Vec3 m_cursorRayDirection
Definition im3d.h:532
DrawPrimitivesCallback * drawCallback
Definition im3d.h:546
Vec3 m_viewDirection
Definition im3d.h:535
Vec4 m_cullFrustum[FrustumPlane_Count]
Definition im3d.h:530
Vec3 m_worldUp
Definition im3d.h:533
void set(int _i, float _val)
Definition im3d.h:389
float getB() const
Definition im3d.h:408
void setG(float _val)
Definition im3d.h:396
float getR() const
Definition im3d.h:406
void setB(float _val)
Definition im3d.h:397
constexpr Color(U32 _rgba)
Definition im3d.h:382
constexpr Color()
Definition im3d.h:381
void setR(float _val)
Definition im3d.h:395
float getA() const
Definition im3d.h:409
U32 getABGR() const
Definition im3d.h:411
U32 v
Definition im3d.h:379
float getG() const
Definition im3d.h:407
void setA(float _val)
Definition im3d.h:398
float get(int _i) const
Definition im3d.h:400
bool getEnableSorting() const
Definition im3d.h:659
DrawPrimitiveType m_primType
Definition im3d.h:775
bool isKeyDown(Key _key) const
Definition im3d.h:709
Vector< char > m_textBuffer
Definition im3d.h:770
float getAlpha() const
Definition im3d.h:649
U32 getPrimitiveCount(DrawPrimitiveType _type) const
Definition im3d.cpp:2923
Vector< TextList * > m_textData
Definition im3d.h:769
bool m_sortCalled
Definition im3d.h:764
Vector< bool > m_enableSortingStack
Definition im3d.h:752
U32 m_vertCountThisPrim
Definition im3d.h:777
Vector< float > m_alphaStack
Definition im3d.h:750
Id m_appIdActivated
Definition im3d.h:727
bool idWasActivated()
Definition im3d.h:676
void setColor(Color _color)
Definition im3d.h:643
bool m_keyDownPrev[Key_Count]
Definition im3d.h:784
void popColor()
Definition im3d.h:646
void vertex(const Vec3 &_position, float _size, Color _color)
Definition im3d.cpp:1690
void popId()
Definition im3d.h:675
void setMatrix(const Mat4 &_mat4)
Definition im3d.h:667
void pushMatrix(const Mat4 &_mat4)
Definition im3d.h:669
Id m_appActiveId
Definition im3d.h:725
float m_gizmoHeightPixels
Definition im3d.h:731
Vector< Mat4 > m_matrixStack
Definition im3d.h:753
void pushSize(float _size)
Definition im3d.h:655
void begin(PrimitiveMode _mode)
Definition im3d.cpp:1605
PrimitiveMode m_primMode
Definition im3d.h:774
float m_hotDepth
Definition im3d.h:723
U32 m_firstVertThisPrim
Definition im3d.h:776
Id getLayerId() const
Definition im3d.h:663
int findLayerIndex(Id _id) const
Definition im3d.cpp:2262
Vector< VertexData > VertexList
Definition im3d.h:758
U32 getTextDrawListCount() const
Definition im3d.h:640
Context()
Definition im3d.cpp:2058
void merge(const Context &_src)
Definition im3d.cpp:1917
Id getId() const
Definition im3d.h:673
void setSize(float _size)
Definition im3d.h:653
TextList * getCurrentTextList()
Definition im3d.cpp:2375
int m_cullFrustumCount
Definition im3d.h:786
Vector< Id > m_layerIdMap
Definition im3d.h:761
bool m_keyDownCurr[Key_Count]
Definition im3d.h:783
Vec3 m_gizmoStateVec3
Definition im3d.h:728
int m_vertexDataIndex
Definition im3d.h:760
Vector< TextData > TextList
Definition im3d.h:768
void setId(Id _id)
Definition im3d.h:672
Vector< TextDrawList > m_textDrawLists
Definition im3d.h:771
Vec3 m_maxVertThisPrim
Definition im3d.h:779
void sort()
Definition im3d.cpp:2159
void end()
Definition im3d.cpp:1631
bool m_gizmoLocal
Definition im3d.h:719
Vector< VertexList * > m_vertexData[2]
Definition im3d.h:759
const Mat4 & getMatrix() const
Definition im3d.h:668
Vector< float > m_sizeStack
Definition im3d.h:751
void pushColor(Color _color)
Definition im3d.h:645
float m_gizmoSizePixels
Definition im3d.h:732
AppData & getAppData()
Definition im3d.h:678
Id m_appId
Definition im3d.h:724
GizmoMode m_gizmoMode
Definition im3d.h:720
Vector< Id > m_idStack
Definition im3d.h:754
Mat3 m_gizmoStateMat3
Definition im3d.h:729
Id m_hotId
Definition im3d.h:722
void setAlpha(float _alpha)
Definition im3d.h:648
void vertex(const Vec3 &_position)
Definition im3d.h:626
float getSize() const
Definition im3d.h:654
Id m_appHotId
Definition im3d.h:726
Vector< Color > m_colorStack
Definition im3d.h:749
void popMatrix()
Definition im3d.h:670
Vector< DrawList > m_drawLists
Definition im3d.h:763
const DrawList * getDrawLists() const
Definition im3d.h:636
U32 getTextCount() const
Definition im3d.cpp:2936
void popSize()
Definition im3d.h:656
Vec4 m_cullFrustum[FrustumPlane_Count]
Definition im3d.h:785
void pushAlpha(float _alpha)
Definition im3d.h:650
Vector< Id > m_layerIdStack
Definition im3d.h:755
void pushId(Id _id)
Definition im3d.h:674
AppData m_appData
Definition im3d.h:782
bool wasKeyPressed(Key _key) const
Definition im3d.h:710
void popAlpha()
Definition im3d.h:651
float m_gizmoStateFloat
Definition im3d.h:730
U32 getLayerCount() const
Definition im3d.h:744
VertexList * getCurrentVertexList()
Definition im3d.cpp:2370
Color getColor() const
Definition im3d.h:644
bool m_endFrameCalled
Definition im3d.h:765
const TextDrawList * getTextDrawLists() const
Definition im3d.h:639
Id m_activeId
Definition im3d.h:721
U32 getDrawListCount() const
Definition im3d.h:637
Vec3 m_minVertThisPrim
Definition im3d.h:778
int m_layerIndex
Definition im3d.h:762
const VertexData * m_vertexData
Definition im3d.h:463
Id m_layerId
Definition im3d.h:461
DrawPrimitiveType m_primType
Definition im3d.h:462
U32 m_vertexCount
Definition im3d.h:464
float m[3 *3]
Definition im3d.h:276
Mat3()
Definition im3d.h:278
float operator()(int _row, int _col) const
Definition im3d.h:299
float & operator()(int _row, int _col)
Definition im3d.h:308
Mat4()
Definition im3d.h:327
float & operator()(int _row, int _col)
Definition im3d.h:362
float operator()(int _row, int _col) const
Definition im3d.h:353
float m[4 *4]
Definition im3d.h:325
Vec4 m_positionSize
Definition im3d.h:480
U32 m_flags
Definition im3d.h:482
U32 m_textLength
Definition im3d.h:483
Color m_color
Definition im3d.h:481
U32 m_textBufferOffset
Definition im3d.h:484
Id m_layerId
Definition im3d.h:489
const TextData * m_textData
Definition im3d.h:490
const char * m_textBuffer
Definition im3d.h:492
U32 m_textDataCount
Definition im3d.h:491
Vec2(float _xy)
Definition im3d.h:227
Vec2(float _x, float _y)
Definition im3d.h:228
float y
Definition im3d.h:224
Vec2()
Definition im3d.h:226
float x
Definition im3d.h:224
Vec3(float _xyz)
Definition im3d.h:243
float y
Definition im3d.h:240
Vec3(const Vec2 &_xy, float _z)
Definition im3d.h:245
float x
Definition im3d.h:240
float z
Definition im3d.h:240
Vec3(float _x, float _y, float _z)
Definition im3d.h:244
Vec3()
Definition im3d.h:242
Vec4()
Definition im3d.h:260
float z
Definition im3d.h:258
Vec4(float _x, float _y, float _z, float _w)
Definition im3d.h:262
float y
Definition im3d.h:258
float x
Definition im3d.h:258
Vec4(const Vec3 &_xyz, float _w)
Definition im3d.h:263
Vec4(float _xyzw)
Definition im3d.h:261
float w
Definition im3d.h:258
U32 size() const
Definition im3d.h:580
bool empty() const
Definition im3d.h:582
VertexData * m_data
Definition im3d.h:593
const T & front() const
Definition im3d.h:576
~Vector()
Definition im3d.cpp:1514
T * end()
Definition im3d.h:573
void append(const Vector< T > &_other)
Definition im3d.h:569
T & push_back()
Definition im3d.h:565
void push_back(const T &_v)
Definition im3d.h:566
T * begin()
Definition im3d.h:571
T & front()
Definition im3d.h:575
static void swap(Vector< T > &_a_, Vector< T > &_b_)
Definition im3d.cpp:1575
const T * begin() const
Definition im3d.h:572
Vector()
Definition im3d.h:557
void resize(U32 _size, const T &_val)
Definition im3d.cpp:1555
void pop_back()
Definition im3d.h:567
U32 capacity() const
Definition im3d.h:581
const T * data() const
Definition im3d.h:563
const T & back() const
Definition im3d.h:578
U32 m_capacity
Definition im3d.h:595
const T * end() const
Definition im3d.h:574
T & operator[](U32 _i)
Definition im3d.h:560
void resize(U32 _size)
Definition im3d.cpp:1567
T & back()
Definition im3d.h:577
void reserve(U32 _capacity)
U32 m_size
Definition im3d.h:594
void append(const T *_v, U32 _count)
Definition im3d.cpp:1524
void clear()
Definition im3d.h:584
T * data()
Definition im3d.h:562
const T & operator[](U32 _i) const
Definition im3d.h:561
VertexData()
Definition im3d.h:445
Color m_color
Definition im3d.h:443
VertexData(const Vec3 &_position, float _size, Color _color)
Definition im3d.h:446
Vec4 m_positionSize
Definition im3d.h:442