Ejemplo n.º 1
0
    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);
        }
    }
Ejemplo n.º 2
0
    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);
        }