Refactor: Use dedicated function for heightfield subdivisions
This commit is contained in:
@@ -107,6 +107,18 @@ function createRapierHeightfieldHeights(collider: {
|
|||||||
return heights;
|
return heights;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getRapierHeightfieldSubdivisions(collider: {
|
||||||
|
rows: number;
|
||||||
|
cols: number;
|
||||||
|
}): { rowSubdivisions: number; colSubdivisions: number } {
|
||||||
|
return {
|
||||||
|
// Rapier names these as row/column subdivisions, but in world space those
|
||||||
|
// map to Z rows and X columns respectively.
|
||||||
|
rowSubdivisions: collider.cols - 1,
|
||||||
|
colSubdivisions: collider.rows - 1
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
function createFixedBodyForModelCollider(world: RAPIER.World, collider: GeneratedModelCollider): RAPIER.RigidBody {
|
function createFixedBodyForModelCollider(world: RAPIER.World, collider: GeneratedModelCollider): RAPIER.RigidBody {
|
||||||
return world.createRigidBody(
|
return world.createRigidBody(
|
||||||
RAPIER.RigidBodyDesc.fixed()
|
RAPIER.RigidBodyDesc.fixed()
|
||||||
@@ -197,8 +209,8 @@ function attachTerrainModelCollider(world: RAPIER.World, collider: GeneratedMode
|
|||||||
},
|
},
|
||||||
collider.transform.scale
|
collider.transform.scale
|
||||||
);
|
);
|
||||||
const rowSubdivisions = collider.rows - 1;
|
const { rowSubdivisions, colSubdivisions } =
|
||||||
const colSubdivisions = collider.cols - 1;
|
getRapierHeightfieldSubdivisions(collider);
|
||||||
|
|
||||||
world.createCollider(
|
world.createCollider(
|
||||||
// Rapier expects the number of grid subdivisions here, while our generated
|
// Rapier expects the number of grid subdivisions here, while our generated
|
||||||
@@ -229,8 +241,8 @@ function attachTerrainCollider(
|
|||||||
collider.position.z
|
collider.position.z
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
const rowSubdivisions = collider.rows - 1;
|
const { rowSubdivisions, colSubdivisions } =
|
||||||
const colSubdivisions = collider.cols - 1;
|
getRapierHeightfieldSubdivisions(collider);
|
||||||
|
|
||||||
world.createCollider(
|
world.createCollider(
|
||||||
RAPIER.ColliderDesc.heightfield(
|
RAPIER.ColliderDesc.heightfield(
|
||||||
|
|||||||
Reference in New Issue
Block a user