Skip to content

Commit 3cf2b43

Browse files
committed
do not scale matrices down to 0 (thx v2v3v4)
1 parent 5376368 commit 3cf2b43

File tree

4 files changed

+6
-4
lines changed

4 files changed

+6
-4
lines changed

src/Layers/xrRender/FTreeVisual.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ struct FTreeVisual_setup
8585
Fvector4 wave;
8686
Fvector4 wind;
8787

88-
FTreeVisual_setup(): dwFrame(0), scale(0) {}
88+
FTreeVisual_setup(): dwFrame(0), scale(M_MIN_SCALE) {}
8989

9090
void calculate()
9191
{

src/Layers/xrRender/SkeletonCustom.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -497,7 +497,7 @@ void CKinematics::LL_SetBoneVisible(u16 bone_id, BOOL val, BOOL bRecursive)
497497
visimask.set(mask, val);
498498
if (!visimask.is(mask))
499499
{
500-
bone_instances[bone_id].mTransform.scale(0.f, 0.f, 0.f);
500+
bone_instances[bone_id].mTransform.scale(M_MIN_SCALE, M_MIN_SCALE, M_MIN_SCALE);
501501
if (LL_GetData(bone_id).GetParentID() < LL_BoneCount() && LL_GetData(bone_id).GetParentID() != BI_NONE)
502502
bone_instances[bone_id].mTransform.c = LL_GetBoneInstance(LL_GetData(bone_id).GetParentID()).mTransform.c;
503503
}
@@ -530,7 +530,7 @@ void CKinematics::LL_SetBonesVisible(u64 mask)
530530
{
531531
Fmatrix& A = bone_instances[b].mTransform;
532532
Fmatrix& B = bone_instances[b].mRenderTransform;
533-
A.scale(0.f, 0.f, 0.f);
533+
A.scale(M_MIN_SCALE, M_MIN_SCALE, M_MIN_SCALE);
534534
B.mul_43(A, (*bones)[b]->m2b_transform);
535535
}
536536
}

src/xrCore/_matrix.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -539,4 +539,6 @@ bool _valid(const _matrix<T>& m)
539539
extern XRCORE_API Fmatrix Fidentity;
540540
extern XRCORE_API Dmatrix Didentity;
541541

542+
constexpr float M_MIN_SCALE = 0.01f;
543+
542544
#endif

src/xrGame/ai_obstacle.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ void ai_obstacle::compute_matrix(Fmatrix& result, const Fvector& additional)
9898
u16 visible_bone_count = kinematics->LL_VisibleBoneCount();
9999
if (!visible_bone_count)
100100
{
101-
result.scale(0.f, 0.f, 0.f);
101+
result.scale(M_MIN_SCALE, M_MIN_SCALE, M_MIN_SCALE);
102102
return;
103103
}
104104

0 commit comments

Comments
 (0)