Beispiel #1
0
        public override void OnDrawSpacedGizmo(TArcTorus arcTorus)
        {
            var arc = arcTorus.arc * Mathf.Rad2Deg;

            using (new Handles.DrawingScope(Handles.matrix * arcTorus.torus.transform))
            {
                var excessAngle = arc % 360f;
                var angle       = Mathf.Abs(arc) >= 360f ? 360f : excessAngle;

                Handles.DrawWireArc(Vector3.forward * arcTorus.torus.minorRadius, Vector3.back, Vector3.up, angle, arcTorus.torus.majorRadius);
                Handles.DrawWireArc(Vector3.back * arcTorus.torus.minorRadius, Vector3.back, Vector3.up, angle, arcTorus.torus.majorRadius);
                Handles.DrawWireArc(Vector3.zero, Vector3.back, Vector3.up, angle, arcTorus.torus.majorRadius + arcTorus.torus.minorRadius);
                Handles.DrawWireArc(Vector3.zero, Vector3.back, Vector3.up, angle, arcTorus.torus.majorRadius - arcTorus.torus.minorRadius);

                ArcGizmo(Vector3.zero, arcTorus.torus.majorRadius, arc, m_ArcProperty, Quaternion.Euler(-90.0f, 0.0f, 0.0f));
            }

            VFXTorusGizmo.DrawTorus(this, arcTorus.torus, m_CenterProperty, m_AnglesProperty, m_ScaleProperty, m_ThicknessProperty, m_RadiusProperty, VFXTorusGizmo.s_Angles.Concat(new float[] { arc }), arc);;
        }
        public override void OnDrawSpacedGizmo(ArcTorus arcTorus)
        {
            Vector3 center = arcTorus.center;
            float   arc    = arcTorus.arc * Mathf.Rad2Deg;

            float excessAngle = arc % 360f;
            float angle       = Mathf.Abs(arc) >= 360f ? 360f : excessAngle;

            Handles.DrawWireArc(arcTorus.center + Vector3.forward * arcTorus.minorRadius, Vector3.back, Vector3.up, angle, arcTorus.majorRadius);
            Handles.DrawWireArc(arcTorus.center + Vector3.back * arcTorus.minorRadius, Vector3.back, Vector3.up, angle, arcTorus.majorRadius);
            Handles.DrawWireArc(arcTorus.center, Vector3.back, Vector3.up, angle, arcTorus.majorRadius + arcTorus.minorRadius);
            Handles.DrawWireArc(arcTorus.center, Vector3.back, Vector3.up, angle, arcTorus.majorRadius - arcTorus.minorRadius);

            Torus torus = new Torus()
            {
                center = arcTorus.center, minorRadius = arcTorus.minorRadius, majorRadius = arcTorus.majorRadius
            };

            VFXTorusGizmo.DrawTorus(torus, this, m_CenterProperty, m_MinorRadiusProperty, m_MajorRadiusProperty, VFXTorusGizmo.angles.Concat(new float[] { arc }), arc);

            ArcGizmo(center, arcTorus.majorRadius, arc, m_ArcProperty, Quaternion.Euler(-90.0f, 0.0f, 0.0f), true);
        }
Beispiel #3
0
 public override Bounds OnGetSpacedGizmoBounds(TArcTorus value)
 {
     return(VFXTorusGizmo.GetBoundsFromTorus(value.torus));
 }