mirror of
https://github.com/isledecomp/isle.git
synced 2025-10-23 00:14:22 +00:00
Matrix/vector refactor (#426)
This commit is contained in:

committed by
GitHub

parent
eac096036a
commit
d24f5db42f
@@ -9,12 +9,12 @@
|
||||
class HelicopterSubclass {
|
||||
public:
|
||||
inline HelicopterSubclass() : m_unk0x30(0) {}
|
||||
MxResult FUN_100040a0(Vector4Impl& p_v, float p_f);
|
||||
MxResult FUN_100040a0(Vector4& p_v, float p_f);
|
||||
|
||||
private:
|
||||
Vector4Data m_unk0x0; // 0x0
|
||||
Vector4Data m_unk0x18; // 0x18
|
||||
undefined4 m_unk0x30; // 0x30
|
||||
Mx4DPointFloat m_unk0x0; // 0x0
|
||||
Mx4DPointFloat m_unk0x18; // 0x18
|
||||
undefined4 m_unk0x30; // 0x30
|
||||
};
|
||||
|
||||
// VTABLE: LEGO1 0x100d40f8
|
||||
@@ -39,7 +39,7 @@ public:
|
||||
|
||||
virtual MxResult Create(MxDSObject& p_dsObject) override; // vtable+0x18
|
||||
void VTable0x70(float p_float) override; // vtable+0x70
|
||||
void VTable0x74(Matrix4Impl& p_transform) override; // vtable+0x74
|
||||
void VTable0x74(Matrix4& p_transform) override; // vtable+0x74
|
||||
virtual MxU32 VTable0xcc() override; // vtable+0xcc
|
||||
virtual MxU32 VTable0xd4(MxType17NotificationParam& p_param) override; // vtable+0xd4
|
||||
virtual MxU32 VTable0xd8(MxType18NotificationParam& p_param) override; // vtable+0xd8
|
||||
@@ -49,8 +49,8 @@ public:
|
||||
// Helicopter::`scalar deleting destructor'
|
||||
|
||||
protected:
|
||||
Matrix4Data m_unk0x160; // 0x160
|
||||
Matrix4Data m_unk0x1a8; // 0x1a8
|
||||
MxMatrix m_unk0x160; // 0x160
|
||||
MxMatrix m_unk0x1a8; // 0x1a8
|
||||
float m_unk0x1f0; // 0x1f0
|
||||
HelicopterSubclass m_unk0x1f4; // 0x1f4
|
||||
HelicopterState* m_state; // 0x228
|
||||
|
@@ -3,9 +3,9 @@
|
||||
|
||||
#include "legopointofviewcontroller.h"
|
||||
#include "mxcore.h"
|
||||
#include "mxgeometry/mxgeometry3d.h"
|
||||
#include "mxgeometry/mxmatrix.h"
|
||||
#include "mxpoint32.h"
|
||||
#include "realtime/matrix.h"
|
||||
#include "realtime/vector.h"
|
||||
|
||||
// VTABLE: LEGO1 0x100d57b0
|
||||
// SIZE 0xc8
|
||||
@@ -36,15 +36,15 @@ public:
|
||||
virtual void OnMouseMove(MxU8 p_modifier, MxPoint32 p_point); // vtable+0x40
|
||||
virtual MxResult Create(); // vtable+0x44
|
||||
|
||||
void SetWorldTransform(const Vector3Impl& p_at, const Vector3Impl& p_dir, const Vector3Impl& p_up);
|
||||
void FUN_100123e0(Matrix4Data& p_transform, MxU32);
|
||||
Vector3Data& FUN_10012740();
|
||||
Vector3Data& FUN_100127f0();
|
||||
Vector3Data& FUN_100128a0();
|
||||
void SetWorldTransform(const Vector3& p_at, const Vector3& p_dir, const Vector3& p_up);
|
||||
void FUN_100123e0(MxMatrix& p_transform, MxU32);
|
||||
Mx3DPointFloat GetWorldUp();
|
||||
Mx3DPointFloat GetWorldLocation();
|
||||
Mx3DPointFloat GetWorldDirection();
|
||||
|
||||
private:
|
||||
Matrix4Data m_matrix1; // 0x38
|
||||
Matrix4Data m_matrix2; // 0x80
|
||||
MxMatrix m_matrix1; // 0x38
|
||||
MxMatrix m_matrix2; // 0x80
|
||||
};
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10011f50
|
||||
|
@@ -36,11 +36,8 @@ public:
|
||||
virtual void Destroy(MxBool p_fromDestructor); // vtable+0x1c
|
||||
virtual void ParseAction(char*); // vtable+0x20
|
||||
virtual void SetROI(LegoROI* p_roi, MxBool p_bool1, MxBool p_bool2); // vtable+0x24
|
||||
virtual void SetWorldTransform(
|
||||
const Vector3Impl& p_loc,
|
||||
const Vector3Impl& p_dir,
|
||||
const Vector3Impl& p_up
|
||||
); // vtable+0x28
|
||||
virtual void SetWorldTransform(const Vector3& p_loc, const Vector3& p_dir,
|
||||
const Vector3& p_up); // vtable+0x28
|
||||
virtual void ResetWorldTransform(MxBool p_inVehicle); // vtable+0x2c
|
||||
// FUNCTION: LEGO1 0x10001090
|
||||
virtual void SetWorldSpeed(MxFloat p_worldSpeed) { m_worldSpeed = p_worldSpeed; } // vtable+0x30
|
||||
@@ -53,7 +50,7 @@ public:
|
||||
virtual void VTable0x4c(); // vtable+0x4c
|
||||
|
||||
void FUN_10010c30();
|
||||
void SetLocation(Vector3Data& p_location, Vector3Data& p_direction, Vector3Data& p_up, MxBool);
|
||||
void SetLocation(Mx3DPointFloat& p_location, Mx3DPointFloat& p_direction, Mx3DPointFloat& p_up, MxBool);
|
||||
|
||||
protected:
|
||||
void Init();
|
||||
@@ -61,12 +58,12 @@ protected:
|
||||
|
||||
undefined m_unk0x10;
|
||||
undefined m_unk0x11;
|
||||
Vector3Data m_worldLocation; // 0x14
|
||||
Vector3Data m_worldDirection; // 0x28
|
||||
Vector3Data m_worldUp; // 0x3c
|
||||
MxFloat m_worldSpeed; // 0x50
|
||||
LegoROI* m_roi; // 0x54
|
||||
MxBool m_cameraFlag; // 0x58
|
||||
Mx3DPointFloat m_worldLocation; // 0x14
|
||||
Mx3DPointFloat m_worldDirection; // 0x28
|
||||
Mx3DPointFloat m_worldUp; // 0x3c
|
||||
MxFloat m_worldSpeed; // 0x50
|
||||
LegoROI* m_roi; // 0x54
|
||||
MxBool m_cameraFlag; // 0x58
|
||||
undefined m_unk0x59;
|
||||
// For tokens from the extra string that look like this:
|
||||
// "Action:openram;\lego\scripts\Race\CarRaceR;0"
|
||||
|
@@ -33,7 +33,7 @@ public:
|
||||
virtual void Init(); // vtable+0x68
|
||||
virtual undefined4 SetBackend(LegoEntity* p_unk0x4c); // vtable+0x6c
|
||||
|
||||
void SetBackendLocation(Vector3Data& p_location, Vector3Data& p_direction, Vector3Data& p_up);
|
||||
void SetBackendLocation(Mx3DPointFloat& p_location, Mx3DPointFloat& p_direction, Mx3DPointFloat& p_up);
|
||||
|
||||
private:
|
||||
void Destroy(MxBool p_fromDestructor);
|
||||
|
@@ -25,10 +25,10 @@ public:
|
||||
return !strcmp(p_name, LegoPathActor::ClassName()) || LegoActor::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual void VTable0x68(); // vtable+0x68
|
||||
virtual void VTable0x6c(); // vtable+0x6c
|
||||
virtual void VTable0x70(float p_float); // vtable+0x70
|
||||
virtual void VTable0x74(Matrix4Impl& p_transform); // vtable+0x74
|
||||
virtual void VTable0x68(); // vtable+0x68
|
||||
virtual void VTable0x6c(); // vtable+0x6c
|
||||
virtual void VTable0x70(float p_float); // vtable+0x70
|
||||
virtual void VTable0x74(Matrix4& p_transform); // vtable+0x74
|
||||
// FUNCTION: LEGO1 0x10002d20
|
||||
virtual void VTable0x78(MxU8 p_unk0xea) { m_unk0xea = p_unk0xea; } // vtable+0x78
|
||||
// FUNCTION: LEGO1 0x10002d30
|
||||
|
@@ -49,8 +49,8 @@ public:
|
||||
MxResult SetAsCurrentWorld(MxDSObject& p_dsObject);
|
||||
void EndAction(MxCore* p_object);
|
||||
void FUN_1001fc80(IslePathActor* p_actor);
|
||||
MxBool FUN_100727e0(MxU32, Vector3Data& p_loc, Vector3Data& p_dir, Vector3Data& p_up);
|
||||
MxBool FUN_10072980(MxU32, Vector3Data& p_loc, Vector3Data& p_dir, Vector3Data& p_up);
|
||||
MxBool FUN_100727e0(MxU32, Mx3DPointFloat& p_loc, Mx3DPointFloat& p_dir, Mx3DPointFloat& p_up);
|
||||
MxBool FUN_10072980(MxU32, Mx3DPointFloat& p_loc, Mx3DPointFloat& p_dir, Mx3DPointFloat& p_up);
|
||||
void FUN_10073400();
|
||||
void FUN_10073430();
|
||||
MxS32 GetCurrPathInfo(LegoPathBoundary** p_path, MxS32& p_value);
|
||||
|
@@ -181,15 +181,15 @@ MxU32 Helicopter::VTable0xd4(MxType17NotificationParam& p_param)
|
||||
if (*g_act3Script != script)
|
||||
break;
|
||||
if (m_world && m_world->GetCamera()) {
|
||||
Vector3Data loc, dir, lookat;
|
||||
loc.CopyFrom(m_world->GetCamera()->FUN_100127f0());
|
||||
dir.CopyFrom(m_world->GetCamera()->FUN_100128a0());
|
||||
Mx3DPointFloat loc, dir, lookat;
|
||||
loc.CopyFrom(m_world->GetCamera()->GetWorldLocation());
|
||||
dir.CopyFrom(m_world->GetCamera()->GetWorldDirection());
|
||||
lookat = dir;
|
||||
float scale = 3;
|
||||
lookat.Mul(scale);
|
||||
lookat.Add(&loc);
|
||||
Vector3Data v68, v7c, v90(0, 1, 0), va4;
|
||||
v68.CopyFrom(m_world->GetCamera()->FUN_10012740());
|
||||
Mx3DPointFloat v68, v7c, v90(0, 1, 0), va4;
|
||||
v68.CopyFrom(m_world->GetCamera()->GetWorldUp());
|
||||
va4.EqualsCross(v68, dir);
|
||||
v7c.EqualsCross(va4, v90);
|
||||
if (ret)
|
||||
@@ -219,6 +219,8 @@ MxU32 Helicopter::VTable0xd4(MxType17NotificationParam& p_param)
|
||||
// FUNCTION: LEGO1 0x10003c20
|
||||
MxU32 Helicopter::VTable0xd8(MxType18NotificationParam& p_param)
|
||||
{
|
||||
MxU32 ret = 0;
|
||||
|
||||
switch (m_state->GetUnkown8()) {
|
||||
case 1: {
|
||||
if (GameState()->GetUnknown10() == 0) {
|
||||
@@ -227,44 +229,54 @@ MxU32 Helicopter::VTable0xd8(MxType18NotificationParam& p_param)
|
||||
}
|
||||
else
|
||||
VTable0xe8(0x31, TRUE, 7);
|
||||
|
||||
m_state->SetUnknown8(2);
|
||||
Matrix4Data mat;
|
||||
mat.SetIdentity();
|
||||
Matrix4 mat2 = mat.GetMatrix();
|
||||
|
||||
MxMatrix matrix;
|
||||
matrix.SetIdentity();
|
||||
|
||||
float s = sin(0.5235987901687622); // PI / 6, 30 deg
|
||||
float c = cos(0.5235987901687622); // PI / 6, 30 deg
|
||||
|
||||
float matrixCopy[4][4];
|
||||
memcpy(matrixCopy, matrix.GetData(), sizeof(matrixCopy));
|
||||
for (MxS32 i = 0; i < 4; i++) {
|
||||
mat.GetMatrix()[i][1] = mat2[i][1] * c - mat2[i][2] * s;
|
||||
mat.GetMatrix()[i][2] = mat2[i][2] * c + mat2[i][1] * s;
|
||||
matrix.GetData()[i][1] = matrixCopy[i][1] * c - matrixCopy[i][2] * s;
|
||||
matrix.GetData()[i][2] = matrixCopy[i][2] * c + matrixCopy[i][1] * s;
|
||||
}
|
||||
Vector3Impl at(mat.GetMatrix()[3]), dir(mat.GetMatrix()[2]), up(mat.GetMatrix()[1]);
|
||||
|
||||
Vector3 at(matrix[3]), dir(matrix[2]), up(matrix[1]);
|
||||
m_world->GetCamera()->SetWorldTransform(at, dir, up);
|
||||
FUN_10010c30();
|
||||
ret = 1;
|
||||
break;
|
||||
}
|
||||
case 3: {
|
||||
Matrix4Data mat;
|
||||
mat.SetIdentity();
|
||||
Vector3Impl at(mat.GetMatrix()[3]), dir(mat.GetMatrix()[2]), up(mat.GetMatrix()[1]);
|
||||
MxMatrix matrix;
|
||||
matrix.SetIdentity();
|
||||
|
||||
Vector3 at(matrix[3]), dir(matrix[2]), up(matrix[1]);
|
||||
at[1] = 1.25;
|
||||
m_world->GetCamera()->SetWorldTransform(at, dir, up);
|
||||
|
||||
if (GameState()->GetUnknown10() == 0) {
|
||||
((Act1State*) GameState()->GetState("Act1State"))->SetUnknown18(0);
|
||||
VTable0xe8(0x29, TRUE, 7);
|
||||
}
|
||||
else
|
||||
VTable0xe8(0x30, TRUE, 7);
|
||||
|
||||
m_state->SetUnknown8(0);
|
||||
ret = 1;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
return 1;
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10003e90
|
||||
void Helicopter::VTable0x74(Matrix4Impl& p_transform)
|
||||
void Helicopter::VTable0x74(Matrix4& p_transform)
|
||||
{
|
||||
if (m_unk0xea != 0) {
|
||||
m_roi->FUN_100a46b0(p_transform);
|
||||
@@ -295,13 +307,13 @@ void Helicopter::VTable0x70(float p_float)
|
||||
f2 = 0;
|
||||
if (1.0f < f2)
|
||||
f2 = 1.0f;
|
||||
Vector3Impl v(m_unk0x160.GetMatrix()[3]);
|
||||
Matrix4Data mat;
|
||||
Vector3Impl v2(m_unk0x1a8.GetMatrix()[3]);
|
||||
float* loc = m_unk0x1a8.GetMatrix()[3];
|
||||
Vector3 v(m_unk0x160[3]);
|
||||
MxMatrix mat;
|
||||
Vector3 v2(m_unk0x1a8[3]);
|
||||
float* loc = m_unk0x1a8[3];
|
||||
mat.SetIdentity();
|
||||
float fa[4];
|
||||
Vector4Impl v3(fa);
|
||||
Vector4 v3(fa);
|
||||
if (m_unk0x1f4.FUN_100040a0(v3, f2) == SUCCESS) {
|
||||
mat.FromQuaternion(v3);
|
||||
}
|
||||
@@ -322,18 +334,17 @@ void Helicopter::VTable0x70(float p_float)
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x100040a0
|
||||
MxResult HelicopterSubclass::FUN_100040a0(Vector4Impl& p_v, float p_f)
|
||||
MxResult HelicopterSubclass::FUN_100040a0(Vector4& p_v, float p_f)
|
||||
{
|
||||
MxU32 state = m_unk0x30;
|
||||
if (state == 1) {
|
||||
p_v.EqualsImpl(m_unk0x0.GetVector().elements);
|
||||
p_v.EqualsImpl(m_unk0x0.GetData());
|
||||
p_v[3] = acos(p_v[3]) * (1 - p_f) * 2.0;
|
||||
return p_v.NormalizeQuaternion();
|
||||
}
|
||||
else if (state == 2) {
|
||||
p_v.EqualsImpl(m_unk0x18.GetVector().elements);
|
||||
p_v.EqualsImpl(m_unk0x18.GetData());
|
||||
p_v[3] = acos(p_v[3]) * p_f * 2.0;
|
||||
p_v.NormalizeQuaternion();
|
||||
return p_v.NormalizeQuaternion();
|
||||
}
|
||||
else if (state == 3) {
|
||||
|
@@ -10,7 +10,7 @@ DECOMP_SIZE_ASSERT(LegoCameraController, 0xc8);
|
||||
// FUNCTION: LEGO1 0x10011d50
|
||||
LegoCameraController::LegoCameraController()
|
||||
{
|
||||
SetWorldTransform(Vector3Data(0, 0, 0), Vector3Data(0, 0, 1), Vector3Data(0, 1, 0));
|
||||
SetWorldTransform(Mx3DPointFloat(0, 0, 0), Mx3DPointFloat(0, 0, 1), Mx3DPointFloat(0, 1, 0));
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10011f70
|
||||
@@ -71,37 +71,49 @@ void LegoCameraController::OnMouseMove(MxU8 p_modifier, MxPoint32 p_point)
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10012260
|
||||
void LegoCameraController::SetWorldTransform(const Vector3Impl& p_at, const Vector3Impl& p_dir, const Vector3Impl& p_up)
|
||||
void LegoCameraController::SetWorldTransform(const Vector3& p_at, const Vector3& p_dir, const Vector3& p_up)
|
||||
{
|
||||
CalcLocalTransform(p_at, p_dir, p_up, m_matrix1);
|
||||
m_matrix2 = m_matrix1;
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x100123e0
|
||||
void LegoCameraController::FUN_100123e0(Matrix4Data& p_transform, MxU32)
|
||||
void LegoCameraController::FUN_100123e0(MxMatrix& p_transform, MxU32)
|
||||
{
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x10012740
|
||||
Vector3Data& LegoCameraController::FUN_10012740()
|
||||
// FUNCTION: LEGO1 0x10012740
|
||||
Mx3DPointFloat LegoCameraController::GetWorldUp()
|
||||
{
|
||||
// Actually returns reference to a member
|
||||
static Vector3Data g_v;
|
||||
return g_v;
|
||||
if (m_lego3DView && m_lego3DView->GetPointOfView()) {
|
||||
Mx3DPointFloat vec;
|
||||
vec = m_lego3DView->GetPointOfView()->GetWorldUp();
|
||||
return Mx3DPointFloat(vec[0], vec[1], vec[2]);
|
||||
}
|
||||
else
|
||||
return Mx3DPointFloat(0, 0, 0);
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x100127f0
|
||||
Vector3Data& LegoCameraController::FUN_100127f0()
|
||||
// FUNCTION: LEGO1 0x100127f0
|
||||
Mx3DPointFloat LegoCameraController::GetWorldLocation()
|
||||
{
|
||||
// Actually returns reference to a member
|
||||
static Vector3Data g_v;
|
||||
return g_v;
|
||||
if (m_lego3DView && m_lego3DView->GetPointOfView()) {
|
||||
Mx3DPointFloat vec;
|
||||
vec = m_lego3DView->GetPointOfView()->GetWorldPosition();
|
||||
return Mx3DPointFloat(vec[0], vec[1] - m_entityOffsetUp, vec[2]);
|
||||
}
|
||||
else
|
||||
return Mx3DPointFloat(0, 0, 0);
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x100128a0
|
||||
Vector3Data& LegoCameraController::FUN_100128a0()
|
||||
// FUNCTION: LEGO1 0x100128a0
|
||||
Mx3DPointFloat LegoCameraController::GetWorldDirection()
|
||||
{
|
||||
// Actually returns reference to a member
|
||||
static Vector3Data g_v;
|
||||
return g_v;
|
||||
if (m_lego3DView && m_lego3DView->GetPointOfView()) {
|
||||
Mx3DPointFloat vec;
|
||||
vec = m_lego3DView->GetPointOfView()->GetWorldDirection();
|
||||
return Mx3DPointFloat(vec[0], vec[1], vec[2]);
|
||||
}
|
||||
else
|
||||
return Mx3DPointFloat(0, 0, 0);
|
||||
}
|
||||
|
@@ -36,7 +36,7 @@ void LegoEntity::ResetWorldTransform(MxBool p_inVehicle)
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x10010790
|
||||
void LegoEntity::SetWorldTransform(const Vector3Impl& p_loc, const Vector3Impl& p_dir, const Vector3Impl& p_up)
|
||||
void LegoEntity::SetWorldTransform(const Vector3& p_loc, const Vector3& p_dir, const Vector3& p_up)
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
@@ -77,7 +77,7 @@ void LegoEntity::SetROI(LegoROI* p_roi, MxBool p_bool1, MxBool p_bool2)
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x100109b0
|
||||
void LegoEntity::SetLocation(Vector3Data& p_location, Vector3Data& p_direction, Vector3Data& p_up, MxBool)
|
||||
void LegoEntity::SetLocation(Mx3DPointFloat& p_location, Mx3DPointFloat& p_direction, Mx3DPointFloat& p_up, MxBool)
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
@@ -82,7 +82,11 @@ void LegoEntityPresenter::RepeatingTickle()
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10053730
|
||||
void LegoEntityPresenter::SetBackendLocation(Vector3Data& p_location, Vector3Data& p_direction, Vector3Data& p_up)
|
||||
void LegoEntityPresenter::SetBackendLocation(
|
||||
Mx3DPointFloat& p_location,
|
||||
Mx3DPointFloat& p_direction,
|
||||
Mx3DPointFloat& p_up
|
||||
)
|
||||
{
|
||||
if (m_objectBackend) {
|
||||
m_objectBackend->SetLocation(p_location, p_direction, p_up, TRUE);
|
||||
|
@@ -39,7 +39,7 @@ void LegoPathActor::VTable0x8c()
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x1002e740
|
||||
void LegoPathActor::VTable0x74(Matrix4Impl& p_transform)
|
||||
void LegoPathActor::VTable0x74(Matrix4& p_transform)
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
@@ -131,13 +131,13 @@ void LegoWorld::VTable0x50()
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x100727e0
|
||||
MxBool LegoWorld::FUN_100727e0(MxU32, Vector3Data& p_loc, Vector3Data& p_dir, Vector3Data& p_up)
|
||||
MxBool LegoWorld::FUN_100727e0(MxU32, Mx3DPointFloat& p_loc, Mx3DPointFloat& p_dir, Mx3DPointFloat& p_up)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x10072980
|
||||
MxBool LegoWorld::FUN_10072980(MxU32, Vector3Data& p_loc, Vector3Data& p_dir, Vector3Data& p_up)
|
||||
MxBool LegoWorld::FUN_10072980(MxU32, Mx3DPointFloat& p_loc, Mx3DPointFloat& p_dir, Mx3DPointFloat& p_up)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
@@ -65,10 +65,10 @@ MxResult LegoVideoManager::Create(MxVideoParam& p_videoParam, MxU32 p_frequencyM
|
||||
MxResult result = FAILURE;
|
||||
|
||||
MxDeviceEnumerate100d9cc8 deviceEnumerate;
|
||||
Vector3Data posVec(0.0, 1.25, -50.0);
|
||||
Vector3Data dirVec(0.0, 0.0, 1.0);
|
||||
Vector3Data upVec(0.0, 1.0, 0.0);
|
||||
Matrix4Data outMatrix;
|
||||
Mx3DPointFloat posVec(0.0, 1.25, -50.0);
|
||||
Mx3DPointFloat dirVec(0.0, 0.0, 1.0);
|
||||
Mx3DPointFloat upVec(0.0, 1.0, 0.0);
|
||||
MxMatrix outMatrix;
|
||||
HWND hwnd = MxOmni::GetInstance()->GetWindowHandle();
|
||||
MxS32 bits = p_videoParam.Flags().Get16Bit() ? 16 : 8;
|
||||
MxS32 deviceNum = -1;
|
||||
|
Reference in New Issue
Block a user