static void Drawer_Offset(InfluenceVolumeUI s, SerializedInfluenceVolume d, Editor o, bool drawAllOffset)
        {
            EditorGUILayout.BeginHorizontal();
            EditorGUI.BeginChangeCheck();
            float y = 0f;

            if (drawAllOffset)
            {
                EditorGUILayout.PropertyField(d.offset, offsetContent);
            }
            else
            {
                y = EditorGUILayout.FloatField(yOffsetContent, d.offset.vector3Value.y);
            }
            if (EditorGUI.EndChangeCheck())
            {
                //call the offset setter as it will update legacy reflection probe
                HDProbeEditor   editor          = (HDProbeEditor)o;
                InfluenceVolume influenceVolume = editor.GetTarget(editor.target).influenceVolume;
                if (drawAllOffset)
                {
                    influenceVolume.offset = d.offset.vector3Value;
                }
                else
                {
                    influenceVolume.offset = new Vector3(0, y, 0);
                }
            }
            HDProbeUI.Drawer_ToolBarButton(HDProbeUI.ToolBar.CapturePosition, o, GUILayout.Width(28f), GUILayout.MinHeight(22f));
            EditorGUILayout.EndHorizontal();
        }
Example #2
0
        internal static void DrawGizmos(HDProbe d, GizmoType gizmoType)
        {
            HDProbeUI s;

            if (!HDProbeEditor.TryGetUIStateFor(d, out s))
            {
                return;
            }

            var mat = Matrix4x4.TRS(d.transform.position, d.transform.rotation, Vector3.one);

            switch (EditMode.editMode)
            {
            case EditBaseShape:
                InfluenceVolumeUI.DrawGizmos(
                    s.influenceVolume, d.influenceVolume, mat,
                    InfluenceVolumeUI.HandleType.Base,
                    InfluenceVolumeUI.HandleType.All);
                break;

            case EditInfluenceShape:
                InfluenceVolumeUI.DrawGizmos(
                    s.influenceVolume,
                    d.influenceVolume,
                    mat,
                    InfluenceVolumeUI.HandleType.Influence,
                    InfluenceVolumeUI.HandleType.All);
                break;

            case EditInfluenceNormalShape:
                InfluenceVolumeUI.DrawGizmos(
                    s.influenceVolume,
                    d.influenceVolume,
                    mat,
                    InfluenceVolumeUI.HandleType.InfluenceNormal,
                    InfluenceVolumeUI.HandleType.All);
                break;

            default:
            {
                var showedHandles = s.influenceVolume.showInfluenceHandles
                        ? InfluenceVolumeUI.HandleType.All
                        : InfluenceVolumeUI.HandleType.Base | InfluenceVolumeUI.HandleType.Influence;
                InfluenceVolumeUI.DrawGizmos(
                    s.influenceVolume,
                    d.influenceVolume,
                    mat,
                    InfluenceVolumeUI.HandleType.None,
                    showedHandles);
                break;
            }
            }

            if (d.proxyVolume != null)
            {
                ReflectionProxyVolumeComponentUI.DrawGizmos_EditNone(d.proxyVolume);
            }
        }
Example #3
0
 internal static HDProbeUI CreateFor(HDProbeEditor o)
 {
     if (o is PlanarReflectionProbeEditor)
     {
         return(new PlanarReflectionProbeUI());
     }
     else
     {
         return(new HDReflectionProbeUI());
     }
 }
Example #4
0
        internal static void DrawGizmos(PlanarReflectionProbe d, GizmoType gizmoType)
        {
            HDProbeUI.DrawGizmos(d, gizmoType);

            HDProbeUI s;

            if (!HDProbeEditor.TryGetUIStateFor(d, out s))
            {
                return;
            }

            var mat = Matrix4x4.TRS(d.transform.position + d.transform.rotation * d.influenceVolume.offset, d.transform.rotation, Vector3.one);

            //gizmo overrides
            switch (EditMode.editMode)
            {
            case EditBaseShape:
                if (d.influenceVolume.shape != InfluenceShape.Box)
                {
                    break;
                }

                using (new Handles.DrawingScope(mat))
                {
                    s.influenceVolume.boxBaseHandle.center = Vector3.zero;
                    s.influenceVolume.boxBaseHandle.size   = d.influenceVolume.boxSize;
                    s.influenceVolume.boxBaseHandle.DrawHull(true);
                    s.influenceVolume.boxInfluenceHandle.center = d.influenceVolume.boxBlendOffset;
                    s.influenceVolume.boxInfluenceHandle.size   = d.influenceVolume.boxSize + d.influenceVolume.boxBlendSize;
                    s.influenceVolume.boxInfluenceHandle.DrawHull(false);
                    s.influenceVolume.boxInfluenceNormalHandle.center = d.influenceVolume.boxBlendNormalOffset;
                    s.influenceVolume.boxInfluenceNormalHandle.size   = d.influenceVolume.boxSize + d.influenceVolume.boxBlendNormalSize;
                    s.influenceVolume.boxInfluenceNormalHandle.DrawHull(false);
                }
                break;
            }

            if (!HDProbeEditor.TryGetUIStateFor(d, out s))
            {
                return;
            }

            if (s.showCaptureHandles || EditMode.editMode == EditCenter)
            {
                DrawGizmos_CaptureFrustrum(d);
            }

            if (d.useMirrorPlane)
            {
                DrawGizmos_CaptureMirror(d);
            }
        }
Example #5
0
        internal static void DrawGizmos(PlanarReflectionProbe d, GizmoType gizmoType)
        {
            HDProbeUI.DrawGizmos(d, gizmoType);

            HDProbeUI s;

            if (!HDProbeEditor.TryGetUIStateFor(d, out s))
            {
                return;
            }

            if (s.showCaptureHandles || EditMode.editMode == EditCenter)
            {
                DrawGizmos_CaptureFrustrum(d);
            }

            if (d.useMirrorPlane)
            {
                DrawGizmos_CaptureMirror(d);
            }
        }