示例#1
0
    public void AddGizmoAngle(Gizmo gizmo)
    {
        if (!(gizmo is GizmoAngle))
        {
            return;
        }
        GizmoAngle gizmoAngle = (GizmoAngle)gizmo;

        GameObject gizmoObject = new GameObject("angle");

        gizmoObject.transform.SetParent(gizmoWrapper.transform);

        AngleBehaviour angleBehaviour = gizmoObject.AddComponent <AngleBehaviour>();

        angleBehaviour.Init(geoCamera);

        CornerRefer corner = gizmoAngle.corner;
        Vector3     origin = geometry.UnitVector(corner.id2);
        Vector3     dir1   = geometry.Direction(corner.id2, corner.id1);
        Vector3     dir2   = geometry.Direction(corner.id2, corner.id3);
        float       angle  = geometry.CornerAngle(corner.id1, corner.id2, corner.id3);

        angleBehaviour.SetData(origin, dir1, dir2, angle);

        gizmoMap.Add(gizmoAngle, angleBehaviour);
    }
示例#2
0
    public void RemoveGizmoAngle(Gizmo gizmo)
    {
        if (!(gizmo is GizmoAngle))
        {
            return;
        }
        GizmoAngle gizmoAngle = (GizmoAngle)gizmo;

        AngleBehaviour angleBehaviour = (AngleBehaviour)gizmoMap[gizmoAngle];

        Destroy(angleBehaviour.gameObject);

        gizmoMap.Remove(gizmoAngle);
    }
示例#3
0
    public void UpdateGizmoAngle(Gizmo gizmo)
    {
        if (!(gizmo is GizmoAngle))
        {
            return;
        }
        GizmoAngle gizmoAngle = (GizmoAngle)gizmo;

        AngleBehaviour angleBehaviour = (AngleBehaviour)gizmoMap[gizmoAngle];

        CornerRefer corner = gizmoAngle.corner;
        Vector3     origin = geometry.UnitVector(corner.id2);
        Vector3     dir1   = geometry.Direction(corner.id2, corner.id1);
        Vector3     dir2   = geometry.Direction(corner.id2, corner.id3);
        float       angle  = geometry.CornerAngle(corner.id1, corner.id2, corner.id3);

        angleBehaviour.SetData(origin, dir1, dir2, angle);
    }