public void AddConstraint(int[] triangles, float restVolume) { RegisterConstraint(); firstTriangle.Add((int)particleIndices.count / 3); particleIndices.AddRange(triangles); restVolumes.Add(restVolume); pressureStiffness.Add(new Vector2(1, 0)); }
public void AddConstraint(int[] indices, float restLength, float stretchStiffness, float compressionStiffness) { RegisterConstraint(); firstParticle.Add((int)particleIndices.count); numParticles.Add((int)indices.Length); particleIndices.AddRange(indices); lengths.Add(new Vector2(restLength, restLength)); }
public void AddConstraint(int[] indices, bool isExplicit) { RegisterConstraint(); firstIndex.Add((int)particleIndices.count); numIndices.Add((int)indices.Length); explicitGroup.Add(isExplicit ? 1 : 0); particleIndices.AddRange(indices); materialParameters.AddRange(new float[] { 1, 1, 1, 1, 1 }); }
public void AddConstraint(Vector2Int indices, int orientationIndex, float restLength, Quaternion restOrientation) { RegisterConstraint(); particleIndices.Add(indices[0]); particleIndices.Add(indices[1]); orientationIndices.Add(orientationIndex); restLengths.Add(restLength); restOrientations.Add(restOrientation); stiffnesses.Add(Vector3.zero); }
public void AddConstraint(int index, ObiColliderBase body, Vector3 offset, Quaternion restDarboux) { RegisterConstraint(); particleIndices.Add(index); pinBodies.Add(body != null ? body.Handle : new ObiColliderHandle()); colliderIndices.Add(body != null ? body.Handle.index : -1); offsets.Add(offset); restDarbouxVectors.Add(restDarboux); stiffnesses.Add(0); stiffnesses.Add(0); breakThresholds.Add(float.PositiveInfinity); }
public void AddConstraint(int solverIndex, ObiColliderBase body, Vector3 offset, Quaternion restDarboux, float linearCompliance, float rotationalCompliance, float breakThreshold) { RegisterConstraint(); particleIndices.Add(solverIndex); pinBodies.Add(body != null ? body.Handle : new ObiColliderHandle()); colliderIndices.Add(body != null ? body.Handle.index : -1); offsets.Add(offset); restDarbouxVectors.Add(restDarboux); stiffnesses.Add(linearCompliance); stiffnesses.Add(rotationalCompliance); breakThresholds.Add(breakThreshold); }