Box objects (AABB) now have the long awaited extent() and center() methods. Corners are now called “aa” and “bb” for convenience. The WorldEntity class uses a box3 for its AABB instead of two vec3s. This allows us to simplify a lot of verbose code.undefined
| @@ -75,8 +75,8 @@ public: | |||
| //This considers the box usage A to B as top-left to bottom-right | |||
| void AddTarget(box3 new_target) | |||
| { | |||
| vec3 base_off = .5f * (new_target.B - new_target.A); | |||
| vec3 base_pos = new_target.A + base_off; | |||
| vec3 base_off = .5f * new_target.extent(); | |||
| vec3 base_pos = new_target.center(); | |||
| int pass = 0; | |||
| while (pass < 3) | |||
| { | |||
| @@ -120,8 +120,8 @@ public: | |||
| #endif | |||
| m_position = vec3::zero; | |||
| m_bbox[0] = m_position; | |||
| m_bbox[1] = vec3((vec2)m_window_size, 0); | |||
| m_aabb.aa = m_position; | |||
| m_aabb.bb = vec3((vec2)m_window_size, 0); | |||
| //Input::TrackMouse(this); | |||
| #if LOL_FEATURE_THREADS | |||
| @@ -212,20 +212,20 @@ void Debug::DrawArrow(vec2 a, vec2 b, vec3 s, vec4 color, float az, float bz) | |||
| } | |||
| //-- BOX: 3D -2D - 3D_to_2D --------------------------------------------------- | |||
| void Debug::DrawBox(box3 a) { Debug::DrawBox(a.A, a.B, Scene::GetLineColor()); } | |||
| void Debug::DrawBox(box2 a) { Debug::DrawBox(a.A, a.B, Scene::GetLineColor()); } | |||
| void Debug::DrawBox(box3 a, vec4 color) { Debug::DrawBox(a.A, a.B, color); } | |||
| void Debug::DrawBox(box2 a, vec4 color) { Debug::DrawBox(a.A, a.B, color); } | |||
| void Debug::DrawBox(box3 a) { Debug::DrawBox(a.aa, a.bb, Scene::GetLineColor()); } | |||
| void Debug::DrawBox(box2 a) { Debug::DrawBox(a.aa, a.bb, Scene::GetLineColor()); } | |||
| void Debug::DrawBox(box3 a, vec4 color) { Debug::DrawBox(a.aa, a.bb, color); } | |||
| void Debug::DrawBox(box2 a, vec4 color) { Debug::DrawBox(a.aa, a.bb, color); } | |||
| void Debug::DrawBox(vec3 a, vec3 b) { Debug::DrawBox(a, b, Scene::GetLineColor()); } | |||
| void Debug::DrawBox(vec2 a, vec2 b) { Debug::DrawBox(a, b, Scene::GetLineColor()); } | |||
| void Debug::DrawBox(vec2 a, float s) { Debug::DrawBox(a, s, Scene::GetLineColor()); } | |||
| void Debug::DrawBox(vec3 a, vec3 b, vec4 color) { Debug::DrawBox(a, b, mat4::identity, color); } | |||
| void Debug::DrawBox(vec2 a, vec2 b, vec4 color) { Debug::DrawBox(a, b, mat2::identity, color); } | |||
| void Debug::DrawBox(vec2 a, float s, vec4 color) { Debug::DrawBox(a, s, mat2::identity, color); } | |||
| void Debug::DrawBox(box3 a, mat4 transform) { Debug::DrawBox(a.A, a.B, transform, Scene::GetLineColor()); } | |||
| void Debug::DrawBox(box2 a, mat2 transform) { Debug::DrawBox(a.A, a.B, transform, Scene::GetLineColor()); } | |||
| void Debug::DrawBox(box3 a, mat4 transform, vec4 color) { Debug::DrawBox(a.A, a.B, transform, color); } | |||
| void Debug::DrawBox(box2 a, mat2 transform, vec4 color) { Debug::DrawBox(a.A, a.B, transform, color); } | |||
| void Debug::DrawBox(box3 a, mat4 transform) { Debug::DrawBox(a.aa, a.bb, transform, Scene::GetLineColor()); } | |||
| void Debug::DrawBox(box2 a, mat2 transform) { Debug::DrawBox(a.aa, a.bb, transform, Scene::GetLineColor()); } | |||
| void Debug::DrawBox(box3 a, mat4 transform, vec4 color) { Debug::DrawBox(a.aa, a.bb, transform, color); } | |||
| void Debug::DrawBox(box2 a, mat2 transform, vec4 color) { Debug::DrawBox(a.aa, a.bb, transform, color); } | |||
| void Debug::DrawBox(vec3 a, vec3 b, mat4 transform) { Debug::DrawBox(a, b, transform, Scene::GetLineColor()); } | |||
| void Debug::DrawBox(vec2 a, vec2 b, mat2 transform) { Debug::DrawBox(a, b, transform, Scene::GetLineColor()); } | |||
| void Debug::DrawBox(vec2 a, float s, mat2 transform) { Debug::DrawBox(a, s, transform, Scene::GetLineColor()); } | |||
| @@ -235,12 +235,12 @@ void Renderer::SetViewport(ibox2 viewport) | |||
| return; | |||
| #if defined USE_D3D9 || defined _XBOX | |||
| D3DVIEWPORT9 vp = { viewport.A.x, viewport.A.y, | |||
| viewport.B.x, viewport.B.y, | |||
| D3DVIEWPORT9 vp = { viewport.aa.x, viewport.aa.y, | |||
| viewport.bb.x, viewport.bb.y, | |||
| 0.0f, 1.0f }; | |||
| m_data->m_d3d_dev->SetViewport(&vp); | |||
| #else | |||
| glViewport(viewport.A.x, viewport.A.y, viewport.B.x, viewport.B.y); | |||
| glViewport(viewport.aa.x, viewport.aa.y, viewport.bb.x, viewport.bb.y); | |||
| #endif | |||
| m_data->m_viewport = viewport; | |||
| @@ -253,17 +253,13 @@ ibox2 Renderer::GetViewport() const | |||
| float Renderer::GetXYRatio() const | |||
| { | |||
| ibox2 a = GetViewport(); | |||
| ibox2 b(a.A, a.B); | |||
| ivec2 s = b.B - b.A; | |||
| ivec2 s = GetViewport().extent(); | |||
| return (float)s.x / s.y; | |||
| } | |||
| float Renderer::GetYXRatio() const | |||
| { | |||
| ibox2 a = GetViewport(); | |||
| ibox2 b(a.A, a.B); | |||
| ivec2 s = b.B - b.A; | |||
| ivec2 s = GetViewport().extent(); | |||
| return (float)s.y / s.x; | |||
| } | |||
| @@ -38,8 +38,8 @@ Gradient::Gradient(vec3 aa, vec3 bb) | |||
| { | |||
| /* FIXME: this should not be hardcoded */ | |||
| m_position = aa; | |||
| m_bbox[0] = aa; | |||
| m_bbox[1] = bb; | |||
| m_aabb.aa = aa; | |||
| m_aabb.bb = bb; | |||
| data->shader = nullptr; | |||
| } | |||
| @@ -53,12 +53,12 @@ void Gradient::TickDraw(float seconds, Scene &scene) | |||
| { | |||
| Entity::TickDraw(seconds, scene); | |||
| float const vertex[] = { m_bbox[0].x, m_bbox[0].y, 0.0f, | |||
| m_bbox[1].x, m_bbox[0].y, 0.0f, | |||
| m_bbox[0].x, m_bbox[1].y, 0.0f, | |||
| m_bbox[1].x, m_bbox[1].y, 0.0f, | |||
| m_bbox[0].x, m_bbox[1].y, 0.0f, | |||
| m_bbox[1].x, m_bbox[0].y, 0.0f, }; | |||
| float const vertex[] = { m_aabb.aa.x, m_aabb.aa.y, 0.0f, | |||
| m_aabb.bb.x, m_aabb.aa.y, 0.0f, | |||
| m_aabb.aa.x, m_aabb.bb.y, 0.0f, | |||
| m_aabb.bb.x, m_aabb.bb.y, 0.0f, | |||
| m_aabb.aa.x, m_aabb.bb.y, 0.0f, | |||
| m_aabb.bb.x, m_aabb.aa.y, 0.0f, }; | |||
| float const color[] = { 0.73f, 0.85f, 0.85f, 1.0f, | |||
| 0.73f, 0.85f, 0.85f, 1.0f, | |||
| @@ -22,7 +22,7 @@ namespace lol | |||
| Image Image::Crop(ibox2 box) const | |||
| { | |||
| ivec2 const srcsize = GetSize(); | |||
| ivec2 const dstsize = box.B - box.A; | |||
| ivec2 const dstsize = box.extent(); | |||
| Image dst(dstsize); | |||
| PixelFormat format = GetFormat(); | |||
| @@ -36,24 +36,24 @@ Image Image::Crop(ibox2 box) const | |||
| int len = dstsize.x; | |||
| if (box.A.x < 0) | |||
| if (box.aa.x < 0) | |||
| { | |||
| len += box.A.x; | |||
| box.A.x = 0; | |||
| len += box.aa.x; | |||
| box.aa.x = 0; | |||
| } | |||
| if (box.A.x + len > srcsize.x) | |||
| len = srcsize.x - box.A.x; | |||
| if (box.aa.x + len > srcsize.x) | |||
| len = srcsize.x - box.aa.x; | |||
| if (len > 0) | |||
| { | |||
| for (int y = 0; y < dstsize.y; y++) | |||
| { | |||
| if (y + box.A.y < 0 || y + box.A.y >= srcsize.y) | |||
| if (y + box.aa.y < 0 || y + box.aa.y >= srcsize.y) | |||
| continue; | |||
| memcpy(dstp + y * dstsize.x * bpp, | |||
| srcp + ((y + box.A.y) * srcsize.x + box.A.x) * bpp, | |||
| srcp + ((y + box.aa.y) * srcsize.x + box.aa.x) * bpp, | |||
| len * bpp); | |||
| } | |||
| } | |||
| @@ -81,8 +81,8 @@ void Draw(Quadtree<TE>* tree, vec4 color) | |||
| //vec3 add = vec3(0.0f, 0.1f, 0.0f); | |||
| while (boxes.Count() > 0) | |||
| { | |||
| Debug::DrawBox(vec3(boxes[0].m1.A.x, tree->m_debug_y_offset, boxes[0].m1.A.y), | |||
| vec3(boxes[0].m1.B.x, tree->m_debug_y_offset, boxes[0].m1.B.y), | |||
| Debug::DrawBox(vec3(boxes[0].m1.aa.x, tree->m_debug_y_offset, boxes[0].m1.aa.y), | |||
| vec3(boxes[0].m1.bb.x, tree->m_debug_y_offset, boxes[0].m1.bb.y), | |||
| boxes[0].m2); | |||
| boxes.Remove(0); | |||
| } | |||
| @@ -90,8 +90,8 @@ void Draw(Quadtree<TE>* tree, vec4 color) | |||
| { | |||
| while (elements[0].m2 > 0) | |||
| { | |||
| Debug::DrawBox(vec3(elements[0].m1->GetAABB().A.x, tree->m_debug_y_offset, elements[0].m1->GetAABB().A.y) + off * (float)elements[0].m2, | |||
| vec3(elements[0].m1->GetAABB().B.x, tree->m_debug_y_offset, elements[0].m1->GetAABB().B.y) + off * (float)elements[0].m2, | |||
| Debug::DrawBox(vec3(elements[0].m1->GetAABB().aa.x, tree->m_debug_y_offset, elements[0].m1->GetAABB().aa.y) + off * (float)elements[0].m2, | |||
| vec3(elements[0].m1->GetAABB().bb.x, tree->m_debug_y_offset, elements[0].m1->GetAABB().bb.y) + off * (float)elements[0].m2, | |||
| elements[0].m3); | |||
| elements[0].m2--; | |||
| } | |||
| @@ -112,9 +112,9 @@ void Draw(Octree<TE>* tree, vec4 color) | |||
| //vec3 add = vec3(0.0f, 0.1f, 0.0f); | |||
| while (boxes.Count() > 0) | |||
| { | |||
| //float size = boxes[0].m1.B.x - boxes[0].m1.A.x; | |||
| Debug::DrawBox(vec3(boxes[0].m1.A.x, boxes[0].m1.A.y, boxes[0].m1.A.z) /* + off * (m_size.x / size) */, | |||
| vec3(boxes[0].m1.B.x, boxes[0].m1.B.y, boxes[0].m1.B.z) /* + off * (m_size.x / size) */, | |||
| //float size = boxes[0].m1.bb.x - boxes[0].m1.aa.x; | |||
| Debug::DrawBox(vec3(boxes[0].m1.aa.x, boxes[0].m1.aa.y, boxes[0].m1.aa.z) /* + off * (m_size.x / size) */, | |||
| vec3(boxes[0].m1.bb.x, boxes[0].m1.bb.y, boxes[0].m1.bb.z) /* + off * (m_size.x / size) */, | |||
| boxes[0].m2); | |||
| //off += add; | |||
| boxes.Remove(0); | |||
| @@ -123,8 +123,8 @@ void Draw(Octree<TE>* tree, vec4 color) | |||
| { | |||
| while (elements[0].m2 > 0) | |||
| { | |||
| Debug::DrawBox(vec3(elements[0].m1->GetAABB().A.x, elements[0].m1->GetAABB().A.y, elements[0].m1->GetAABB().A.z) + off * (float)elements[0].m2, | |||
| vec3(elements[0].m1->GetAABB().B.x, elements[0].m1->GetAABB().B.y, elements[0].m1->GetAABB().B.z) + off * (float)elements[0].m2, | |||
| Debug::DrawBox(vec3(elements[0].m1->GetAABB().aa.x, elements[0].m1->GetAABB().aa.y, elements[0].m1->GetAABB().aa.z) + off * (float)elements[0].m2, | |||
| vec3(elements[0].m1->GetAABB().bb.x, elements[0].m1->GetAABB().bb.y, elements[0].m1->GetAABB().bb.z) + off * (float)elements[0].m2, | |||
| elements[0].m3); | |||
| elements[0].m2--; | |||
| } | |||
| @@ -341,9 +341,9 @@ public: | |||
| virtual TB GetSubAABB(const TB& bbox, int sub) | |||
| { | |||
| TV v(GetSubOffset(sub)); | |||
| TV half_vec = (bbox.B - bbox.A) * .5f; | |||
| return TB(bbox.A + half_vec * v, | |||
| bbox.A + half_vec * (v + TV(1.f))); | |||
| TV half_vec = bbox.extent() * .5f; | |||
| return TB(bbox.aa + half_vec * v, | |||
| bbox.aa + half_vec * (v + TV(1.f))); | |||
| } | |||
| //-- | |||
| @@ -87,23 +87,23 @@ LOL_BOX_TYPEDEFS(Box3, box3) | |||
| template <typename T> struct Box2 | |||
| { | |||
| inline Box2() | |||
| : A(T(0)), | |||
| B(T(0)) | |||
| : aa(T(0)), | |||
| bb(T(0)) | |||
| {} | |||
| inline Box2(vec_t<T,2> const &a, vec_t<T,2> const &b) | |||
| : A(a), | |||
| B(b) | |||
| : aa(a), | |||
| bb(b) | |||
| {} | |||
| inline Box2(T const &ax, T const &ay, T const &bx, T const &by) | |||
| : A(ax, ay), | |||
| B(bx, by) | |||
| : aa(ax, ay), | |||
| bb(bx, by) | |||
| {} | |||
| Box2<T> operator +(vec_t<T,2> const &v) const | |||
| { | |||
| return Box2<T>(A + v, B + v); | |||
| return Box2<T>(aa + v, bb + v); | |||
| } | |||
| Box2<T> &operator +=(vec_t<T,2> const &v) | |||
| @@ -113,7 +113,7 @@ template <typename T> struct Box2 | |||
| Box2<T> operator -(vec_t<T,2> const &v) const | |||
| { | |||
| return Box2<T>(A - v, B - v); | |||
| return Box2<T>(aa - v, bb - v); | |||
| } | |||
| Box2<T> &operator -=(vec_t<T,2> const &v) | |||
| @@ -123,7 +123,7 @@ template <typename T> struct Box2 | |||
| Box2<T> operator *(vec_t<T,2> const &v) const | |||
| { | |||
| return Box2<T>(A * v, B * v); | |||
| return Box2<T>(aa * v, bb * v); | |||
| } | |||
| Box2<T> &operator *=(vec_t<T,2> const &v) | |||
| @@ -131,17 +131,31 @@ template <typename T> struct Box2 | |||
| return *this = *this * v; | |||
| } | |||
| bool operator ==(Box2<T> const &box) | |||
| Box2<T> operator *(T const &s) const | |||
| { | |||
| return A == box.A && B == box.B; | |||
| return Box2<T>(aa * s, bb * s); | |||
| } | |||
| bool operator !=(Box2<T> const &box) | |||
| Box2<T> &operator *=(T const &s) | |||
| { | |||
| return A != box.A || B != box.B; | |||
| return *this = *this * s; | |||
| } | |||
| vec_t<T,2> A, B; | |||
| bool operator ==(Box2<T> const &box) const | |||
| { | |||
| return aa == box.aa && bb == box.bb; | |||
| } | |||
| bool operator !=(Box2<T> const &box) const | |||
| { | |||
| return aa != box.aa || bb != box.bb; | |||
| } | |||
| inline vec_t<T,2> center() const { return (bb + aa) / 2; } | |||
| inline vec_t<T,2> extent() const { return bb - aa; } | |||
| vec_t<T,2> aa, bb; | |||
| }; | |||
| /* | |||
| @@ -151,24 +165,24 @@ template <typename T> struct Box2 | |||
| template <typename T> struct Box3 | |||
| { | |||
| inline Box3() | |||
| : A(T(0)), | |||
| B(T(0)) | |||
| : aa(T(0)), | |||
| bb(T(0)) | |||
| {} | |||
| inline Box3(vec_t<T,3> const &a, vec_t<T,3> const &b) | |||
| : A(a), | |||
| B(b) | |||
| : aa(a), | |||
| bb(b) | |||
| {} | |||
| inline Box3(T const &ax, T const &ay, T const &az, | |||
| T const &bx, T const &by, T const &bz) | |||
| : A(ax, ay, az), | |||
| B(bx, by, bz) | |||
| : aa(ax, ay, az), | |||
| bb(bx, by, bz) | |||
| {} | |||
| Box3<T> operator +(vec_t<T,3> const &v) const | |||
| { | |||
| return Box3<T>(A + v, B + v); | |||
| return Box3<T>(aa + v, bb + v); | |||
| } | |||
| Box3<T> &operator +=(vec_t<T,3> const &v) | |||
| @@ -178,7 +192,7 @@ template <typename T> struct Box3 | |||
| Box3<T> operator -(vec_t<T,3> const &v) const | |||
| { | |||
| return Box3<T>(A - v, B - v); | |||
| return Box3<T>(aa - v, bb - v); | |||
| } | |||
| Box3<T> &operator -=(vec_t<T,3> const &v) | |||
| @@ -188,7 +202,7 @@ template <typename T> struct Box3 | |||
| Box3<T> operator *(vec_t<T,3> const &v) const | |||
| { | |||
| return Box3<T>(A * v, B * v); | |||
| return Box3<T>(aa * v, bb * v); | |||
| } | |||
| Box3<T> &operator *=(vec_t<T,3> const &v) | |||
| @@ -196,17 +210,31 @@ template <typename T> struct Box3 | |||
| return *this = *this * v; | |||
| } | |||
| bool operator ==(Box3<T> const &box) | |||
| Box3<T> operator *(T const &s) const | |||
| { | |||
| return A == box.A && B == box.B; | |||
| return Box3<T>(aa * s, bb * s); | |||
| } | |||
| bool operator !=(Box3<T> const &box) | |||
| Box3<T> &operator *=(T const &s) | |||
| { | |||
| return A != box.A || B != box.B; | |||
| return *this = *this * s; | |||
| } | |||
| vec_t<T,3> A, B; | |||
| bool operator ==(Box3<T> const &box) const | |||
| { | |||
| return aa == box.aa && bb == box.bb; | |||
| } | |||
| bool operator !=(Box3<T> const &box) const | |||
| { | |||
| return aa != box.aa || bb != box.bb; | |||
| } | |||
| inline vec_t<T,3> center() const { return (bb + aa) / 2; } | |||
| inline vec_t<T,3> extent() const { return bb - aa; } | |||
| vec_t<T,3> aa, bb; | |||
| }; | |||
| /* | |||
| @@ -243,9 +271,9 @@ bool operator>=(float value, const TestEpsilon& epsilon); | |||
| //-- | |||
| static inline bool TestAABBVsAABB(box2 const &b1, box2 const &b2) | |||
| { | |||
| vec2 c = 0.5f * ((b1.A + b1.B) - (b2.A + b2.B)); | |||
| vec2 e1 = 0.5f * (b1.B - b1.A); | |||
| vec2 e2 = 0.5f * (b2.B - b2.A); | |||
| vec2 c = b1.center() - b2.center(); | |||
| vec2 e1 = 0.5f * b1.extent(); | |||
| vec2 e2 = 0.5f * b2.extent(); | |||
| return abs(c.x) <= e1.x + e2.x | |||
| && abs(c.y) <= e1.y + e2.y; | |||
| @@ -257,9 +285,9 @@ static inline bool TestAABBVsPoint(box2 const &b1, vec2 const &p) | |||
| static inline bool TestAABBVsAABB(box3 const &b1, box3 const &b2) | |||
| { | |||
| vec3 c = 0.5f * ((b1.A + b1.B) - (b2.A + b2.B)); | |||
| vec3 e1 = 0.5f * (b1.B - b1.A); | |||
| vec3 e2 = 0.5f * (b2.B - b2.A); | |||
| vec3 c = b1.center() - b2.center(); | |||
| vec3 e1 = 0.5f * b1.extent(); | |||
| vec3 e2 = 0.5f * b2.extent(); | |||
| return abs(c.x) <= e1.x + e2.x | |||
| && abs(c.y) <= e1.y + e2.y | |||
| @@ -137,8 +137,8 @@ char const *TileSet::GetName() | |||
| ptrdiff_t TileSet::AddTile(ibox2 rect) | |||
| { | |||
| m_tileset_data->m_tiles.Push(rect, | |||
| box2((vec2)rect.A / (vec2)m_data->m_texture_size, | |||
| (vec2)rect.B / (vec2)m_data->m_texture_size)); | |||
| box2((vec2)rect.aa / (vec2)m_data->m_texture_size, | |||
| (vec2)rect.bb / (vec2)m_data->m_texture_size)); | |||
| return m_tileset_data->m_tiles.Count() - 1; | |||
| } | |||
| @@ -161,8 +161,7 @@ ptrdiff_t TileSet::GetTileCount() const | |||
| ivec2 TileSet::GetTileSize(ptrdiff_t tileid) const | |||
| { | |||
| ibox2 const &box = m_tileset_data->m_tiles[tileid].m1; | |||
| return box.B - box.A; | |||
| return m_tileset_data->m_tiles[tileid].m1.extent(); | |||
| } | |||
| //Palette --------------------------------------------------------------------- | |||
| @@ -186,14 +185,14 @@ void TileSet::BlitTile(uint32_t id, vec3 pos, int o, vec2 scale, float angle, | |||
| { | |||
| ibox2 pixels = m_tileset_data->m_tiles[id].m1; | |||
| box2 texels = m_tileset_data->m_tiles[id].m2; | |||
| float dtx = texels.B.x - texels.A.x; | |||
| float dty = texels.B.y - texels.A.y; | |||
| float tx = texels.A.x; | |||
| float ty = texels.A.y; | |||
| int dx = (int)((float)(pixels.B.x - pixels.A.x) * scale.x); | |||
| int dy = o ? 0 : (int)((float)(pixels.B.y - pixels.A.y) * scale.y); | |||
| int dz = o ? (int)((float)(pixels.B.y - pixels.A.y) * scale.y) : 0; | |||
| float dtx = texels.extent().x; | |||
| float dty = texels.extent().y; | |||
| float tx = texels.aa.x; | |||
| float ty = texels.aa.y; | |||
| int dx = (int)(pixels.extent().x * scale.x); | |||
| int dy = o ? 0 : (int)(pixels.extent().y * scale.y); | |||
| int dz = o ? (int)(pixels.extent().y * scale.y) : 0; | |||
| /* If scaling is negative, switch triangle winding */ | |||
| if (scale.x * scale.y < 0.0f) | |||
| @@ -132,9 +132,7 @@ void Video::Capture(uint32_t *buffer) | |||
| ivec2 Video::GetSize() | |||
| { | |||
| ibox2 viewport = g_renderer->GetViewport(); | |||
| return viewport.B - viewport.A; | |||
| return g_renderer->GetViewport().extent(); | |||
| } | |||
| } /* namespace lol */ | |||
| @@ -20,8 +20,12 @@ namespace lol | |||
| */ | |||
| WorldEntity::WorldEntity() | |||
| : m_aabb(vec3(0.f), vec3(0.f)), | |||
| m_position(0.f), | |||
| m_velocity(0.f), | |||
| m_rotation(1.f), | |||
| m_rotation_velocity(0.f) | |||
| { | |||
| m_bbox[0] = m_bbox[1] = vec3::zero; | |||
| } | |||
| WorldEntity::~WorldEntity() | |||
| @@ -28,11 +28,11 @@ public: | |||
| virtual char const *GetName(); | |||
| public: | |||
| box3 m_aabb; | |||
| vec3 m_position = vec3::zero; | |||
| vec3 m_velocity = vec3::zero; | |||
| quat m_rotation = quat(1); | |||
| vec3 m_rotation_velocity = vec3::zero; | |||
| vec3 m_bbox[2]; | |||
| protected: | |||
| WorldEntity(); | |||