object-camera 99%

This commit is contained in:
LagoLunatic
2024-09-11 14:57:27 -04:00
parent 580a5eefe5
commit 9d2ea6dd39
8 changed files with 165 additions and 64 deletions
+1 -1
View File
@@ -4,7 +4,7 @@
#include "JSystem/JStage/JSGObject.h"
namespace JStage {
struct TECameraProjection {};
enum TECameraProjection {};
struct TECameraView {};
@@ -116,15 +116,24 @@ public:
return transformedPosDir;
}
}
void transformOnGet_transform(const TTransform_position_direction& posDir, TTransform_position_direction* transformedPosDir) const {
transformOnGet_transformTranslation(posDir.mPosition, &transformedPosDir->mPosition);
transformOnGet_transformDirection(posDir.mDirection, &transformedPosDir->mDirection);
void transformOnGet_transform(const TTransform_position& rSrc, TTransform_position* pDst) const {
transformOnGet_transformTranslation(rSrc.mPosition, &pDst->mPosition);
}
void transformOnGet_transformTranslation(const Vec& pos, Vec* transformedPos) const {
MTXMultVec(transformOnGet_getMatrix(), &pos, transformedPos);
void transformOnSet_transform(const TTransform_position& rSrc, TTransform_position* pDst) const {
transformOnSet_transformTranslation(rSrc.mPosition, &pDst->mPosition);
}
void transformOnGet_transformDirection(const Vec& dir, Vec* transformedDir) const {
MTXMultVecSR(transformOnGet_getMatrix(), &dir, transformedDir);
void transformOnGet_transform(const TTransform_position_direction& rSrc, TTransform_position_direction* pDst) const {
transformOnGet_transformTranslation(rSrc.mPosition, &pDst->mPosition);
transformOnGet_transformDirection(rSrc.mDirection, &pDst->mDirection);
}
void transformOnGet_transformTranslation(const Vec& rSrc, Vec* pDst) const {
MTXMultVec(transformOnGet_getMatrix(), &rSrc, pDst);
}
void transformOnSet_transformTranslation(const Vec& rSrc, Vec* pDst) const {
MTXMultVec(transformOnSet_getMatrix(), &rSrc, pDst);
}
void transformOnGet_transformDirection(const Vec& rSrc, Vec* pDst) const {
MTXMultVecSR(transformOnGet_getMatrix(), &rSrc, pDst);
}
// TODO
@@ -134,22 +143,19 @@ public:
void stb_getObjectContainer() const {}
void stb_referObjectContainer() {}
void stb_removeObject(TObject*) {}
void transformOnGet_transform(const TTransform_position&, TTransform_position*) const {}
void transformOnGet_transform(const TTransform_translation_rotation&, TTransform_translation_rotation*) const {}
void transformOnGet_transformRotation(const Vec&, Vec*) const {}
void transformOnGet_transform_ifEnabled(const TTransform_translation_rotation&, TTransform_translation_rotation*) const {}
void transformOnSet_transform(const TTransform_position&, TTransform_position*) const {}
void transformOnSet_transform(const TTransform_position_direction&, TTransform_position_direction*) const {}
void transformOnSet_transform(const TTransform_translation_rotation&, TTransform_translation_rotation*) const {}
void transformOnSet_transform(CMtxP, MtxP) const {}
void transformOnSet_transformDirection(const Vec&, Vec*) const {}
void transformOnSet_transformDirection_ifEnabled(const Vec&, Vec*) const {}
void transformOnSet_transformRotation(const Vec&, Vec*) const {}
void transformOnSet_transformTranslation(const Vec&, Vec*) const {}
void transformOnSet_transformTranslation_ifEnabled(const Vec&, Vec*) const {}
void transformOnSet_transform_ifEnabled(const TTransform_position_direction&, TTransform_position_direction*) const {}
void transformOnSet_transform_ifEnabled(const TTransform_translation_rotation&, TTransform_translation_rotation*) const {}
void transformOnSet_transform_ifEnabled(CMtxP, MtxP) const {}
void transformOnGet_transform(const TTransform_translation_rotation& rSrc, TTransform_translation_rotation* pDst) const {}
void transformOnGet_transformRotation(const Vec& rSrc, Vec* pDst) const {}
void transformOnGet_transform_ifEnabled(const TTransform_translation_rotation& rSrc, TTransform_translation_rotation* pDst) const {}
void transformOnSet_transform(const TTransform_position_direction& rSrc, TTransform_position_direction* pDst) const {}
void transformOnSet_transform(const TTransform_translation_rotation& rSrc, TTransform_translation_rotation* pDst) const {}
void transformOnSet_transform(CMtxP pSrc, MtxP pDst) const {}
void transformOnSet_transformDirection(const Vec& rSrc, Vec* pDst) const {}
void transformOnSet_transformDirection_ifEnabled(const Vec& rSrc, Vec* pDst) const {}
void transformOnSet_transformRotation(const Vec& rSrc, Vec* pDst) const {}
void transformOnSet_transformTranslation_ifEnabled(const Vec& rSrc, Vec* pDst) const {}
void transformOnSet_transform_ifEnabled(const TTransform_position_direction& rSrc, TTransform_position_direction* pDst) const {}
void transformOnSet_transform_ifEnabled(const TTransform_translation_rotation& rSrc, TTransform_translation_rotation* pDst) const {}
void transformOnSet_transform_ifEnabled(CMtxP pSrc, MtxP pDst) const {}
/* 0x58 */ f64 mSecondPerFrame;
/* 0x60 */ fvb::TControl fvb_Control;
@@ -302,14 +302,13 @@ struct TAdaptor_camera : public TAdaptor {
/* 0x10 */ TVariableValue mValue[11];
static u8 const sauVariableValue_3_POSITION_XYZ[12];
static u8 const sauVariableValue_3_TARGET_POSITION_XYZ[12];
static u32 const sauVariableValue_3_POSITION_XYZ[3];
static u32 const sauVariableValue_3_TARGET_POSITION_XYZ[3];
static u8 sauVariableValue_2_DISTANCE_NEAR_FAR[8];
};
struct TObject_camera : public TObject {
TObject_camera(JStudio::stb::data::TParse_TBlock_object const&,
JStudio::TAdaptor_camera*);
TObject_camera(JStudio::stb::data::TParse_TBlock_object const&, JStudio::TAdaptor_camera*);
virtual ~TObject_camera();
virtual void do_paragraph(u32, void const*, u32);
@@ -136,6 +136,8 @@ struct TAdaptor_ambientLight : public JStudio::TAdaptor_ambientLight {
}; // Size: 0x64
struct TAdaptor_camera : public JStudio::TAdaptor_camera {
typedef TVariableValueOutput_object_<TAdaptor_camera, JStage::TCamera> TVVOutput;
TAdaptor_camera(JStage::TSystem const*, JStage::TCamera*);
virtual ~TAdaptor_camera();
virtual void adaptor_do_prepare(const JStudio::TObject*);
@@ -147,14 +149,12 @@ struct TAdaptor_camera : public JStudio::TAdaptor_camera {
virtual void adaptor_do_PARENT_NODE(JStudio::data::TEOperationData, void const*, u32);
virtual void adaptor_do_PARENT_ENABLE(JStudio::data::TEOperationData, void const*, u32);
void setJSG_position_(JStudio::TControl const*);
void getJSG_position_(JStudio::TControl const*);
void setJSG_targetPosition_(JStudio::TControl const*);
void getJSG_targetPosition_(JStudio::TControl const*);
static const TVVOutput saoVVOutput_[5];
static u8 saoVVOutput_[160 + 4 /* padding */];
/* 0xE8 */ u8 field_0xE8[0xF8 - 0xE8];
/* 0xE8 */ const JStage::TSystem* mSystem;
/* 0xEC */ JStage::TCamera* mObject;
/* 0xF0 */ JStage::TObject* mF0;
/* 0xF4 */ u32 mF4;
}; // Size: 0xF8
struct TAdaptor_fog : public JStudio::TAdaptor_fog {