Some more position access fixes

This commit is contained in:
luboslenco 2020-03-03 22:50:20 +01:00
parent 23d649fe32
commit cfbe3a7dce
4 changed files with 8 additions and 8 deletions

View file

@ -62,7 +62,7 @@ class PhysicsBreak extends Trait {
var ud = breaker.userDataMap.get(cast o); var ud = breaker.userDataMap.get(cast o);
var params = [0.04, 0.1, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.04, 0.0, 0.0, 0.0]; var params = [0.04, 0.1, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.04, 0.0, 0.0, 0.0];
o.addTrait(new RigidBody(Shape.ConvexHull, ud.mass, ud.friction, 0, 1, params)); o.addTrait(new RigidBody(Shape.ConvexHull, ud.mass, ud.friction, 0, 1, params));
if (cast(o, MeshObject).data.geom.positions.length < 600) { if (cast(o, MeshObject).data.geom.positions.values.length < 600) {
o.addTrait(new PhysicsBreak()); o.addTrait(new PhysicsBreak());
} }
} }
@ -115,7 +115,7 @@ class ConvexBreaker {
} }
public function initBreakableObject(object: MeshObject, mass: Float, friction: Float, velocity: Vec4, angularVelocity: Vec4, breakable: Bool) { public function initBreakableObject(object: MeshObject, mass: Float, friction: Float, velocity: Vec4, angularVelocity: Vec4, breakable: Bool) {
var ar = object.data.geom.positions; var ar = object.data.geom.positions.values;
var scalePos = object.data.scalePos; var scalePos = object.data.scalePos;
// Create vertices mark // Create vertices mark
var sc = object.transform.scale; var sc = object.transform.scale;
@ -550,11 +550,11 @@ class ConvexBreaker {
var inda = new kha.arrays.Uint32Array(ind.length); var inda = new kha.arrays.Uint32Array(ind.length);
for (i in 0...ind.length) inda.set(i, ind[i]); for (i in 0...ind.length) inda.set(i, ind[i]);
var pos: TVertexArray = { attrib: "pos", values: paa }; var pos: TVertexArray = { attrib: "pos", values: paa, data: "short4norm" };
var nor: TVertexArray = { attrib: "nor", values: naa }; var nor: TVertexArray = { attrib: "nor", values: naa, data: "short2norm" };
var indices: TIndexArray = { material: 0, values: inda }; var indices: TIndexArray = { material: 0, values: inda };
var rawmesh: TMeshData = { var rawmesh: TMeshData = {
name: "TempMesh" + (meshIndex++), name: "TempMesh" + (meshIndex++),
vertex_arrays: [pos, nor], vertex_arrays: [pos, nor],
index_arrays: [indices], index_arrays: [indices],

View file

@ -331,7 +331,7 @@ class KinematicCharacterController extends Trait {
} }
function addPointsToConvexHull(shape: bullet.Bt.ConvexHullShape, scale: Vec4, margin: Float) { function addPointsToConvexHull(shape: bullet.Bt.ConvexHullShape, scale: Vec4, margin: Float) {
var positions = cast(object, MeshObject).data.geom.positions; var positions = cast(object, MeshObject).data.geom.positions.values;
var sx = scale.x * (1.0 - margin); var sx = scale.x * (1.0 - margin);
var sy = scale.y * (1.0 - margin); var sy = scale.y * (1.0 - margin);

View file

@ -97,7 +97,7 @@ class PhysicsHook extends Trait {
#end #end
var geom = cast(object, MeshObject).data.geom; var geom = cast(object, MeshObject).data.geom;
var numNodes = Std.int(geom.positions.length / 4); var numNodes = Std.int(geom.positions.values.length / 4);
for (i in 0...numNodes) { for (i in 0...numNodes) {
var node = nodes.at(i); var node = nodes.at(i);
#if js #if js

View file

@ -92,7 +92,7 @@ class SoftBody extends Trait {
object.transform.buildMatrix(); object.transform.buildMatrix();
} }
var positions = fromI16(geom.positions, mo.data.scalePos); var positions = fromI16(geom.positions.values, mo.data.scalePos);
for (i in 0...Std.int(positions.length / 3)) { for (i in 0...Std.int(positions.length / 3)) {
v.set(positions[i * 3], positions[i * 3 + 1], positions[i * 3 + 2]); v.set(positions[i * 3], positions[i * 3 + 1], positions[i * 3 + 2]);
v.applyQuat(object.transform.rot); v.applyQuat(object.transform.rot);