예제 #1
0
    def __init__(self):
        self.Title = "Insert Many Floors"
        #self.Size = drawing.Size(100,100)
        self.Padding = drawing.Padding(5)

        self.ApplyBoo = False
        self.NumFloors = 3

        self.numericButton = forms.NumericUpDown()
        self.numericButton.DecimalPlaces = 0
        self.numericButton.MinValue = 2.0
        self.numericButton.Value = self.NumFloors

        self.DefaultButton = forms.Button(Text = 'OK')
        self.DefaultButton.Click += self.OnOKButtonClick

        self.AbortButton = forms.Button(Text = 'Cancel')
        self.AbortButton.Click += self.OnCancelButtonClick

        layout = forms.DynamicLayout()
        layout.AddRow(self.numericButton, None)
        layout.AddSeparateRow(None, self.DefaultButton, self.AbortButton)
        self.Content = layout
예제 #2
0
    def from_settings(cls, object_name, settings):
        tab = cls()
        tab.Text = object_name
        layout = forms.StackLayout()
        layout.Spacing = 2
        layout.HorizontalContentAlignment = forms.HorizontalAlignment.Stretch
        tab.Content = layout

        # link to original setting and keep a temporary new settings holder
        tab.settings = settings
        tab.new_settings = settings.copy()

        # create sections
        sections = {}
        for key in settings:
            split = key.split('.')
            prefix = split[0]
            postfix = '.'.join(split[1:])

            if prefix[0] == "_":
                continue

            if prefix not in sections:
                sections[prefix] = {}
            sections[prefix][postfix] = (key, settings[key])

        for prefix in sections:

            groupbox = forms.GroupBox(Text=prefix)
            groupbox.Padding = drawing.Padding(5)
            grouplayout = forms.DynamicLayout()
            grouplayout.Spacing = drawing.Size(3, 3)

            postfixies = list(sections[prefix].keys())
            postfixies.sort()
            for postfix in postfixies:
                key, value = sections[prefix][postfix]

                if type(value) == bool:
                    control = forms.CheckBox()
                    control.Checked = value
                    control.CheckedChanged += tab.EditEvent(key)
                elif (type(value) == list or type(value) == tuple) and len(value) == 3:
                    control = forms.ColorPicker()
                    control.Value = drawing.Color.FromArgb(*value)
                    control.ValueChanged += tab.EditEvent(key)
                elif type(value) == float or type(value) == int:
                    control = forms.NumericUpDown()
                    if type(value) == float:
                        digits = len(str(value).split('.')[-1])
                        control.DecimalPlaces = (digits + 1)
                        control.Increment = 0.1 ** (digits + 1)
                    control.Value = value
                    control.ValueChanged += tab.EditEvent(key)
                else:
                    control = forms.TextBox()
                    control.Text = str(value)
                    control.TextChanged += tab.EditEvent(key)

                label = forms.Label(Text=postfix)
                if postfix != '':
                    grouplayout.AddRow(label, None, control)
                else:
                    grouplayout.AddRow(control)

            groupbox.Content = grouplayout
            layout.Items.Add(groupbox)

        return tab
    def __init__(self):

        # Initialize dialog box
        self.Title = 'Render Settings'
        self.Padding = drawing.Padding(5)
        self.Resizable = False

        settings = self.readSettings()

        dirname = os.path.dirname
        script_path = dirname(os.path.realpath(__file__)) + "\\"

        self.HDRIs = ["Colour"]
        for r, d, f in os.walk(script_path + "HDRI\\"):
            for file in f:
                if '.hdr' in file: self.HDRIs.append(file)

        self.render_engine = forms.ComboBox()
        self.render_engine.DataStore = ["CYCLES", "EEVEE"]
        self.render_engine.SelectedIndex = 0
        self.render_scale = forms.NumericUpDown()
        self.render_samples = forms.NumericStepper()

        self.camera_exposure = forms.NumericUpDown()
        self.camera_exposure.DecimalPlaces = 3
        self.camera_exposure.Increment = 0.1
        self.camera_exposure.MinValue = -10.000
        self.camera_exposure.MaxValue = 10.000
        self.camera_transparent = forms.CheckBox()

        self.world_HDRI = forms.ComboBox()
        self.world_HDRI.DataStore = self.HDRIs
        self.world_HDRIRotation = forms.NumericStepper()
        self.world_HDRIRotation.DecimalPlaces = 2
        self.world_HDRIBlur = forms.NumericStepper()
        self.world_HDRIBlur.DecimalPlaces = 2
        self.world_HDRIBlur.MinValue = 0.000
        self.world_HDRIBlur.MaxValue = 1.000
        self.world_HDRIBlur.Width = 50
        self.world_HDRIPower = forms.NumericStepper()
        self.world_HDRIPower.DecimalPlaces = 2
        self.world_HDRIPower.MinValue = 0.000
        self.world_HDRIPower.Width = 50

        self.render_bouncesTotal = forms.NumericStepper()
        self.render_bouncesDiffuse = forms.NumericStepper()
        self.render_bouncesGlossy = forms.NumericStepper()
        self.render_bouncesTransparency = forms.NumericStepper()
        self.render_bouncesTransmission = forms.NumericStepper()
        self.render_bouncesVolume = forms.NumericStepper()
        self.render_clampingDirect = forms.NumericUpDown()
        self.render_clampingDirect.DecimalPlaces = 2
        self.render_clampingDirect.Increment = 0.01
        self.render_clampingDirect.MinValue = 0.00
        self.render_clampingIndirect = forms.NumericUpDown()
        self.render_clampingIndirect.DecimalPlaces = 2
        self.render_clampingIndirect.MinValue = 0.00
        self.render_Denoising = forms.CheckBox()

        self.open = forms.CheckBox()
        self.save = forms.CheckBox()
        self.render = forms.CheckBox()
        self.showRender = forms.CheckBox()

        if settings:
            self.render_engine.SelectedIndex = self.render_engine.DataStore.index(
                settings["settings"]["render_engine"])
            self.render_scale.Value = float(
                settings["settings"]["render_scale"])
            self.render_samples.Value = int(
                settings["settings"]["render_samples"])

            self.camera_exposure.Value = float(
                settings["camera"]["camera_exposure"])
            self.camera_transparent.Checked = bool(
                settings["camera"]["camera_transparent"])

            self.world_HDRI.SelectedIndex = self.world_HDRI.DataStore.index(
                settings["world"]["world_HDRI"])
            self.world_HDRIRotation.Value = float(
                settings["world"]["world_HDRIRotation"])
            self.world_HDRIBlur.Value = float(
                settings["world"]["world_HDRIBlur"])
            self.world_HDRIPower.Value = float(
                settings["world"]["world_HDRIPower"])

            self.render_bouncesTotal.Value = int(
                settings["settings"]["render_bouncesTotal"])
            self.render_bouncesDiffuse.Value = int(
                settings["settings"]["render_bouncesDiffuse"])
            self.render_bouncesGlossy.Value = int(
                settings["settings"]["render_bouncesGlossy"])
            self.render_bouncesTransparency.Value = int(
                settings["settings"]["render_bouncesTransparency"])
            self.render_bouncesTransmission.Value = int(
                settings["settings"]["render_bouncesTransmission"])
            self.render_bouncesVolume.Value = int(
                settings["settings"]["render_bouncesVolume"])
            self.render_clampingDirect.Value = float(
                settings["settings"]["render_clampingDirect"])
            self.render_clampingIndirect.Value = float(
                settings["settings"]["render_clampingIndirect"])
            self.render_Denoising.Checked = bool(
                settings["settings"]["render_Denoising"])

            self.open.Checked = bool(settings["settings"]["open"])
            self.save.Checked = bool(settings["settings"]["save"])
            self.render.Checked = bool(settings["settings"]["render"])
            self.showRender.Checked = bool(settings["settings"]["showRender"])

            loc = settings["settings"]["render_settingWindowPosition"]
            loc = loc.split(",")
            self.Location = drawing.Point(int(loc[0]), int(loc[1]))

        self.DefaultButton = forms.Button(Text='OK')
        self.DefaultButton.Click += self.OnOKButtonClick

        self.AbortButton = forms.Button(Text='Cancel')
        self.AbortButton.Click += self.OnCloseButtonClick

        layout = forms.DynamicLayout()
        layout.Spacing = drawing.Size(0, 1)
        """Box 1: Render"""
        box_1 = forms.GroupBox()
        box_1.Padding = drawing.Padding(1)
        box_1_layout = forms.DynamicLayout()
        box_1_layout.Spacing = drawing.Size(3, 3)
        box_1.Content = box_1_layout

        box_1_layout.AddRow("render_engine", self.render_engine)
        box_1_layout.AddRow("render_scale", self.render_scale)
        box_1_layout.AddRow("samples", self.render_samples)
        """Box 2: Camera"""
        box_2 = forms.GroupBox(Text='Camera')
        box_2.Padding = drawing.Padding(1)
        box_2_layout = forms.DynamicLayout()
        box_2_layout.Spacing = drawing.Size(3, 3)
        box_2.Content = box_2_layout

        box_2_layout.AddRow("Exposure", self.camera_exposure)
        box_2_layout.AddRow("Transparent", self.camera_transparent)
        """Box 3: World"""
        box_3 = forms.GroupBox(Text='World')
        box_3.Padding = drawing.Padding(1)
        box_3_layout = forms.DynamicLayout()
        box_3_layout.Spacing = drawing.Size(3, 3)
        box_3.Content = box_3_layout

        box_3_layout.BeginVertical()
        box_3_layout.AddRow("HDRI", self.world_HDRI)
        box_3_layout.AddRow("HDRI Rotation", self.world_HDRIRotation)
        box_3_layout.EndVertical()
        box_3_layout.AddSeparateRow("Blur", self.world_HDRIBlur, None, "Power",
                                    self.world_HDRIPower)
        """Box 4: Samples"""
        box_4 = forms.GroupBox(Text='Sampling')
        box_4.Padding = drawing.Padding(1)
        box_4_layout = forms.DynamicLayout()
        box_4_layout.Spacing = drawing.Size(3, 3)
        box_4.Content = box_4_layout

        self.box_4_hidden = forms.DynamicLayout(Visible=False)
        self.box_4_hidden.Spacing = drawing.Size(3, 3)

        self.box_4_hidden.AddRow("bouncesTotal", self.render_bouncesTotal)
        self.box_4_hidden.AddRow("bouncesDiffuse", self.render_bouncesDiffuse)
        self.box_4_hidden.AddRow("bouncesGlossy", self.render_bouncesGlossy)
        self.box_4_hidden.AddRow("bouncesTransparency",
                                 self.render_bouncesTransparency)
        self.box_4_hidden.AddRow("bouncesTransmission",
                                 self.render_bouncesTransmission)
        self.box_4_hidden.AddRow("bouncesVolume", self.render_bouncesVolume)
        self.box_4_hidden.AddRow("clampingDirect", self.render_clampingDirect)
        self.box_4_hidden.AddRow("clampingIndirect",
                                 self.render_clampingIndirect)

        self.dropdown_text = forms.Label(Text="Show Sampling Properties")
        self.dropdown_samples = forms.Button(Size=drawing.Size(16, 16))
        self.dropdown_samples.Text = "▼"
        self.dropdown_samples.Font = drawing.Font("Arial", 5)
        self.dropdown_samples.Click += self.dropdown_samples_Click

        box_4_layout.AddSeparateRow(None, self.dropdown_text, None,
                                    self.dropdown_samples, None)
        box_4_layout.AddRow(self.box_4_hidden)
        """Box 5: Output"""
        box_5 = forms.GroupBox(Text='Output')
        box_5.Padding = drawing.Padding(1)
        box_5_layout = forms.DynamicLayout()
        box_5_layout.Spacing = drawing.Size(3, 3)
        box_5.Content = box_5_layout

        box_5_layout.AddRow(self.save, "Save File", self.open, "Open File")
        box_5_layout.AddRow(self.render_Denoising, "Denoising")
        box_5_layout.AddRow(self.render, "Render")
        box_5_layout.AddRow(self.showRender, "Show Render")

        #Add the group boxes to the main interface
        layout.AddRow(box_1)
        layout.AddRow(box_2)
        layout.AddRow(box_3)
        layout.AddRow(box_4)
        layout.AddRow(box_5)
        layout.AddSeparateRow(self.DefaultButton, None, self.AbortButton)

        self.Content = layout