public void SetBendTwistConstraints(ObiNativeIntList orientationIndices, ObiNativeQuaternionList restOrientations, ObiNativeVector3List stiffnesses, ObiNativeFloatList lambdas, int count) { Oni.SetBendTwistConstraints(oniBatch, orientationIndices.GetIntPtr(), restOrientations.GetIntPtr(), stiffnesses.GetIntPtr(), lambdas.GetIntPtr(), count); }
public void SetTriangleMeshData(ObiNativeTriangleMeshHeaderList headers, ObiNativeBIHNodeList nodes, ObiNativeTriangleList triangles, ObiNativeVector3List vertices) { Oni.SetTriangleMeshData(headers.GetIntPtr(), nodes.GetIntPtr(), triangles.GetIntPtr(), vertices.GetIntPtr()); }
public void SetStretchShearConstraints(ObiNativeIntList particleIndices, ObiNativeIntList orientationIndices, ObiNativeFloatList restLengths, ObiNativeQuaternionList restOrientations, ObiNativeVector3List stiffnesses, ObiNativeFloatList lambdas, int count) { Oni.SetStretchShearConstraints(oniBatch, particleIndices.GetIntPtr(), orientationIndices.GetIntPtr(), restLengths.GetIntPtr(), restOrientations.GetIntPtr(), stiffnesses.GetIntPtr(), lambdas.GetIntPtr(), count); }
protected override void OnAddToSolver(IObiConstraints constraints) { for (int i = 0; i < restLengths.count; i++) { particleIndices[i * 2] = constraints.GetActor().solverIndices[source.particleIndices[i * 2]]; particleIndices[i * 2 + 1] = constraints.GetActor().solverIndices[source.particleIndices[i * 2 + 1]]; orientationIndices[i] = constraints.GetActor().solverIndices[((ObiStretchShearConstraintsBatch)source).orientationIndices[i]]; } // pass constraint data arrays to the solver: Oni.SetStretchShearConstraints(batch, particleIndices.GetIntPtr(), orientationIndices.GetIntPtr(), restLengths.GetIntPtr(), restOrientations.GetIntPtr(), stiffnesses.GetIntPtr(), m_ConstraintCount); Oni.SetActiveConstraints(batch, m_ActiveConstraintCount); }
protected override void OnAddToSolver(IObiConstraints constraints) { for (int i = 0; i < restDarbouxVectors.count; i++) { particleIndices[i * 2] = constraints.GetActor().solverIndices[source.particleIndices[i * 2]]; particleIndices[i * 2 + 1] = constraints.GetActor().solverIndices[source.particleIndices[i * 2 + 1]]; } // pass constraint data arrays to the solver: Oni.SetBendTwistConstraints(batch, particleIndices.GetIntPtr(), restDarbouxVectors.GetIntPtr(), stiffnesses.GetIntPtr(), m_ConstraintCount); Oni.SetActiveConstraints(batch, m_ActiveConstraintCount); }