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); }
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 }; }
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); }
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 }; }
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); }