Ejemplo n.º 1
0
        public ScanSettings()
            : base()
        {
            TurntableScanningSetter = new SettingSetter();

            //Kinect
            KinectProperties = new SettingGroup("Kinect")
            {
                FriendlyName = GreenResources.SettingGroupKinect, Footer = GreenResources.SettingGroupKinectFooter
            };
            SettingGroups.Add(KinectProperties);

            KinectMode = new EnumSetting <KinectManager.Modes>("Mode", KinectManager.Modes.DepthAndColor)
            {
                FriendlyName = GreenResources.SettingKinectMode, FriendlyOptions = GreenResources.EnumKinectManagerModes.Split('|')
            };
            DependentAvailability kinectModeIsDepthAndColor = new DependentAvailability(KinectMode, "DepthAndColor");
            DependentAvailability kinectModeWithDepth       = new DependentAvailability(KinectMode, "Depth|DepthAndColor");

            KinectProperties.Settings.Add(KinectMode);

            NearModeEnabled = new BooleanSetting("NearModeEnabled", true)
            {
                FriendlyName = GreenResources.SettingKinectNearMode, AvailabilityProvider = kinectModeWithDepth
            };
            EmitterEnabled = new BooleanSetting("EmitterEnabled", true)
            {
                FriendlyName = GreenResources.SettingKinectEmitterEnabled, AvailabilityProvider = kinectModeWithDepth
            };
            ElevationAngle = new NumericSetting <int>("ElevationAngle", 0, -27, 27)
            {
                FriendlyName = GreenResources.SettingElevationAngle
            };
            KinectProperties.Settings.Add(NearModeEnabled);
            KinectProperties.Settings.Add(EmitterEnabled);
            KinectProperties.Settings.Add(ElevationAngle);

            TurntableScanningSetter.Settings.AddRange(KinectProperties.Settings);

            //Preprocessing
            PreprocessingProperties = new SettingGroup("Preprocessing")
            {
                FriendlyName = GreenResources.SettingGroupPreprocessing
            };
            SettingGroups.Add(PreprocessingProperties);

            DepthAveraging = new NumericSetting <int>("DepthAveraging", 1, 1, 256)
            {
                FriendlyName = GreenResources.SettingDepthAveraging, AvailabilityProvider = kinectModeIsDepthAndColor
            };
            DepthGaussIterations = new NumericSetting <int>("DepthGaussIterations", 0, 0, 4)
            {
                FriendlyName = GreenResources.SettingDepthGaussIterations, AvailabilityProvider = kinectModeIsDepthAndColor
            };
            DepthGaussSigma = new NumericSetting <float>("DepthGaussSigma", 1, 0.1f, 4f, 2)
            {
                FriendlyName = GreenResources.SettingDepthGaussSigma, AvailabilityProvider = kinectModeIsDepthAndColor
            };
            PreprocessingProperties.Settings.Add(DepthAveraging);
            PreprocessingProperties.Settings.Add(DepthGaussIterations);
            PreprocessingProperties.Settings.Add(DepthGaussSigma);

            //Camera
            CameraProperties = new SettingGroup("Camera")
            {
                FriendlyName = GreenResources.SettingGroupCamera
            };
            SettingGroups.Add(CameraProperties);

            InfraredIntrinsics = new MatrixSetting("InfraredIntrinsics", new float[, ] {
                { 582.0813f, 0f, 309.8195f }, { 0f, 582.865f, 234.2108f }, { 0f, 0f, 1f }
            })
            {
                FriendlyName = GreenResources.SettingInfraredIntrinsics, AvailabilityProvider = kinectModeIsDepthAndColor
            };
            InfraredDistortion = new MatrixSetting("InfraredDistortion", new float[, ] {
                { 0f, 0f }, { 0f, 0f }
            })
            {
                FriendlyName = GreenResources.SettingInfraredDistortion, AvailabilityProvider = kinectModeIsDepthAndColor
            };
            InfraredDistortionCorrectionEnabled = new BooleanSetting("InfraredDistortionCorrectionEnabled", false)
            {
                FriendlyName = GreenResources.SettingInfraredDistortionCorrectionEnabled, AvailabilityProvider = kinectModeIsDepthAndColor
            };
            DepthToIRMapping = new MatrixSetting("DepthToIRMapping", new float[, ] {
                { 1f, 0f, 0f }, { 0f, 1f, 0f }, { 0f, 0f, 1f }
            })
            {
                FriendlyName = GreenResources.SettingDepthToIRMapping, AvailabilityProvider = kinectModeIsDepthAndColor
            };
            DepthCoeffs = new MatrixSetting("DepthCoeffs", new float[, ] {
                { 0.125e-3f, 0f }
            })
            {
                FriendlyName = GreenResources.SettingDepthCoeffs, AvailabilityProvider = kinectModeIsDepthAndColor
            };
            ColorIntrinsics = new MatrixSetting("ColorIntrinsics", new float[, ] {
                { 523.279f, 0f, 303.9468f }, { 0f, 523.1638f, 239.1431f }, { 0f, 0f, 1f }
            })
            {
                FriendlyName = GreenResources.SettingColorIntrinsics, AvailabilityProvider = kinectModeIsDepthAndColor
            };
            ColorRemapping = new MatrixSetting("ColorRemapping", new float[, ] {
                { 1f, 0f, 0f }, { 0f, 1f, 0f }, { 0f, 0f, 1f }
            })
            {
                FriendlyName = GreenResources.SettingColorRemapping, AvailabilityProvider = kinectModeIsDepthAndColor
            };
            ColorExtrinsics = new MatrixSetting("ColorExtrinsics", new float[, ] {
                { 0.999967f, 0.003969562f, 0.00709248f, 0.02473051f }, { -0.003896888f, 0.9999401f, -0.01023114f, -0.000453843f }, { -0.007132668f, 0.01020316f, 0.9999225f, 0.003119022f }, { 0f, 0f, 0f, 1f }
            })
            {
                FriendlyName = GreenResources.SettingColorExtrinsics, AvailabilityProvider = kinectModeIsDepthAndColor
            };
            CameraProperties.Settings.Add(InfraredIntrinsics);
            CameraProperties.Settings.Add(InfraredDistortion);
            CameraProperties.Settings.Add(InfraredDistortionCorrectionEnabled);
            CameraProperties.Settings.Add(DepthToIRMapping);
            CameraProperties.Settings.Add(DepthCoeffs);
            CameraProperties.Settings.Add(ColorIntrinsics);
            CameraProperties.Settings.Add(ColorRemapping);
            CameraProperties.Settings.Add(ColorExtrinsics);

            ColorDispositionX = new NumericSetting <int>("ColorDispositionX", 0, -32, 32)
            {
                FriendlyName = GreenResources.SettingColorDispositionX, AvailabilityProvider = kinectModeIsDepthAndColor
            };
            ColorDispositionY = new NumericSetting <int>("ColorDispositionY", 0, -32, 32)
            {
                FriendlyName = GreenResources.SettingColorDispositionY, AvailabilityProvider = kinectModeIsDepthAndColor
            };
            ColorScaleX = new NumericSetting <float>("ColorScaleX", 1f, 0.8f, 1.2f, 2)
            {
                FriendlyName = GreenResources.SettingColorScaleX, AvailabilityProvider = kinectModeIsDepthAndColor
            };
            ColorScaleY = new NumericSetting <float>("ColorScaleY", 1f, 0.8f, 1.2f, 2)
            {
                FriendlyName = GreenResources.SettingColorScaleY, AvailabilityProvider = kinectModeIsDepthAndColor
            };
            CameraProperties.Settings.Add(ColorDispositionX);
            CameraProperties.Settings.Add(ColorDispositionY);
            CameraProperties.Settings.Add(ColorScaleX);
            CameraProperties.Settings.Add(ColorScaleY);

            TurntableScanningSetter.Settings.AddRange(CameraProperties.Settings);

            //View
            ViewProperties = new SettingGroup("View")
            {
                FriendlyName = GreenResources.SettingGroupView
            };
            SettingGroups.Add(ViewProperties);

            TranslationX = new NumericSetting <float>("TranslationX", 0f, -1f, 1f, 2)
            {
                FriendlyName = GreenResources.SettingTranslationX, AvailabilityProvider = kinectModeIsDepthAndColor
            };
            TranslationY = new NumericSetting <float>("TranslationY", 0f, -1f, 1f, 2)
            {
                FriendlyName = GreenResources.SettingTranslationY, AvailabilityProvider = kinectModeIsDepthAndColor
            };
            TranslationZ = new NumericSetting <float>("TranslationZ", 1.5f, 0f, 3f, 2)
            {
                FriendlyName = GreenResources.SettingTranslationZ, AvailabilityProvider = kinectModeIsDepthAndColor
            };
            ViewProperties.Settings.Add(TranslationX);
            ViewProperties.Settings.Add(TranslationY);
            ViewProperties.Settings.Add(TranslationZ);

            RotationX = new NumericSetting <float>("RotationX", 0f, -180f, 180f, 2)
            {
                FriendlyName = GreenResources.SettingRotationX, AvailabilityProvider = kinectModeIsDepthAndColor
            };
            RotationY = new NumericSetting <float>("RotationY", 0f, -180f, 180f, 2)
            {
                FriendlyName = GreenResources.SettingRotationY, AvailabilityProvider = kinectModeIsDepthAndColor
            };
            RotationZ = new NumericSetting <float>("RotationZ", 0f, -180f, 180f, 2)
            {
                FriendlyName = GreenResources.SettingRotationZ, AvailabilityProvider = kinectModeIsDepthAndColor
            };
            ViewProperties.Settings.Add(RotationX);
            ViewProperties.Settings.Add(RotationY);
            ViewProperties.Settings.Add(RotationZ);

            Scale = new NumericSetting <float>("Scale", 1f, 0f, 8f, 2)
            {
                FriendlyName = GreenResources.SettingScale
            };
            MoveX = new NumericSetting <float>("MoveX", 0f, -1f, 1f, 2)
            {
                FriendlyName = GreenResources.SettingMoveX
            };
            MoveY = new NumericSetting <float>("MoveY", 0f, -1f, 1f, 2)
            {
                FriendlyName = GreenResources.SettingMoveY
            };
            Rotation = new NumericSetting <int>("Rotation", 0, 0, 3)
            {
                FriendlyName = GreenResources.SettingRotation
            };
            ViewProperties.Settings.Add(Scale);
            ViewProperties.Settings.Add(MoveX);
            ViewProperties.Settings.Add(MoveY);
            ViewProperties.Settings.Add(Rotation);

            //Shading
            ShadingProperties = new SettingGroup("Shading")
            {
                FriendlyName = GreenResources.SettingGroupShading
            };
            SettingGroups.Add(ShadingProperties);

            UseModuleShading = new BooleanSetting("ModuleShading", false)
            {
                FriendlyName = GreenResources.SettingUseModuleShading, AvailabilityProvider = kinectModeIsDepthAndColor
            };
            ShadingMode = new EnumSetting <GraphicsCanvas.ShadingModes>("ShadingMode", GraphicsCanvas.ShadingModes.Rainbow)
            {
                FriendlyName = GreenResources.SettingShadingMode, AvailabilityProvider = kinectModeIsDepthAndColor, FriendlyOptions = GreenResources.EnumGraphicsCanvasShadingModes.Split('|')
            };
            DependentAvailability periodicShading = new DependentAvailability(ShadingMode, "Zebra|Rainbow|ShadedRainbow");
            DependentAvailability phongShading    = new DependentAvailability(ShadingMode, "ShadedRainbow|ShadedScale|Phong");

            DepthMaximum = new NumericSetting <float>("DepthMaximum", 8f, 0f, 8f, 2)
            {
                FriendlyName = GreenResources.SettingDepthMaximum, AvailabilityProvider = kinectModeIsDepthAndColor
            };
            DepthMinimum = new NumericSetting <float>("DepthMinimum", 0.4f, 0.4f, 8f, 2)
            {
                FriendlyName = GreenResources.SettingDepthMinimum, AvailabilityProvider = kinectModeIsDepthAndColor
            };
            ShadingPeriode = new NumericSetting <float>("ShadingPeriode", 1f, 0.01f, 2f, 2)
            {
                FriendlyName = GreenResources.SettingShadingPeriode, AvailabilityProvider = periodicShading
            };
            ShadingPhase = new NumericSetting <float>("ShadingPhase", 0f, 0f, 1f, 2)
            {
                FriendlyName = GreenResources.SettingShadingPhase, AvailabilityProvider = periodicShading
            };
            TriangleRemoveLimit = new NumericSetting <float>("TriangleRemoveLimit", 0.0024f, 0.0001f, 0.004f, 4)
            {
                FriendlyName = GreenResources.SettingTriangleRemoveLimit, AvailabilityProvider = kinectModeIsDepthAndColor
            };
            WireframeShading = new BooleanSetting("WireframeShading", false)
            {
                FriendlyName = GreenResources.SettingWireframeShading, AvailabilityProvider = kinectModeIsDepthAndColor
            };
            ShadingProperties.Settings.Add(UseModuleShading);
            ShadingProperties.Settings.Add(ShadingMode);
            ShadingProperties.Settings.Add(DepthMaximum);
            ShadingProperties.Settings.Add(DepthMinimum);
            ShadingProperties.Settings.Add(ShadingPeriode);
            ShadingProperties.Settings.Add(ShadingPhase);
            ShadingProperties.Settings.Add(TriangleRemoveLimit);
            ShadingProperties.Settings.Add(WireframeShading);

            //Lighting
            LightingProperties = new SettingGroup("Lighting")
            {
                FriendlyName = GreenResources.SettingGroupLighting
            };
            SettingGroups.Add(LightingProperties);

            AmbientLighting = new NumericSetting <float>("AmbientLighting", 0.1f, 0f, 1f, 2)
            {
                FriendlyName = GreenResources.SettingAmbientLighting, AvailabilityProvider = phongShading
            };
            DiffuseLighting = new NumericSetting <float>("DiffuseLighting", 0.8f, 0f, 1f, 2)
            {
                FriendlyName = GreenResources.SettingDiffuseLighting, AvailabilityProvider = phongShading
            };
            SpecularLighting = new NumericSetting <float>("SpecularLighting", 0.4f, 0f, 1f, 2)
            {
                FriendlyName = GreenResources.SettingSpecularLighting, AvailabilityProvider = phongShading
            };
            Shininess = new NumericSetting <float>("Shininess", 20f, 0f, 50f, 1)
            {
                FriendlyName = GreenResources.SettingShininess, AvailabilityProvider = phongShading
            };
            LightingProperties.Settings.Add(AmbientLighting);
            LightingProperties.Settings.Add(DiffuseLighting);
            LightingProperties.Settings.Add(SpecularLighting);
            LightingProperties.Settings.Add(Shininess);

            //Performance
            PerformanceProperties = new SettingGroup("Performance")
            {
                FriendlyName = GreenResources.SettingGroupPerformance
            };
            SettingGroups.Add(PerformanceProperties);

            TriangleGridResolution = new SizeSetting("TriangleGridResolution", 640, 480, 16, 12, 640, 480)
            {
                FriendlyName = GreenResources.SettingTriangleGridResolution, AvailabilityProvider = kinectModeIsDepthAndColor
            };
            PerformanceProperties.Settings.Add(TriangleGridResolution);

            //Save
            SaveProperties = new SettingGroup("Save")
            {
                FriendlyName = GreenResources.SettingGroupSave
            };
            SettingGroups.Add(SaveProperties);

            SaveDirectory = new PathSetting("Directory", "")
            {
                FriendlyName = GreenResources.SettingSaveDirectory
            };
            SaveLabel = new StringSetting("Label", "", Path.GetInvalidFileNameChars())
            {
                FriendlyName = GreenResources.SettingSaveLabel
            };
            SaveNoTimestamp = new BooleanSetting("NoTimestamp", false)
            {
                FriendlyName = GreenResources.SettingSaveNoTimestamp
            };
            SaveModelResolution = new SizeSetting("ModelResolution", 640, 480, 8, 8, 640, 480)
            {
                FriendlyName = GreenResources.SettingSaveModelResolution, AvailabilityProvider = kinectModeIsDepthAndColor
            };
            SaveTextureResolution = new SizeSetting("TextureResolution", 640, 480, 8, 8, 1024, 1024)
            {
                FriendlyName = GreenResources.SettingSaveTextureResolution, AvailabilityProvider = kinectModeIsDepthAndColor
            };
            SaveCalibrationDirectory = new PathSetting("CalibrationDirectory", "")
            {
                FriendlyName = GreenResources.SettingSaveCalibrationDirectory, IsHidden = true
            };
            SaveScalingPower = new NumericSetting <int>("ScalingPower", 0, -3, 6)
            {
                FriendlyName = GreenResources.SettingSaveScalingPower, AvailabilityProvider = kinectModeIsDepthAndColor
            };
            SaveProperties.Settings.Add(SaveDirectory);
            SaveProperties.Settings.Add(SaveLabel);
            SaveProperties.Settings.Add(SaveNoTimestamp);
            SaveProperties.Settings.Add(SaveModelResolution);
            SaveProperties.Settings.Add(SaveTextureResolution);
            SaveProperties.Settings.Add(SaveCalibrationDirectory);
            SaveProperties.Settings.Add(SaveScalingPower);

            SaveContinousShootingInterval = new NumericSetting <int>("SaveContinousShootingInterval", 100, 0, 1000);
            SaveProperties.Settings.Add(SaveContinousShootingInterval);

            //Turntable
            TurntableProperties = new SettingGroup("Turntable")
            {
                FriendlyName = GreenResources.SettingGroupTurntable, IsHidden = true
            };
            SettingGroups.Add(TurntableProperties);

            TurntableMode = new EnumSetting <RotatingScanner.Modes>("Mode", RotatingScanner.Modes.TwoAxis)
            {
                FriendlyName = GreenResources.SettingTurntableMode, FriendlyOptions = GreenResources.EnumRotatingScannerModes.Split('|')
            };
            DependentAvailability turntableModeIsVolumetric = new DependentAvailability(TurntableMode, "Volumetric");
            DependentAvailability turntableModeIsAxial      = new DependentAvailability(TurntableMode, "OneAxis|TwoAxis");

            TurntableProperties.Settings.Add(TurntableMode);
            TurntableTransform = new MatrixSetting("TurntableTransform", new float[, ] {
                { 1f, 0f, 0f, 0f }, { 0f, 1f, 0f, 0f }, { 0f, 0f, 1f, 0f }, { 0f, 0f, 0f, 1f }
            })
            {
                FriendlyName = GreenResources.SettingTurntableTransform, IsHidden = true
            };
            TurntableProperties.Settings.Add(TurntableTransform);
            TurntablePiSteps = new NumericSetting <int>("PiSteps", 10934, 5000, 20000)
            {
                FriendlyName = GreenResources.SettingTurntablePiSteps
            };
            TurntableProperties.Settings.Add(TurntablePiSteps);
            TurntableHasMirror = new BooleanSetting("HasMirror", true)
            {
                FriendlyName = GreenResources.SettingTurntableHasMirror
            };
            TurntableProperties.Settings.Add(TurntableHasMirror);
            TurntableEllipse = new RectangleSetting("SelectionEllipse", new Rect(0d, 0d, 0d, 0d))
            {
                IsHidden = true
            };
            TurntableRectangleA = new RectangleSetting("SelectionRectangleA", new Rect(0d, 0d, 0d, 0d))
            {
                IsHidden = true
            };
            TurntableRectangleB = new RectangleSetting("SelectionRectangleB", new Rect(0d, 0d, 0d, 0d))
            {
                IsHidden = true
            };
            TurntableProperties.Settings.Add(TurntableEllipse);
            TurntableProperties.Settings.Add(TurntableRectangleA);
            TurntableProperties.Settings.Add(TurntableRectangleB);

            TurntableScanningSetter.Settings.AddRange(new Setting[] { TurntableMode, TurntableHasMirror });

            //Turntable - Axial
            TurntableAxialProperties = new SettingGroup("TurntableAxial")
            {
                FriendlyName = GreenResources.SettingGroupTurntableAxial, IsHidden = true
            };
            SettingGroups.Add(TurntableAxialProperties);

            TurntableAxialView = new EnumSetting <RotatingScanner.AxialViews>("AxialView", RotatingScanner.AxialViews.Overlay)
            {
                FriendlyName = GreenResources.SettingTurntableAxialView, AvailabilityProvider = turntableModeIsAxial, FriendlyOptions = GreenResources.EnumRotatingScannerViews.Split('|')
            };
            TurntableAxialProperties.Settings.Add(TurntableAxialView);
            TurntableAxialClippingHeight = new NumericSetting <float>("ClippingHeight", 0.5f, 0f, 2f, 3)
            {
                FriendlyName = GreenResources.SettingTurntableAxialClippingHeight, AvailabilityProvider = turntableModeIsAxial
            };
            TurntableAxialClippingRadius = new NumericSetting <float>("ClippingRadius", 0.3f, 0f, 2f, 3)
            {
                FriendlyName = GreenResources.SettingTurntableAxialClippingRadius, AvailabilityProvider = turntableModeIsAxial
            };
            TurntableAxialProperties.Settings.Add(TurntableAxialClippingHeight);
            TurntableAxialProperties.Settings.Add(TurntableAxialClippingRadius);
            TurntableAxialCoreX = new NumericSetting <float>("CoreX", 0.11f, 0f, 0.5f, 3)
            {
                FriendlyName = GreenResources.SettingTurntableAxialCoreX, AvailabilityProvider = turntableModeIsAxial
            };
            TurntableAxialCoreY = new NumericSetting <float>("CoreY", -0.11f, -0.5f, 0.5f, 3)
            {
                FriendlyName = GreenResources.SettingTurntableAxialCoreY, AvailabilityProvider = turntableModeIsAxial
            };
            TurntableAxialProperties.Settings.Add(TurntableAxialCoreX);
            TurntableAxialProperties.Settings.Add(TurntableAxialCoreY);
            TurntableAxialModelResolution = new SizeSetting("ModelResolution", 640, 480, 64, 64, 1024, 1024)
            {
                FriendlyName = GreenResources.SettingTurntableSaveModelResolution, AvailabilityProvider = turntableModeIsAxial
            };
            TurntableAxialTextureResolution = new SizeSetting("TextureResolution", 640, 480, 64, 64, 1024, 1024)
            {
                FriendlyName = GreenResources.SettingTurntableSaveTextureResolution, AvailabilityProvider = turntableModeIsAxial
            };
            TurntableAxialProperties.Settings.Add(TurntableAxialModelResolution);
            TurntableAxialProperties.Settings.Add(TurntableAxialTextureResolution);

            TurntableScanningSetter.Settings.AddRange(new Setting[] { TurntableAxialClippingHeight, TurntableAxialClippingRadius, TurntableAxialCoreX, TurntableAxialCoreY, TurntableAxialModelResolution, TurntableAxialTextureResolution });

            //Turntable - Volumetric
            TurntableVolumetricProperties = new SettingGroup("TurntableVolumetric")
            {
                FriendlyName = GreenResources.SettingGroupTurntableVolumetric, IsHidden = true
            };
            SettingGroups.Add(TurntableVolumetricProperties);

            TurntableVolumetricCubeSize = new NumericSetting <float>("CubeSize", 30, 10, 50)
            {
                FriendlyName = GreenResources.SettingTurntableVolumetricCubeSize, AvailabilityProvider = turntableModeIsVolumetric
            };
            TurntableVolumetricCubeResolution = new NumericSetting <int>("CubeResolution", 128, 16, 512)
            {
                FriendlyName = GreenResources.SettingTurntableVolumetricCubeResolution, AvailabilityProvider = turntableModeIsVolumetric
            };
            TurntableVolumetricProperties.Settings.Add(TurntableVolumetricCubeSize);
            TurntableVolumetricProperties.Settings.Add(TurntableVolumetricCubeResolution);
            TurntableVolumetricView = new EnumSetting <RotatingScanner.VolumetricViews>("VolumetricView", RotatingScanner.VolumetricViews.Overlay)
            {
                FriendlyName = GreenResources.SettingTurntableVolumetricView, AvailabilityProvider = turntableModeIsVolumetric, FriendlyOptions = GreenResources.EnumRotatingScannerVolumetricViews.Split('|')
            };
            DependentAvailability turntableVolumetricSliceView = new DependentAvailability(new Setting[] { TurntableMode, TurntableVolumetricView }, new string[] { "Volumetric", "Slice" });

            TurntableVolumetricProperties.Settings.Add(TurntableVolumetricView);
            TurntableVolumetricSlice = new NumericSetting <float>("Slice", 0, 0, 1, 2)
            {
                FriendlyName = GreenResources.SettingTurntableVolumetricSlice, AvailabilityProvider = turntableVolumetricSliceView
            };
            TurntableVolumetricThreshold = new NumericSetting <float>("Threshold", 0.1f, 0, 1, 2)
            {
                FriendlyName = GreenResources.SettingTurntableVolumetricThreshold, AvailabilityProvider = turntableModeIsVolumetric
            };
            TurntableVolumetricProperties.Settings.Add(TurntableVolumetricSlice);
            TurntableVolumetricProperties.Settings.Add(TurntableVolumetricThreshold);
            TurntableVolumetricGradientLimit = new NumericSetting <float>("GradientLimit", 0.05f, 0f, 0.2f, 4)
            {
                FriendlyName = GreenResources.SettingTurntableVolumetricGradientLimit, AvailabilityProvider = turntableModeIsVolumetric
            };
            TurntableVolumetricProperties.Settings.Add(TurntableVolumetricGradientLimit);

            TurntableScanningSetter.Settings.AddRange(new Setting[] { TurntableVolumetricCubeSize, TurntableVolumetricCubeResolution });
        }
Ejemplo n.º 2
0
 public static void AddGroup(InstallSettingGroup group)
 {
     SettingGroups.Remove(SettingGroups.FirstOrDefault(g => g.Name == group.Name));
     SettingGroups.Add(group);
 }