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