Added initializer types.
This commit is contained in:
parent
9ab8494bdd
commit
f1ddf67114
@ -291,8 +291,8 @@ struct Camera
|
||||
|
||||
struct Interp3f
|
||||
{
|
||||
bx::Vec3 curr;
|
||||
bx::Vec3 dest;
|
||||
bx::Vec3 curr = bx::init::None;
|
||||
bx::Vec3 dest = bx::init::None;
|
||||
};
|
||||
|
||||
Interp3f m_target;
|
||||
|
@ -29,8 +29,8 @@ struct Camera
|
||||
|
||||
void reset()
|
||||
{
|
||||
m_target.curr = { 0.0f, 0.0f, 0.0f };
|
||||
m_target.dest = { 0.0f, 0.0f, 0.0f };
|
||||
m_target.curr = bx::init::Zero;
|
||||
m_target.dest = bx::init::Zero;
|
||||
|
||||
m_pos.curr = { 0.0f, 0.0f, -2.0f };
|
||||
m_pos.dest = { 0.0f, 0.0f, -2.0f };
|
||||
@ -135,8 +135,8 @@ struct Camera
|
||||
|
||||
struct Interp3f
|
||||
{
|
||||
bx::Vec3 curr;
|
||||
bx::Vec3 dest;
|
||||
bx::Vec3 curr = bx::init::None;
|
||||
bx::Vec3 dest = bx::init::None;
|
||||
};
|
||||
|
||||
Interp3f m_target;
|
||||
|
@ -601,7 +601,7 @@ void initA(Shape& _outShape, Shape::Type::Enum _type, bx::Vec3 _pos)
|
||||
|
||||
case Shape::Type::Plane:
|
||||
{
|
||||
bx::Plane plane;
|
||||
bx::Plane plane(bx::init::None);
|
||||
bx::calcPlane(plane, bx::normalize(bx::Vec3{0.0f, 1.0f, 1.0f}), _pos);
|
||||
_outShape = Shape(plane);
|
||||
}
|
||||
@ -688,7 +688,7 @@ void initB(Shape& _outShape, Shape::Type::Enum _type, bx::Vec3 _pos)
|
||||
|
||||
case Shape::Type::Plane:
|
||||
{
|
||||
bx::Plane plane;
|
||||
bx::Plane plane(bx::init::None);
|
||||
bx::calcPlane(plane, bx::normalize(bx::Vec3{1.0f, 1.0f, 0.0f}), _pos);
|
||||
_outShape = Shape(plane);
|
||||
}
|
||||
@ -999,7 +999,7 @@ public:
|
||||
const bx::Vec3 normal = { 0.0f, 1.0f, 0.0f };
|
||||
const bx::Vec3 pos = { 0.0f, -2.0f, 0.0f };
|
||||
|
||||
bx::Plane plane;
|
||||
bx::Plane plane(bx::init::None);
|
||||
bx::calcPlane(plane, normal, pos);
|
||||
|
||||
dde.setColor(false
|
||||
|
@ -63,7 +63,7 @@ namespace
|
||||
typedef bx::Vec3 Color;
|
||||
|
||||
// HDTV rec. 709 matrix.
|
||||
static float M_XYZ2RGB[] =
|
||||
static constexpr float M_XYZ2RGB[] =
|
||||
{
|
||||
3.240479f, -0.969256f, 0.055648f,
|
||||
-1.53715f, 1.875991f, -0.204043f,
|
||||
@ -73,18 +73,18 @@ namespace
|
||||
// Converts color repesentation from CIE XYZ to RGB color-space.
|
||||
Color xyzToRgb(const Color& xyz)
|
||||
{
|
||||
Color rgb;
|
||||
Color rgb(bx::init::None);
|
||||
rgb.x = M_XYZ2RGB[0] * xyz.x + M_XYZ2RGB[3] * xyz.y + M_XYZ2RGB[6] * xyz.z;
|
||||
rgb.y = M_XYZ2RGB[1] * xyz.x + M_XYZ2RGB[4] * xyz.y + M_XYZ2RGB[7] * xyz.z;
|
||||
rgb.z = M_XYZ2RGB[2] * xyz.x + M_XYZ2RGB[5] * xyz.y + M_XYZ2RGB[8] * xyz.z;
|
||||
return rgb;
|
||||
};
|
||||
|
||||
|
||||
// Precomputed luminance of sunlight in XYZ colorspace.
|
||||
// Computed using code from Game Engine Gems, Volume One, chapter 15. Implementation based on Dr. Richard Bird model.
|
||||
// This table is used for piecewise linear interpolation. Transitions from and to 0.0 at sunset and sunrise are highly inaccurate
|
||||
static std::map<float, Color> sunLuminanceXYZTable = {
|
||||
static std::map<float, Color> sunLuminanceXYZTable =
|
||||
{
|
||||
{ 5.0f, { 0.000000f, 0.000000f, 0.000000f } },
|
||||
{ 7.0f, { 12.703322f, 12.989393f, 9.100411f } },
|
||||
{ 8.0f, { 13.202644f, 13.597814f, 11.524929f } },
|
||||
@ -107,7 +107,8 @@ namespace
|
||||
// This table is used for piecewise linear interpolation. Day/night transitions are highly inaccurate.
|
||||
// The scale of luminance change in Day/night transitions is not preserved.
|
||||
// Luminance at night was increased to eliminate need the of HDR render.
|
||||
static std::map<float, Color> skyLuminanceXYZTable = {
|
||||
static std::map<float, Color> skyLuminanceXYZTable =
|
||||
{
|
||||
{ 0.0f, { 0.308f, 0.308f, 0.411f } },
|
||||
{ 1.0f, { 0.308f, 0.308f, 0.410f } },
|
||||
{ 2.0f, { 0.301f, 0.301f, 0.402f } },
|
||||
@ -136,7 +137,7 @@ namespace
|
||||
// Turbidity tables. Taken from:
|
||||
// A. J. Preetham, P. Shirley, and B. Smits. A Practical Analytic Model for Daylight. SIGGRAPH '99
|
||||
// Coefficients correspond to xyY colorspace.
|
||||
static Color ABCDE[] =
|
||||
static constexpr Color ABCDE[] =
|
||||
{
|
||||
{ -0.2592f, -0.2608f, -1.4630f },
|
||||
{ 0.0008f, 0.0092f, 0.4275f },
|
||||
@ -144,7 +145,8 @@ namespace
|
||||
{ -0.8989f, -1.6537f, -2.5771f },
|
||||
{ 0.0452f, 0.0529f, 0.3703f },
|
||||
};
|
||||
static Color ABCDE_t[] =
|
||||
|
||||
static constexpr Color ABCDE_t[] =
|
||||
{
|
||||
{ -0.0193f, -0.0167f, 0.1787f },
|
||||
{ -0.0665f, -0.0950f, -0.3554f },
|
||||
@ -241,14 +243,14 @@ namespace
|
||||
};
|
||||
|
||||
SunController()
|
||||
: m_latitude(50.0f)
|
||||
: m_northDir(1.0f, 0.0f, 0.0f)
|
||||
, m_sunDir(0.0f, -1.0f, 0.0f)
|
||||
, m_upDir(0.0f, 1.0f, 0.0f)
|
||||
, m_latitude(50.0f)
|
||||
, m_month(June)
|
||||
, m_eclipticObliquity(bx::toRad(23.4f) )
|
||||
, m_delta(0.0f)
|
||||
{
|
||||
m_northDir = { 1.0f, 0.0f, 0.0f };
|
||||
m_sunDir = { 0.0f, -1.0f, 0.0f };
|
||||
m_upDir = { 0.0f, 1.0f, 0.0f };
|
||||
}
|
||||
|
||||
void Update(float _time)
|
||||
|
@ -139,8 +139,8 @@ struct Camera
|
||||
|
||||
struct Interp3f
|
||||
{
|
||||
bx::Vec3 curr;
|
||||
bx::Vec3 dest;
|
||||
bx::Vec3 curr = bx::init::None;
|
||||
bx::Vec3 dest = bx::init::None;
|
||||
};
|
||||
|
||||
Interp3f m_target;
|
||||
|
@ -128,7 +128,8 @@ void aabbTransformToObb(Obb& _obb, const Aabb& _aabb, const float* _mtx)
|
||||
|
||||
void toAabb(Aabb& _outAabb, const void* _vertices, uint32_t _numVertices, uint32_t _stride)
|
||||
{
|
||||
Vec3 mn, mx;
|
||||
Vec3 mn(init::None);
|
||||
Vec3 mx(init::None);
|
||||
uint8_t* vertex = (uint8_t*)_vertices;
|
||||
|
||||
mn = mx = load<Vec3>(vertex);
|
||||
@ -149,7 +150,8 @@ void toAabb(Aabb& _outAabb, const void* _vertices, uint32_t _numVertices, uint32
|
||||
|
||||
void toAabb(Aabb& _outAabb, const float* _mtx, const void* _vertices, uint32_t _numVertices, uint32_t _stride)
|
||||
{
|
||||
Vec3 mn, mx;
|
||||
Vec3 mn(init::None);
|
||||
Vec3 mx(init::None);
|
||||
uint8_t* vertex = (uint8_t*)_vertices;
|
||||
mn = mx = mul(load<Vec3>(vertex), _mtx);
|
||||
|
||||
@ -282,7 +284,7 @@ void calcMinBoundingSphere(Sphere& _sphere, const void* _vertices, uint32_t _num
|
||||
|
||||
uint8_t* vertex = (uint8_t*)_vertices;
|
||||
|
||||
Vec3 center;
|
||||
Vec3 center(init::None);
|
||||
float* position = (float*)&vertex[0];
|
||||
center.x = position[0];
|
||||
center.y = position[1];
|
||||
@ -500,9 +502,7 @@ bool intersect(const Ray& _ray, const Obb& _obb, Hit* _hit)
|
||||
|
||||
bool intersect(const Ray& _ray, const Disk& _disk, Hit* _hit)
|
||||
{
|
||||
Plane plane;
|
||||
plane.normal = _disk.normal;
|
||||
plane.dist = -dot(_disk.center, _disk.normal);
|
||||
Plane plane(_disk.normal, -dot(_disk.center, _disk.normal) );
|
||||
|
||||
Hit tmpHit;
|
||||
_hit = NULL != _hit ? _hit : &tmpHit;
|
||||
@ -597,8 +597,8 @@ static bool intersect(const Ray& _ray, const Cylinder& _cylinder, bool _capsule,
|
||||
return intersect(_ray, sphere, _hit);
|
||||
}
|
||||
|
||||
Plane plane;
|
||||
Vec3 pos;
|
||||
Plane plane(init::None);
|
||||
Vec3 pos(init::None);
|
||||
|
||||
if (0.0f >= height)
|
||||
{
|
||||
@ -907,9 +907,9 @@ Interval projectToAxis(const Vec3& _axis, const Triangle& _triangle)
|
||||
|
||||
struct Srt
|
||||
{
|
||||
Quaternion rotation;
|
||||
Vec3 translation;
|
||||
Vec3 scale;
|
||||
Quaternion rotation = init::Identity;
|
||||
Vec3 translation = init::Zero;
|
||||
Vec3 scale = init::Zero;
|
||||
};
|
||||
|
||||
Srt toSrt(const void* _mtx)
|
||||
@ -1026,8 +1026,8 @@ bool isNearZero(const Vec3& _v)
|
||||
|
||||
struct Line
|
||||
{
|
||||
Vec3 pos;
|
||||
Vec3 dir;
|
||||
Vec3 pos = init::None;
|
||||
Vec3 dir = init::None;
|
||||
};
|
||||
|
||||
inline Vec3 getPointAt(const Line& _line, float _t)
|
||||
@ -1222,7 +1222,7 @@ Vec3 closestPoint(const Obb& _obb, const Vec3& _point)
|
||||
|
||||
Vec3 closestPoint(const Triangle& _triangle, const Vec3& _point)
|
||||
{
|
||||
Plane plane;
|
||||
Plane plane(init::None);
|
||||
calcPlane(plane, _triangle);
|
||||
|
||||
const Vec3 pos = closestPoint(plane, _point);
|
||||
@ -1284,7 +1284,7 @@ bool overlap(const Aabb& _aabb, const Triangle& _triangle)
|
||||
return false;
|
||||
}
|
||||
|
||||
Plane plane;
|
||||
Plane plane(init::None);
|
||||
calcPlane(plane, _triangle);
|
||||
|
||||
if (!overlap(_aabb, plane) )
|
||||
@ -1343,7 +1343,7 @@ bool overlap(const Aabb& _aabb, const Disk& _disk)
|
||||
return false;
|
||||
}
|
||||
|
||||
Plane plane;
|
||||
Plane plane(init::None);
|
||||
calcPlane(plane, _disk.normal, _disk.center);
|
||||
|
||||
return overlap(_aabb, plane);
|
||||
@ -1500,7 +1500,7 @@ bool overlap(const Cylinder& _cylinder, const Obb& _obb)
|
||||
|
||||
bool overlap(const Disk& _disk, const Vec3& _pos)
|
||||
{
|
||||
Plane plane;
|
||||
Plane plane(init::None);
|
||||
calcPlane(plane, _disk.normal, _disk.center);
|
||||
|
||||
if (!isNearZero(distance(plane, _pos) ) )
|
||||
@ -1513,7 +1513,7 @@ bool overlap(const Disk& _disk, const Vec3& _pos)
|
||||
|
||||
bool overlap(const Disk& _disk, const Plane& _plane)
|
||||
{
|
||||
Plane plane;
|
||||
Plane plane(init::None);
|
||||
calcPlane(plane, _disk.normal, _disk.center);
|
||||
|
||||
if (!overlap(plane, _plane) )
|
||||
@ -1531,7 +1531,7 @@ bool overlap(const Disk& _disk, const Capsule& _capsule)
|
||||
return false;
|
||||
}
|
||||
|
||||
Plane plane;
|
||||
Plane plane(init::None);
|
||||
calcPlane(plane, _disk.normal, _disk.center);
|
||||
|
||||
return overlap(_capsule, plane);
|
||||
@ -1539,10 +1539,10 @@ bool overlap(const Disk& _disk, const Capsule& _capsule)
|
||||
|
||||
bool overlap(const Disk& _diskA, const Disk& _diskB)
|
||||
{
|
||||
Plane planeA;
|
||||
Plane planeA(init::None);
|
||||
calcPlane(planeA, _diskA.normal, _diskA.center);
|
||||
|
||||
Plane planeB;
|
||||
Plane planeB(init::None);
|
||||
calcPlane(planeB, _diskB);
|
||||
|
||||
Line line;
|
||||
@ -1571,7 +1571,7 @@ bool overlap(const Disk& _disk, const Obb& _obb)
|
||||
return false;
|
||||
}
|
||||
|
||||
Plane plane;
|
||||
Plane plane(init::None);
|
||||
calcPlane(plane, _disk.normal, _disk.center);
|
||||
|
||||
return overlap(_obb, plane);
|
||||
@ -1699,7 +1699,7 @@ bool overlap(const Sphere& _sphere, const Plane& _plane)
|
||||
|
||||
bool overlap(const Sphere& _sphere, const Triangle& _triangle)
|
||||
{
|
||||
Plane plane;
|
||||
Plane plane(init::None);
|
||||
calcPlane(plane, _triangle);
|
||||
|
||||
if (!overlap(_sphere, plane) )
|
||||
@ -1737,7 +1737,7 @@ bool overlap(const Sphere& _sphere, const Disk& _disk)
|
||||
return false;
|
||||
}
|
||||
|
||||
Plane plane;
|
||||
Plane plane(init::None);
|
||||
calcPlane(plane, _disk.normal, _disk.center);
|
||||
|
||||
return overlap(_sphere, plane);
|
||||
@ -1807,7 +1807,7 @@ bool overlap(const Triangle& _triangleA, const Triangle& _triangleB)
|
||||
template<typename Ty>
|
||||
bool overlap(const Triangle& _triangle, const Ty& _ty)
|
||||
{
|
||||
Plane plane;
|
||||
Plane plane(init::None);
|
||||
calcPlane(plane, _triangle);
|
||||
|
||||
plane.normal = neg(plane.normal);
|
||||
@ -1966,7 +1966,7 @@ bool overlap(const Triangle& _triangle, const Disk& _disk)
|
||||
return false;
|
||||
}
|
||||
|
||||
Plane plane;
|
||||
Plane plane(init::None);
|
||||
calcPlane(plane, _disk.normal, _disk.center);
|
||||
|
||||
return overlap(_triangle, plane);
|
||||
|
@ -11,39 +11,39 @@
|
||||
///
|
||||
struct Aabb
|
||||
{
|
||||
bx::Vec3 min;
|
||||
bx::Vec3 max;
|
||||
bx::Vec3 min = bx::init::None;
|
||||
bx::Vec3 max = bx::init::None;
|
||||
};
|
||||
|
||||
///
|
||||
struct Capsule
|
||||
{
|
||||
bx::Vec3 pos;
|
||||
bx::Vec3 end;
|
||||
bx::Vec3 pos = bx::init::None;
|
||||
bx::Vec3 end = bx::init::None;
|
||||
float radius;
|
||||
};
|
||||
|
||||
///
|
||||
struct Cone
|
||||
{
|
||||
bx::Vec3 pos;
|
||||
bx::Vec3 end;
|
||||
bx::Vec3 pos = bx::init::None;
|
||||
bx::Vec3 end = bx::init::None;
|
||||
float radius;
|
||||
};
|
||||
|
||||
///
|
||||
struct Cylinder
|
||||
{
|
||||
bx::Vec3 pos;
|
||||
bx::Vec3 end;
|
||||
bx::Vec3 pos = bx::init::None;
|
||||
bx::Vec3 end = bx::init::None;
|
||||
float radius;
|
||||
};
|
||||
|
||||
///
|
||||
struct Disk
|
||||
{
|
||||
bx::Vec3 center;
|
||||
bx::Vec3 normal;
|
||||
bx::Vec3 center = bx::init::None;
|
||||
bx::Vec3 normal = bx::init::None;
|
||||
float radius;
|
||||
};
|
||||
|
||||
@ -56,30 +56,30 @@ struct Obb
|
||||
///
|
||||
struct Sphere
|
||||
{
|
||||
bx::Vec3 center;
|
||||
bx::Vec3 center = bx::init::None;
|
||||
float radius;
|
||||
};
|
||||
|
||||
///
|
||||
struct Triangle
|
||||
{
|
||||
bx::Vec3 v0;
|
||||
bx::Vec3 v1;
|
||||
bx::Vec3 v2;
|
||||
bx::Vec3 v0 = bx::init::None;
|
||||
bx::Vec3 v1 = bx::init::None;
|
||||
bx::Vec3 v2 = bx::init::None;
|
||||
};
|
||||
|
||||
///
|
||||
struct Ray
|
||||
{
|
||||
bx::Vec3 pos;
|
||||
bx::Vec3 dir;
|
||||
bx::Vec3 pos = bx::init::None;
|
||||
bx::Vec3 dir = bx::init::None;
|
||||
};
|
||||
|
||||
///
|
||||
struct Hit
|
||||
{
|
||||
bx::Vec3 pos;
|
||||
bx::Plane plane;
|
||||
bx::Vec3 pos = bx::init::None;
|
||||
bx::Plane plane = bx::init::None;
|
||||
};
|
||||
|
||||
///
|
||||
|
@ -264,9 +264,9 @@ struct Camera
|
||||
MouseCoords m_mouseNow;
|
||||
MouseCoords m_mouseLast;
|
||||
|
||||
bx::Vec3 m_eye;
|
||||
bx::Vec3 m_at;
|
||||
bx::Vec3 m_up;
|
||||
bx::Vec3 m_eye = bx::init::Zero;
|
||||
bx::Vec3 m_at = bx::init::Zero;
|
||||
bx::Vec3 m_up = bx::init::Zero;
|
||||
float m_horizontalAngle;
|
||||
float m_verticalAngle;
|
||||
|
||||
|
@ -295,30 +295,14 @@ uint32_t genSphere(uint8_t _subdiv0, void* _pos0 = NULL, uint16_t _posStride0 =
|
||||
|
||||
bx::Vec3 getPoint(Axis::Enum _axis, float _x, float _y)
|
||||
{
|
||||
bx::Vec3 result;
|
||||
|
||||
switch (_axis)
|
||||
{
|
||||
case Axis::X:
|
||||
result.x = 0.0f;
|
||||
result.y = _x;
|
||||
result.z = _y;
|
||||
break;
|
||||
|
||||
case Axis::Y:
|
||||
result.x = _y;
|
||||
result.y = 0.0f;
|
||||
result.z = _x;
|
||||
break;
|
||||
|
||||
default:
|
||||
result.x = _x;
|
||||
result.y = _y;
|
||||
result.z = 0.0f;
|
||||
break;
|
||||
case Axis::X: return { 0.0f, _x, _y };
|
||||
case Axis::Y: return { _y, 0.0f, _x };
|
||||
default: break;
|
||||
}
|
||||
|
||||
return result;
|
||||
return { _x, _y, 0.0f };
|
||||
}
|
||||
|
||||
#include "vs_debugdraw_lines.bin.h"
|
||||
@ -1664,7 +1648,7 @@ struct DebugDrawEncoderImpl
|
||||
|
||||
void drawFrustum(const float* _viewProj)
|
||||
{
|
||||
bx::Plane planes[6];
|
||||
bx::Plane planes[6] = { bx::init::None, bx::init::None, bx::init::None, bx::init::None, bx::init::None, bx::init::None };
|
||||
buildFrustumPlanes(planes, _viewProj);
|
||||
|
||||
const bx::Vec3 points[8] =
|
||||
@ -1761,8 +1745,8 @@ struct DebugDrawEncoderImpl
|
||||
const float step = bx::kPi * 2.0f / num;
|
||||
_weight = bx::clamp(_weight, 0.0f, 2.0f);
|
||||
|
||||
bx::Vec3 udir;
|
||||
bx::Vec3 vdir;
|
||||
bx::Vec3 udir(bx::init::None);
|
||||
bx::Vec3 vdir(bx::init::None);
|
||||
bx::calcTangentFrame(udir, vdir, _normal, attrib.m_spin);
|
||||
|
||||
float xy0[2];
|
||||
@ -1833,7 +1817,8 @@ struct DebugDrawEncoderImpl
|
||||
const Attrib& attrib = m_attrib[m_stack];
|
||||
if (attrib.m_wireframe)
|
||||
{
|
||||
bx::Vec3 udir, vdir;
|
||||
bx::Vec3 udir(bx::init::None);
|
||||
bx::Vec3 vdir(bx::init::None);
|
||||
bx::calcTangentFrame(udir, vdir, _normal, attrib.m_spin);
|
||||
|
||||
const float halfExtent = _size*0.5f;
|
||||
@ -1874,7 +1859,8 @@ struct DebugDrawEncoderImpl
|
||||
|
||||
const Attrib& attrib = m_attrib[m_stack];
|
||||
|
||||
bx::Vec3 udir, vdir;
|
||||
bx::Vec3 udir(bx::init::None);
|
||||
bx::Vec3 vdir(bx::init::None);
|
||||
bx::calcTangentFrame(udir, vdir, _normal, attrib.m_spin);
|
||||
|
||||
const Pack2D& pack = s_dds.m_sprite.get(_handle);
|
||||
@ -1994,8 +1980,8 @@ struct DebugDrawEncoderImpl
|
||||
if (_thickness > 0.0f)
|
||||
{
|
||||
const bx::Vec3 from = { _x, _y, _z };
|
||||
bx::Vec3 mid;
|
||||
bx::Vec3 to;
|
||||
bx::Vec3 mid(bx::init::None);
|
||||
bx::Vec3 to(bx::init::None);
|
||||
|
||||
setColor(Axis::X == _highlight ? 0xff00ffff : 0xff0000ff);
|
||||
mid = { _x + _len - _thickness, _y, _z };
|
||||
@ -2037,8 +2023,8 @@ struct DebugDrawEncoderImpl
|
||||
{
|
||||
const Attrib& attrib = m_attrib[m_stack];
|
||||
|
||||
bx::Vec3 udir;
|
||||
bx::Vec3 vdir;
|
||||
bx::Vec3 udir(bx::init::None);
|
||||
bx::Vec3 vdir(bx::init::None);
|
||||
bx::calcTangentFrame(udir, vdir, _normal, attrib.m_spin);
|
||||
|
||||
udir = bx::mul(udir, _step);
|
||||
|
@ -248,7 +248,7 @@ namespace ps
|
||||
Particle& particle = m_particles[m_num];
|
||||
m_num++;
|
||||
|
||||
bx::Vec3 pos;
|
||||
bx::Vec3 pos(bx::init::None);
|
||||
switch (m_shape)
|
||||
{
|
||||
default:
|
||||
@ -281,7 +281,7 @@ namespace ps
|
||||
break;
|
||||
}
|
||||
|
||||
bx::Vec3 dir;
|
||||
bx::Vec3 dir(bx::init::None);
|
||||
switch (m_direction)
|
||||
{
|
||||
default:
|
||||
|
@ -589,7 +589,7 @@ void parseObj(char* _data, uint32_t _size, Mesh* _mesh, bool _hasBc)
|
||||
|
||||
if (0 == bx::strCmp(argv[0], "vn") )
|
||||
{
|
||||
bx::Vec3 normal;
|
||||
bx::Vec3 normal(bx::init::None);
|
||||
bx::fromString(&normal.x, argv[1]);
|
||||
bx::fromString(&normal.y, argv[2]);
|
||||
bx::fromString(&normal.z, argv[3]);
|
||||
@ -607,7 +607,7 @@ void parseObj(char* _data, uint32_t _size, Mesh* _mesh, bool _hasBc)
|
||||
}
|
||||
else if (0 == bx::strCmp(argv[0], "vt") )
|
||||
{
|
||||
bx::Vec3 texcoord;
|
||||
bx::Vec3 texcoord(bx::init::None);
|
||||
texcoord.y = 0.0f;
|
||||
texcoord.z = 0.0f;
|
||||
|
||||
@ -645,15 +645,10 @@ void parseObj(char* _data, uint32_t _size, Mesh* _mesh, bool _hasBc)
|
||||
pw = 1.0f;
|
||||
}
|
||||
|
||||
float invW = 1.0f/pw;
|
||||
px *= invW;
|
||||
py *= invW;
|
||||
pz *= invW;
|
||||
bx::Vec3 pos(px, py, pz);
|
||||
|
||||
bx::Vec3 pos;
|
||||
pos.x = px;
|
||||
pos.y = py;
|
||||
pos.z = pz;
|
||||
const float invW = bx::rcp(pw);
|
||||
pos = bx::mul(pos, invW);
|
||||
|
||||
_mesh->m_positions.push_back(pos);
|
||||
}
|
||||
@ -753,8 +748,9 @@ void processGltfNode(cgltf_node* _node, Mesh* _mesh, Group* _group, bool _hasBc)
|
||||
{
|
||||
_mesh->m_positions.reserve(_mesh->m_positions.size() + accessorCount);
|
||||
|
||||
bx::Vec3 pos;
|
||||
for (cgltf_size v=0;v<accessorCount;++v)
|
||||
bx::Vec3 pos(bx::init::None);
|
||||
|
||||
for (cgltf_size v = 0; v < accessorCount; ++v)
|
||||
{
|
||||
gltfReadFloat(accessorData, numComponents, v, &pos.x, 3);
|
||||
pos = mul(pos, nodeToWorld);
|
||||
@ -766,8 +762,9 @@ void processGltfNode(cgltf_node* _node, Mesh* _mesh, Group* _group, bool _hasBc)
|
||||
_mesh->m_normals.reserve(_mesh->m_normals.size() + accessorCount);
|
||||
|
||||
hasNormal = true;
|
||||
bx::Vec3 normal;
|
||||
for (cgltf_size v=0;v<accessorCount;++v)
|
||||
bx::Vec3 normal(bx::init::None);
|
||||
|
||||
for (cgltf_size v = 0; v < accessorCount; ++v)
|
||||
{
|
||||
gltfReadFloat(accessorData, numComponents, v, &normal.x, 3);
|
||||
normal = mul(normal, nodeToWorldNormal);
|
||||
@ -779,8 +776,9 @@ void processGltfNode(cgltf_node* _node, Mesh* _mesh, Group* _group, bool _hasBc)
|
||||
_mesh->m_texcoords.reserve(_mesh->m_texcoords.size() + accessorCount);
|
||||
|
||||
hasTexcoord = true;
|
||||
bx::Vec3 texcoord;
|
||||
for (cgltf_size v=0;v<accessorCount;++v)
|
||||
bx::Vec3 texcoord(bx::init::None);
|
||||
|
||||
for (cgltf_size v = 0; v < accessorCount; ++v)
|
||||
{
|
||||
gltfReadFloat(accessorData, numComponents, v, &texcoord.x, 3);
|
||||
_mesh->m_texcoords.push_back(texcoord);
|
||||
|
@ -169,7 +169,7 @@ struct Camera
|
||||
{
|
||||
Camera()
|
||||
{
|
||||
init(bx::Vec3(0.0f,0.0f,0.0f), 2.0f, 0.01f, 100.0f);
|
||||
init(bx::init::Zero, 2.0f, 0.01f, 100.0f);
|
||||
}
|
||||
|
||||
void init(const bx::Vec3& _center, float _distance, float _near, float _far)
|
||||
@ -265,8 +265,8 @@ struct Camera
|
||||
|
||||
struct Interp3f
|
||||
{
|
||||
bx::Vec3 curr;
|
||||
bx::Vec3 dest;
|
||||
bx::Vec3 curr = bx::init::None;
|
||||
bx::Vec3 dest = bx::init::None;
|
||||
};
|
||||
|
||||
Interp3f m_target;
|
||||
|
Loading…
Reference in New Issue
Block a user