* add getters for frame poses
* fix missing joint in GetJointPose
* clean up models_iqm.cpp
* clean up usage of I_GetTimeFrac, split out matrix calculation into its own function
* clean up SetModelBoneRotationInternal
* clean up a few float <-> double and unsigned <-> signed warnings
* fix more warnings
* further clean up warnings
* split mode ObjectToWorldMatrix stuff
* initial work on bone getters, matrix hell
(the matrix/vec3 multiplications are probably wrong af, just gotta add more stuff 'till i can test it)
* clean up matrix math
* GetBone/TransformByBone
* fix GetBoneFramePose
* fix ObjectToWorldMatrix
* fix missing array resize
* raw matrix getters (for use with gutamatics/etc)
* reverse matrix mult order
* replace GetBoneLength/GetBoneDir with GetBoneBaseTRS
* fix GetBonePosition, remove GetBoneWorldMatrix as it's useless
* GetBonePosition
* deduplicate code
* rename GetBonePosition to GetBoneBasePosition to avoid confusion
* GetBoneBaseRotation
* GetBonePosition helper function
* forgot include_offsets
* split frame info calculation from RenderFrameModels
* clean up fvec4 being used as quat in iqms
* initial work on bone setting
* implement bone setters
* clean up FindModelFrame
* refactor model overrides into its own function
* refactor frame rendering into RenderModelFrame
* split frame processing into ProcessModelFrame
* refactor BoneOverride in preparation for translation/scale overrides
* clean up macros
* SetBoneTranslation/SetBoneScaling
* GetBoneOffset
* fix compilation on linux/mac (fuck you MSVC)
* fix typo 😅
* make sure bone overrides are cleared on model switches, add ClearBoneOffsets to clear them manually
* bone info getters
* fix joint lengths, add joint dirs
* serialize bone overrides
* fix bone dir return type
* GetBoneIndex/GetBoneCount
* helper functions for working with non-quat angles
* add mode enum, add more helper functions
* fix up formatting
To activate, use `SetParticleType(int type)`. To deactivate, use `DisableParticle()`.
Types are:
- PT_DEFAULT (default value; uses `gl_particles_style`)
- PT_SQUARE
- PT_ROUND
- PT_SMOOTH
While in this mode:
- `Texture` & `Translation` are ignored
- `Scale.X` sets the size
- `SColor` sets the color
Misc changes:
- Removed warning on textureless destruction
- Exposed the rest of the ceiling member fields and getters.
- Added an IsCrusher() method.
- Added getOldDirection() getter.
- Fixed Door direction enum.
- Forgot to make Plat readonly on previous commit.
This reverts commit 5eb9a1095e.
Revert "upload bones 😅"
This reverts commit cc766311f7.
Revert "remove bone component cache to decrease memory consumption"
This reverts commit e2908ce0a3.
Fixed released lights not unlinking in rare cases. Fixed first Actor in cache being missed when destruction checking. Fixed results cache not being cleared on update.