CommonBakeMap plug-ins define their own UI using MAXScript rollout definition syntax, which gets displayed in the Bake To Texture dialog, under Maps.
This UI uses Qt as the underlying display technology, and must be defined using the extendedUI:true keyword. A sub-set of rollout controls are mapped to corresponding Qt widgets (listed below), no other controls should be used in a CommonBakeMap UI. These controls have their standard properties, plus some specific properties mapped to Qt properties (listed below). Properties on the Qt widget are also available, when they are of these basic types: Bool, Int, Float, Double, Size, SizeF, and String. Signals of these types are also available, but need to be invoked using identically named MAXScript handlers.
Standard auto mapped Qt widget properties like toolTip, visible, enabled are not covered by this documentation. For the full property description, refer to the Qt documentation.
Button
This control is mapped to QPushButton.
text : stringThe text to display on the button.
iconName : stringA 3ds Max built-in multi-resolution icon name to display on the button. See the "Icon Guide" in the 3ds Max SDK Help for a list of available icons.
Example:
button myButton iconName:"Common/Hand"MapButton
This control is mapped to QPushButton.
map : TextureMapThe texture map assigned to the button.
MaterialButton
This control is mapped to QPushButton.
material : MaterialThe material assigned to the button.
CheckBox
This control is mapped to QCheckBox
checked : boolIndicates if the checkbox is checked.
iconName : stringA 3ds Max built-in multi-resolution icon name to display on the button. See the "Icon Guide" in the 3ds Max SDK Help for a list of available icons.
DropDownList
This control is mapped to QComboBox.
items : array of stringThe array of text strings that are the items displayed in the combobox list.
text : stringThe text in the edit box.
selection : intThe 1-based number of the currently selected item in the list. Defaults to 1.
selected : stringThe text of the currently selected item. Can be used to replace individual items without resetting the entire items array. If the items list is an empty array, this value is undefined.
Spinner
This control is mapped to QSpinBox.
type: #float | #integer | #worldunitsThe type of the spinner, either float, integer or world units. The default is #float.
value: float or integerThe value of the spinner.
scale : floatThe scale of the spinner specifies the smallest value increment. Defaults to 0.1 for floats, 1 for integers.
range : point3A Point3 value containing the minimum, maximum, and initial values for the spinner in the x, y, and z components, respectively. Defaults to [0,100,0].
Label
This control is mapped to QLabel.
text : stringThe text of the label.
Two Qt layouts are available for laying out controls in the Bake To Texture UI.
GridLayout
The GridLayout positions UI controls in a grid of rows and columns.
This layout maps to QGridLayout.
Layout data:
rowStretch : array of intSets the stretch factor for the rows as defined by the single array entries. Rows with a larger factor will receive more of the available layout space. The default stretch factor for all rows is 0, which means no stretching at all.
columnStretch : array of intSets the stretch factor for the columns as defined by the single array entries. Columns with a larger factor will receive more of the available layout space. The default stretch factor for all columns is 0, which means no stretching at all.
spacing : intThe spacing between UI controls that are positioned next to each other. If a vertical spacing is defined which is unequal to the horizontal spacing, the spacing value is -1. The value is dpi scaled.
horzSpacing : intThe spacing between UI controls that are positioned side by side. The value is dpi scaled.
vertSpacing : intThe spacing between UI controls that are positioned on top of each other. The value is dpi scaled.
Layout item data:
The properties in this section need to be applied on a UI control that gets embedded in a GridLayout e.g. a Button.
row : intThe row in which the UI control should be placed. This is a zero-based index.
column : intThe column in which the UI control should be placed. This is a zero-based index.
rowSpan : intThe number of rows over which the UI control should span. The default is 1.
columnSpan : intThe number of columns over which the UI control should span. The default is 1.
align : #left | #center | #rightThe horizontal alignment of the UI control in the grid cell.
valign : #top | #center | #bottomThe vertical alignment of the UI control in the grid cell.
layoutParent: layout rollout controlFor nested layouts this defines the layout parent to which a UI control belongs.
BoxLayout
The BoxLayout positions UI controls in a line depending on its orientation, which can be either horizontal or vertical.
This layout is mapped to QBoxLayout.
Layout data:
orientation: #vertical | #horizontalThe layout direction of the UI controls handled by this layout.
stretch : array of intSets the stretch factor for the each layout slot as defined by the single array entries. Slots with a larger factor receive more of the available layout space. The default stretch factor for all slots is 0, which means no stretching at all.
spacing : intThe spacing between UI controls that are positioned next to each other. The value is dpi scaled.
Layout item data:
The properties in this section need to be applied on a UI control that gets embedded in a BoxLayout e.g. a Button.
stretch : intThe stretch factor for the UI control in the box layout slot. Note, that stretch factors defined on the box layout itself will discard the individual setting on layout item.
align : #left | #center | #rightThe horizontal alignment of the UI control in the box layout slot.
valign : #top | #center | #bottomThe vertical alignment of the UI control in the box layout slot.
layoutParent: layout rollout controlFor nested layouts, this defines the layout parent to which a UI control belongs.