mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-01-24 06:34:45 +00:00
646 lines
19 KiB
Plaintext
646 lines
19 KiB
Plaintext
new GuiControl(UVEditorOverlay, EditorGuiGroup) {
|
|
canSaveDynamicFields = "0";
|
|
Profile = "ToolsGuiOverlayProfile";
|
|
Enabled = "1";
|
|
isContainer = "1";
|
|
HorizSizing = "right";
|
|
VertSizing = "bottom";
|
|
Position = "0 0";
|
|
Extent = "1024 768";
|
|
MinExtent = "8 2";
|
|
canSave = "1";
|
|
Visible = "1";
|
|
hovertime = "1000";
|
|
|
|
new GuiWindowCtrl(UVEditor){
|
|
profile = "ToolsGuiWindowProfile";
|
|
HorizSizing = "center";
|
|
VertSizing = "center";
|
|
resizeWidth = "0";
|
|
resizeHeight = "0";
|
|
canClose = "1";
|
|
canMinimize = "0";
|
|
canMaximize = "0";
|
|
position = "72 98";
|
|
extent =" 453 340";
|
|
MinExtent = "453 340";
|
|
text = "UV Editor";
|
|
closeCommand = "UVEditor.hideDialog();";
|
|
EdgeSnap = "0";
|
|
canCollapse = "0";
|
|
visible = "0";
|
|
|
|
new GuiTextCtrl() {
|
|
text = "0.0";
|
|
maxLength = "1024";
|
|
Margin = "0 0 0 0";
|
|
Padding = "0 0 0 0";
|
|
AnchorTop = "1";
|
|
AnchorBottom = "0";
|
|
AnchorLeft = "1";
|
|
AnchorRight = "0";
|
|
isContainer = "0";
|
|
Profile = "ToolsGuiTextProfile";
|
|
HorizSizing = "right";
|
|
VertSizing = "bottom";
|
|
position = "26 24";
|
|
Extent = "32 14";
|
|
MinExtent = "8 2";
|
|
canSave = "1";
|
|
Visible = "1";
|
|
tooltipprofile = "ToolsGuiToolTipProfile";
|
|
hovertime = "1000";
|
|
canSaveDynamicFields = "0";
|
|
};
|
|
new GuiTextCtrl() {
|
|
text = "U";
|
|
maxLength = "1024";
|
|
Margin = "0 0 0 0";
|
|
Padding = "0 0 0 0";
|
|
AnchorTop = "1";
|
|
AnchorBottom = "0";
|
|
AnchorLeft = "1";
|
|
AnchorRight = "0";
|
|
isContainer = "0";
|
|
Profile = "ToolsGuiTextCenterProfile";
|
|
HorizSizing = "right";
|
|
VertSizing = "bottom";
|
|
position = "138 24";
|
|
Extent = "32 14";
|
|
MinExtent = "8 2";
|
|
canSave = "1";
|
|
Visible = "1";
|
|
tooltipprofile = "ToolsGuiToolTipProfile";
|
|
hovertime = "1000";
|
|
canSaveDynamicFields = "0";
|
|
};
|
|
new GuiTextCtrl() {
|
|
text = "1.0";
|
|
maxLength = "1024";
|
|
Margin = "0 0 0 0";
|
|
Padding = "0 0 0 0";
|
|
AnchorTop = "1";
|
|
AnchorBottom = "0";
|
|
AnchorLeft = "1";
|
|
AnchorRight = "0";
|
|
isContainer = "0";
|
|
Profile = "ToolsGuiTextRightProfile";
|
|
HorizSizing = "right";
|
|
VertSizing = "bottom";
|
|
position = "250 24";
|
|
Extent = "32 14";
|
|
MinExtent = "8 2";
|
|
canSave = "1";
|
|
Visible = "1";
|
|
tooltipprofile = "ToolsGuiToolTipProfile";
|
|
hovertime = "1000";
|
|
canSaveDynamicFields = "0";
|
|
};
|
|
|
|
new GuiTextCtrl() {
|
|
text = "0.0";
|
|
maxLength = "1024";
|
|
Margin = "0 0 0 0";
|
|
Padding = "0 0 0 0";
|
|
AnchorTop = "1";
|
|
AnchorBottom = "0";
|
|
AnchorLeft = "1";
|
|
AnchorRight = "0";
|
|
isContainer = "0";
|
|
Profile = "ToolsGuiTextRightProfile";
|
|
HorizSizing = "right";
|
|
VertSizing = "bottom";
|
|
position = "4 36";
|
|
Extent = "18 14";
|
|
MinExtent = "8 2";
|
|
canSave = "1";
|
|
Visible = "1";
|
|
tooltipprofile = "ToolsGuiToolTipProfile";
|
|
hovertime = "1000";
|
|
canSaveDynamicFields = "0";
|
|
};
|
|
new GuiTextCtrl() {
|
|
text = "V";
|
|
maxLength = "1024";
|
|
Margin = "0 0 0 0";
|
|
Padding = "0 0 0 0";
|
|
AnchorTop = "1";
|
|
AnchorBottom = "0";
|
|
AnchorLeft = "1";
|
|
AnchorRight = "0";
|
|
isContainer = "0";
|
|
Profile = "ToolsGuiTextRightProfile";
|
|
HorizSizing = "right";
|
|
VertSizing = "bottom";
|
|
position = "4 159";
|
|
Extent = "18 14";
|
|
MinExtent = "8 2";
|
|
canSave = "1";
|
|
Visible = "1";
|
|
tooltipprofile = "ToolsGuiToolTipProfile";
|
|
hovertime = "1000";
|
|
canSaveDynamicFields = "0";
|
|
};
|
|
new GuiTextCtrl() {
|
|
text = "1.0";
|
|
maxLength = "1024";
|
|
Margin = "0 0 0 0";
|
|
Padding = "0 0 0 0";
|
|
AnchorTop = "1";
|
|
AnchorBottom = "0";
|
|
AnchorLeft = "1";
|
|
AnchorRight = "0";
|
|
isContainer = "0";
|
|
Profile = "ToolsGuiTextRightProfile";
|
|
HorizSizing = "right";
|
|
VertSizing = "bottom";
|
|
position = "4 282";
|
|
Extent = "18 14";
|
|
MinExtent = "8 2";
|
|
canSave = "1";
|
|
Visible = "1";
|
|
tooltipprofile = "ToolsGuiToolTipProfile";
|
|
hovertime = "1000";
|
|
canSaveDynamicFields = "0";
|
|
};
|
|
|
|
new GuiControl(){
|
|
HorizSizing = "right";
|
|
VertSizing = "bottom";
|
|
profile = "ToolsGuiSolidDefaultProfile";
|
|
position = "25 37";
|
|
extent = "258 258";
|
|
};
|
|
|
|
new GuiBitmapCtrl(){
|
|
internalName = "bitmapPreview";
|
|
HorizSizing = "right";
|
|
VertSizing = "bottom";
|
|
profile = "ToolsGuiDefaultProfile";
|
|
position = "26 38";
|
|
extent = "256 256";
|
|
wrap = "0";
|
|
bitmap = "";
|
|
};
|
|
new GuiRectHandles(){
|
|
internalName = "uvHandles";
|
|
class = "UVEditorRectHandles";
|
|
Profile = "ToolsGuiDefaultProfile";
|
|
HorizSizing = "right";
|
|
VertSizing = "bottom";
|
|
position = "26 38";
|
|
extent = "256 256";
|
|
};
|
|
|
|
new GuiBitmapBorderCtrl() {
|
|
profile = "ToolsGuiGroupBorderProfile";
|
|
horizSizing = "width";
|
|
vertSizing = "bottom";
|
|
position = "26 300";
|
|
extent = "256 30";
|
|
minExtent = "0 0";
|
|
visible = "1";
|
|
setFirstResponder = "0";
|
|
modal = "1";
|
|
helpTag = "0";
|
|
|
|
new GuiTextCtrl() {
|
|
text = "Handle Color:";
|
|
maxLength = "1024";
|
|
Margin = "0 0 0 0";
|
|
Padding = "0 0 0 0";
|
|
AnchorTop = "1";
|
|
AnchorBottom = "0";
|
|
AnchorLeft = "1";
|
|
AnchorRight = "0";
|
|
isContainer = "0";
|
|
Profile = "ToolsGuiTextProfile";
|
|
HorizSizing = "right";
|
|
VertSizing = "bottom";
|
|
position = "10 7";
|
|
Extent = "70 14";
|
|
MinExtent = "8 2";
|
|
canSave = "1";
|
|
Visible = "1";
|
|
tooltipprofile = "ToolsGuiToolTipProfile";
|
|
hovertime = "1000";
|
|
canSaveDynamicFields = "0";
|
|
};
|
|
new GuiPopupMenuCtrlEx(){
|
|
internalName = "colorPopup";
|
|
Profile = "ToolsGuiPopUpMenuProfile";
|
|
Position = "80 5";
|
|
Extent = "126 20";
|
|
HorizSizing = "right";
|
|
VertSizing = "bottom";
|
|
Command = "UVEditor.onColorSelect();";
|
|
reverseTextList = "0";
|
|
};
|
|
};
|
|
|
|
new GuiBitmapBorderCtrl() {
|
|
profile = "ToolsGuiGroupBorderProfile";
|
|
horizSizing = "width";
|
|
vertSizing = "bottom";
|
|
position = "292 38";
|
|
extent = "151 256";
|
|
minExtent = "0 0";
|
|
visible = "1";
|
|
setFirstResponder = "0";
|
|
modal = "1";
|
|
helpTag = "0";
|
|
|
|
new GuiTextCtrl() {
|
|
text = "U:";
|
|
maxLength = "1024";
|
|
Margin = "0 0 0 0";
|
|
Padding = "0 0 0 0";
|
|
AnchorTop = "1";
|
|
AnchorBottom = "0";
|
|
AnchorLeft = "1";
|
|
AnchorRight = "0";
|
|
isContainer = "0";
|
|
Profile = "ToolsGuiTextProfile";
|
|
HorizSizing = "right";
|
|
VertSizing = "bottom";
|
|
position = "10 12";
|
|
Extent = "32 14";
|
|
MinExtent = "8 2";
|
|
canSave = "1";
|
|
Visible = "1";
|
|
tooltipprofile = "ToolsGuiToolTipProfile";
|
|
hovertime = "1000";
|
|
canSaveDynamicFields = "0";
|
|
};
|
|
new GuiTextEditCtrl() {
|
|
internalName = "UVX";
|
|
class = "UVEditorUVTextEdit";
|
|
historySize = "0";
|
|
password = "0";
|
|
tabComplete = "0";
|
|
sinkAllKeyEvents = "0";
|
|
passwordMask = "*";
|
|
maxLength = "1024";
|
|
Margin = "0 0 0 0";
|
|
Padding = "0 0 0 0";
|
|
AnchorTop = "1";
|
|
AnchorBottom = "0";
|
|
AnchorLeft = "1";
|
|
AnchorRight = "0";
|
|
isContainer = "0";
|
|
Profile = "ToolsGuiNumericTextEditProfile";
|
|
HorizSizing = "right";
|
|
VertSizing = "bottom";
|
|
position = "44 10";
|
|
Extent = "64 18";
|
|
MinExtent = "8 2";
|
|
canSave = "1";
|
|
Visible = "1";
|
|
tooltipprofile = "ToolsGuiToolTipProfile";
|
|
hovertime = "1000";
|
|
canSaveDynamicFields = "1";
|
|
};
|
|
new GuiTextCtrl() {
|
|
text = "V:";
|
|
maxLength = "1024";
|
|
Margin = "0 0 0 0";
|
|
Padding = "0 0 0 0";
|
|
AnchorTop = "1";
|
|
AnchorBottom = "0";
|
|
AnchorLeft = "1";
|
|
AnchorRight = "0";
|
|
isContainer = "0";
|
|
Profile = "ToolsGuiTextProfile";
|
|
HorizSizing = "right";
|
|
VertSizing = "bottom";
|
|
position = "10 32";
|
|
Extent = "32 14";
|
|
MinExtent = "8 2";
|
|
canSave = "1";
|
|
Visible = "1";
|
|
tooltipprofile = "ToolsGuiToolTipProfile";
|
|
hovertime = "1000";
|
|
canSaveDynamicFields = "0";
|
|
};
|
|
new GuiTextEditCtrl() {
|
|
internalName = "UVY";
|
|
class = "UVEditorUVTextEdit";
|
|
historySize = "0";
|
|
password = "0";
|
|
tabComplete = "0";
|
|
sinkAllKeyEvents = "0";
|
|
passwordMask = "*";
|
|
maxLength = "1024";
|
|
Margin = "0 0 0 0";
|
|
Padding = "0 0 0 0";
|
|
AnchorTop = "1";
|
|
AnchorBottom = "0";
|
|
AnchorLeft = "1";
|
|
AnchorRight = "0";
|
|
isContainer = "0";
|
|
Profile = "ToolsGuiNumericTextEditProfile";
|
|
HorizSizing = "right";
|
|
VertSizing = "bottom";
|
|
position = "44 30";
|
|
Extent = "64 18";
|
|
MinExtent = "8 2";
|
|
canSave = "1";
|
|
Visible = "1";
|
|
tooltipprofile = "ToolsGuiToolTipProfile";
|
|
hovertime = "1000";
|
|
canSaveDynamicFields = "1";
|
|
};
|
|
new GuiTextCtrl() {
|
|
text = "Width:";
|
|
maxLength = "1024";
|
|
Margin = "0 0 0 0";
|
|
Padding = "0 0 0 0";
|
|
AnchorTop = "1";
|
|
AnchorBottom = "0";
|
|
AnchorLeft = "1";
|
|
AnchorRight = "0";
|
|
isContainer = "0";
|
|
Profile = "ToolsGuiTextProfile";
|
|
HorizSizing = "right";
|
|
VertSizing = "bottom";
|
|
position = "10 52";
|
|
Extent = "32 14";
|
|
MinExtent = "8 2";
|
|
canSave = "1";
|
|
Visible = "1";
|
|
tooltipprofile = "ToolsGuiToolTipProfile";
|
|
hovertime = "1000";
|
|
canSaveDynamicFields = "0";
|
|
};
|
|
new GuiTextEditCtrl() {
|
|
internalName = "UVW";
|
|
class = "UVEditorUVTextEdit";
|
|
historySize = "0";
|
|
password = "0";
|
|
tabComplete = "0";
|
|
sinkAllKeyEvents = "0";
|
|
passwordMask = "*";
|
|
maxLength = "1024";
|
|
Margin = "0 0 0 0";
|
|
Padding = "0 0 0 0";
|
|
AnchorTop = "1";
|
|
AnchorBottom = "0";
|
|
AnchorLeft = "1";
|
|
AnchorRight = "0";
|
|
isContainer = "0";
|
|
Profile = "ToolsGuiNumericTextEditProfile";
|
|
HorizSizing = "right";
|
|
VertSizing = "bottom";
|
|
position = "44 50";
|
|
Extent = "64 18";
|
|
MinExtent = "8 2";
|
|
canSave = "1";
|
|
Visible = "1";
|
|
tooltipprofile = "ToolsGuiToolTipProfile";
|
|
hovertime = "1000";
|
|
canSaveDynamicFields = "1";
|
|
};
|
|
new GuiTextCtrl() {
|
|
text = "Height:";
|
|
maxLength = "1024";
|
|
Margin = "0 0 0 0";
|
|
Padding = "0 0 0 0";
|
|
AnchorTop = "1";
|
|
AnchorBottom = "0";
|
|
AnchorLeft = "1";
|
|
AnchorRight = "0";
|
|
isContainer = "0";
|
|
Profile = "ToolsGuiTextProfile";
|
|
HorizSizing = "right";
|
|
VertSizing = "bottom";
|
|
position = "10 72";
|
|
Extent = "32 14";
|
|
MinExtent = "8 2";
|
|
canSave = "1";
|
|
Visible = "1";
|
|
tooltipprofile = "ToolsGuiToolTipProfile";
|
|
hovertime = "1000";
|
|
canSaveDynamicFields = "0";
|
|
};
|
|
new GuiTextEditCtrl() {
|
|
internalName = "UVH";
|
|
class = "UVEditorUVTextEdit";
|
|
historySize = "0";
|
|
password = "0";
|
|
tabComplete = "0";
|
|
sinkAllKeyEvents = "0";
|
|
passwordMask = "*";
|
|
maxLength = "1024";
|
|
Margin = "0 0 0 0";
|
|
Padding = "0 0 0 0";
|
|
AnchorTop = "1";
|
|
AnchorBottom = "0";
|
|
AnchorLeft = "1";
|
|
AnchorRight = "0";
|
|
isContainer = "0";
|
|
Profile = "ToolsGuiNumericTextEditProfile";
|
|
HorizSizing = "right";
|
|
VertSizing = "bottom";
|
|
position = "44 70";
|
|
Extent = "64 18";
|
|
MinExtent = "8 2";
|
|
canSave = "1";
|
|
Visible = "1";
|
|
tooltipprofile = "ToolsGuiToolTipProfile";
|
|
hovertime = "1000";
|
|
canSaveDynamicFields = "1";
|
|
};
|
|
new GuiButtonCtrl(){
|
|
HorizSizing = "right";
|
|
VertSizing = "top";
|
|
profile = "ToolsGuiButtonProfile";
|
|
position = "44 94";
|
|
extent = "64 20";
|
|
text = "Reset";
|
|
command = "UVEditor.reset();";
|
|
tooltip = "Reset the UV fields to their original values.";
|
|
};
|
|
};
|
|
new GuiButtonCtrl(){
|
|
internalName = "OKButton";
|
|
HorizSizing = "left";
|
|
VertSizing = "top";
|
|
profile = "ToolsGuiButtonProfile";
|
|
position = "292 306";
|
|
extent = "94 24";
|
|
text = "OK";
|
|
command = "UVEditor.apply();";
|
|
Accelerator = "return";
|
|
};
|
|
new GuiButtonCtrl(){
|
|
HorizSizing = "left";
|
|
VertSizing = "top";
|
|
profile = "ToolsGuiButtonProfile";
|
|
position = "391 306";
|
|
extent = "52 24";
|
|
text = "Cancel";
|
|
command = "UVEditor.hideDialog();";
|
|
Accelerator = "escape";
|
|
};
|
|
};
|
|
};
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
function UVEditor::showDialog( %this, %applyCallback, %obj, %uv)
|
|
{
|
|
// Set the select callback
|
|
UVEditor.applyCallback = %applyCallback;
|
|
|
|
// Set the initial UV coordinates
|
|
UVEditor.originalUV = %uv;
|
|
UVEditor-->uvHandles.handleRect = %uv;
|
|
UVEditor.setTextValues(%uv);
|
|
|
|
// Get the preview bitmap. Code copied from Material Selector.
|
|
%material = %obj.material;
|
|
if( %material.toneMap[0] $= "" && %material.diffuseMap[0] $= "" && !isObject(%material.cubemap) )
|
|
{
|
|
%previewImage = "core/images/warnmat";
|
|
}
|
|
else
|
|
{
|
|
if( %material.toneMap[0] !$= "" )
|
|
%previewImage = %material.toneMap[0];
|
|
else if( %material.diffuseMap[0] !$= "" )
|
|
%previewImage = %material.diffuseMap[0];
|
|
else if( %material.cubemap.cubeFace[0] !$= "" )
|
|
%previewImage = %material.cubemap.cubeFace[0];
|
|
|
|
%materialDiffuse = %previewImage;
|
|
%materialPath = %material.getFilename();
|
|
if( strchr( %materialDiffuse, "/") $= "" )
|
|
{
|
|
%k = 0;
|
|
while( strpos( %materialPath, "/", %k ) != -1 )
|
|
{
|
|
%foo = strpos( %materialPath, "/", %k );
|
|
%k = %foo + 1;
|
|
}
|
|
|
|
%foobar = getSubStr( %materialPath , %k , 99 );
|
|
%previewImage = strreplace( %materialPath, %foobar, %previewImage );
|
|
}
|
|
else
|
|
%previewImage = strreplace( %materialPath, %materialPath, %previewImage );
|
|
}
|
|
|
|
UVEditor-->bitmapPreview.setBitmap(%previewImage);
|
|
|
|
// Set up the color popup
|
|
%popup = UVEditor-->colorPopup;
|
|
%popup.clear();
|
|
%popup.add("Default1|255|134|0");
|
|
%popup.add("Default2|0|121|255");
|
|
%popup.add("Black|0|0|0");
|
|
%popup.add("Gray|100|100|100");
|
|
%popup.add("White|255|255|255");
|
|
%popup.add("Red|255|0|0");
|
|
%popup.add("Green|0|255|0");
|
|
%popup.add("Blue|0|0|255");
|
|
%popup.add("Yellow|255|255|0");
|
|
%popup.add("Magenta|255|0|255");
|
|
%popup.add("Cyan|0|255|255");
|
|
%popup.setSelected(EditorSettings.value("WorldEditor/Color/uvEditorHandleColor"));
|
|
UVEditor-->uvHandles.useCustomColor = true;
|
|
UVEditor-->uvHandles.handleColor = %popup.getColorById(%popup.getSelected());
|
|
|
|
Canvas.pushDialog(UVEditorOverlay);
|
|
UVEditor.setVisible(1);
|
|
}
|
|
|
|
function UVEditor::hideDialog( %this )
|
|
{
|
|
UVEditor.setVisible(0);
|
|
Canvas.popDialog(UVEditorOverlay);
|
|
}
|
|
|
|
function UVEditor::apply( %this )
|
|
{
|
|
eval( "" @ UVEditor.applyCallback @ "(\"" @ UVEditor-->uvHandles.handleRect @ "\");");
|
|
UVEditor.hideDialog();
|
|
}
|
|
|
|
function UVEditor::reset( %this )
|
|
{
|
|
UVEditor-->uvHandles.handleRect = UVEditor.originalUV;
|
|
UVEditor.setTextValues(UVEditor.originalUV);
|
|
}
|
|
|
|
function UVEditor::setTextValues( %this, %uv )
|
|
{
|
|
UVEditor-->UVX.setText( getWord(%uv, 0) );
|
|
UVEditor-->UVY.setText( getWord(%uv, 1) );
|
|
UVEditor-->UVW.setText( getWord(%uv, 2) );
|
|
UVEditor-->UVH.setText( getWord(%uv, 3) );
|
|
}
|
|
|
|
function UVEditor::onColorSelect( %this )
|
|
{
|
|
UVEditor-->uvHandles.useCustomColor = true;
|
|
%sel = $ThisControl.getSelected();
|
|
UVEditor-->uvHandles.handleColor = $ThisControl.getColorById(%sel);
|
|
EditorSettings.setValue( "WorldEditor/Color/uvEditorHandleColor", %sel );
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
function UVEditorRectHandles::onHandleRectChange( %this )
|
|
{
|
|
%uv = UVEditor-->uvHandles.handleRect;
|
|
UVEditor.setTextValues(%uv);
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
function UVEditorUVTextEdit::onValidate( %this )
|
|
{
|
|
%u = UVEditor-->UVX.getValue();
|
|
%v = UVEditor-->UVY.getValue();
|
|
%w = UVEditor-->UVW.getValue();
|
|
%h = UVEditor-->UVH.getValue();
|
|
|
|
// Check limits
|
|
|
|
if(%u < 0)
|
|
%u = 0;
|
|
if(%u > 1)
|
|
%u = 1;
|
|
if(%v < 0)
|
|
%v = 0;
|
|
if(%v > 1)
|
|
%v = 1;
|
|
|
|
if(%w < 0)
|
|
%w = 0;
|
|
if(%w > 1)
|
|
%w = 1;
|
|
if(%h < 0)
|
|
%h = 0;
|
|
if(%h > 1)
|
|
%h = 1;
|
|
|
|
if((%u+%w) > 1)
|
|
%w = 1 - %u;
|
|
if((%v+%h) > 1)
|
|
%h = 1 - %v;
|
|
|
|
// Apply values
|
|
UVEditor-->UVX.setText( %u );
|
|
UVEditor-->UVY.setText( %v );
|
|
UVEditor-->UVW.setText( %w );
|
|
UVEditor-->UVH.setText( %h );
|
|
|
|
UVEditor-->uvHandles.handleRect = %u SPC %v SPC %w SPC %h;
|
|
}
|
|
|
|
function UVEditorUVTextEdit::onGainFirstResponder( %this )
|
|
{
|
|
%this.selectAllText();
|
|
}
|