Ejemplo n.º 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);
    }
Ejemplo n.º 2
0
    public BottomAngleCondition(int id1, int id2, int id3, float angle) : base(2)
    {
        this.corner = new CornerRefer(id1, id2, id3);
        this.angle  = angle;

        GizmoCorner gizmoCorner = new GizmoCorner(corner);
        GizmoAngle  gizmoAngle  = new GizmoAngle(corner);

        gizmos = new Gizmo[] { gizmoCorner, gizmoAngle };
    }
Ejemplo n.º 3
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);
    }
Ejemplo n.º 4
0
    public override void InitWithGeometry(Geometry geometry)
    {
        VertexUnit v1 = geometry.VertexUnit(corner.id1);
        VertexUnit v2 = geometry.VertexUnit(corner.id2);
        VertexUnit v3 = geometry.VertexUnit(corner.id3);

        dependencies = new List <VertexUnit>();
        dependencies.Add(v1);
        dependencies.Add(v2);
        dependencies.Add(v3);

        GizmoCorner gizmoCorner = new GizmoCorner(corner);
        GizmoAngle  gizmoAngle  = new GizmoAngle(corner);

        gizmos = new Gizmo[] { gizmoCorner, gizmoAngle };
    }
Ejemplo n.º 5
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);
    }