コード例 #1
0
 protected override void OnDeactivate()
 {
     if (current != null)
     {
         current.Destroy();
         current = null;
     }
     canCreate = true;
     prev      = null;
 }
コード例 #2
0
    protected override void OnMouseDown(Vector3 pos, ICADObject sko)
    {
        if (current != null)
        {
            if (!canCreate)
            {
                return;
            }
            current.p[2].pos = pos;
            foreach (var p in current.p)
            {
                p.isSelectable = true;
            }
            current.isSelectable = true;
            if (prev != null)
            {
                new Tangent(current.sketch, current, prev);
            }
            if (AutoConstrainCoincident(current.p[3], sko as IEntity))
            {
                current = null;
                StopTool();
                return;
            }
        }
        if (DetailEditor.instance.currentSketch == null)
        {
            return;
        }
        editor.PushUndo();
        var newEntity = new SplineEntity(DetailEditor.instance.currentSketch.GetSketch());

        foreach (var p in newEntity.p)
        {
            p.pos = pos;
        }
        if (current == null)
        {
            AutoConstrainCoincident(newEntity.p[0], sko as IEntity);
        }
        else
        {
            new PointsCoincident(current.sketch, current.p[3], newEntity.p[0]);
        }

        prev    = current;
        current = newEntity;
        foreach (var p in current.p)
        {
            p.isSelectable = false;
        }
        current.isSelectable = false;
    }