static void DrawGizmoForDeformationModel(DeformationModel target, GizmoType gizmoType) { if (!target.gizmo) { return; } foreach (var C in target.mesh.nodes) { var c0 = target.transform.TransformPoint(C.origin); var c1 = target.transform.TransformPoint(C.position); Gizmos.color = new Color(C.y, 0, 0); // Gizmos.DrawLine(c0, c1); Gizmos.DrawWireSphere(c1, 0.01f); } foreach (var edge in target.mesh.edges) { var v0 = target.mesh.nodes[edge.v0]; var v1 = target.mesh.nodes[edge.v1]; var c0 = target.transform.TransformPoint(v0.position); var c1 = target.transform.TransformPoint(v1.position); var violation = edge.length - (v0.position - v1.position).magnitude; Gizmos.color = new Color(violation * 100f, 0, 0); Gizmos.DrawLine(c0, c1); } }
private void Awake() { deformer = GetComponentInParent <DeformationModel>(); if (deformer == null) { Destroy(this); } }
/// <summary> /// Creates a deformation. /// </summary> /// <param name="deformationModel">Deformation to create.</param> /// <returns>Created deformation.</returns> public async Task <DeformationModel> Create(DeformationModel deformationModel) { await this._collection.InsertOneAsync(deformationModel); return(deformationModel); }