mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-07-12 15:14:35 +00:00
commit
fa6bdd9027
2 changed files with 83 additions and 1 deletions
|
|
@ -897,6 +897,64 @@ function EditorDropTypeMenu::setupDefaultState(%this)
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
function EditorSnapToMenu::onSelectItem(%this, %id, %text)
|
||||||
|
{
|
||||||
|
EWorldEditor.SnapTo(%id);
|
||||||
|
}
|
||||||
|
|
||||||
|
function EditorSnapToMenu::setupDefaultState(%this)
|
||||||
|
{
|
||||||
|
Parent::setupDefaultState(%this);
|
||||||
|
}
|
||||||
|
|
||||||
|
function WorldEditor::snapTo(%this, %id)
|
||||||
|
{
|
||||||
|
if(%this.getSelectionSize() > 2)
|
||||||
|
{
|
||||||
|
error("Please select two objects before selecting a Snap To function.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
%objTarget = %this.getSelectedObject(0);
|
||||||
|
%objToSnap = %this.getSelectedObject(%this.getSelectionSize()-1);
|
||||||
|
|
||||||
|
switch$(%id)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
%objToSnap.setTransform(setWord(%objToSnap.getTransform(), 0, getWord(%objTarget.getTransform(), 0)));
|
||||||
|
case 1:
|
||||||
|
%objTargetXEdge = getWord(%objTarget.getTransform(), 0) + getWord(%objTarget.getObjectBox(), 0);
|
||||||
|
%objToSnapXEdge = %objTargetXEdge - getWord(%objToSnap.getObjectBox(), 3);
|
||||||
|
%objToSnap.setTransform(setWord(%objToSnap.getTransform(), 0, %objToSnapXEdge));
|
||||||
|
case 2:
|
||||||
|
%objTargetXEdge = getWord(%objTarget.getTransform(), 0) + getWord(%objTarget.getObjectBox(), 3);
|
||||||
|
%objToSnapXEdge = %objTargetXEdge - getWord(%objToSnap.getObjectBox(), 0);
|
||||||
|
%objToSnap.setTransform(setWord(%objToSnap.getTransform(), 0, %objToSnapXEdge));
|
||||||
|
case 3:
|
||||||
|
%objToSnap.setTransform(setWord(%objToSnap.getTransform(), 1, getWord(%objTarget.getTransform(), 1)));
|
||||||
|
case 4:
|
||||||
|
%objTargetXEdge = getWord(%objTarget.getTransform(), 1) + getWord(%objTarget.getObjectBox(), 1);
|
||||||
|
%objToSnapXEdge = %objTargetXEdge - getWord(%objToSnap.getObjectBox(), 4);
|
||||||
|
%objToSnap.setTransform(setWord(%objToSnap.getTransform(), 1, %objToSnapXEdge));
|
||||||
|
case 5:
|
||||||
|
%objTargetXEdge = getWord(%objTarget.getTransform(), 1) + getWord(%objTarget.getObjectBox(), 4);
|
||||||
|
%objToSnapXEdge = %objTargetXEdge - getWord(%objToSnap.getObjectBox(), 1);
|
||||||
|
%objToSnap.setTransform(setWord(%objToSnap.getTransform(), 1, %objToSnapXEdge));
|
||||||
|
case 6:
|
||||||
|
%objToSnap.setTransform(setWord(%objToSnap.getTransform(), 2, getWord(%objTarget.getTransform(), 2)));
|
||||||
|
case 7:
|
||||||
|
%objTargetXEdge = getWord(%objTarget.getTransform(), 2) + getWord(%objTarget.getObjectBox(), 2);
|
||||||
|
%objToSnapXEdge = %objTargetXEdge - getWord(%objToSnap.getObjectBox(), 5);
|
||||||
|
%objToSnap.setTransform(setWord(%objToSnap.getTransform(), 2, %objToSnapXEdge));
|
||||||
|
case 8:
|
||||||
|
%objTargetXEdge = getWord(%objTarget.getTransform(), 2) + getWord(%objTarget.getObjectBox(), 5);
|
||||||
|
%objToSnapXEdge = %objTargetXEdge - getWord(%objToSnap.getObjectBox(), 2);
|
||||||
|
%objToSnap.setTransform(setWord(%objToSnap.getTransform(), 2, %objToSnapXEdge));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
function EditorAlignBoundsMenu::onSelectItem(%this, %id, %text)
|
function EditorAlignBoundsMenu::onSelectItem(%this, %id, %text)
|
||||||
{
|
{
|
||||||
// Have the editor align all selected objects by the selected bounds.
|
// Have the editor align all selected objects by the selected bounds.
|
||||||
|
|
|
||||||
|
|
@ -233,8 +233,32 @@ function EditorGui::buildMenus(%this)
|
||||||
Item[15] = "Manage Bookmarks..." TAB "Ctrl-Shift B" TAB "EditorGui.toggleCameraBookmarkWindow();";
|
Item[15] = "Manage Bookmarks..." TAB "Ctrl-Shift B" TAB "EditorGui.toggleCameraBookmarkWindow();";
|
||||||
item[16] = "Jump to Bookmark" TAB %this.cameraBookmarksMenu;
|
item[16] = "Jump to Bookmark" TAB %this.cameraBookmarksMenu;
|
||||||
};
|
};
|
||||||
|
|
||||||
%this.menuBar.insert(%cameraMenu);
|
%this.menuBar.insert(%cameraMenu);
|
||||||
|
|
||||||
|
// Snap Menu
|
||||||
|
%snapToMenu = new PopupMenu()
|
||||||
|
{
|
||||||
|
superClass = "MenuBuilder";
|
||||||
|
class = "EditorSnapToMenu";
|
||||||
|
|
||||||
|
barTitle = "SnapTo";
|
||||||
|
|
||||||
|
// The onSelectItem() callback for this menu re-purposes the command field
|
||||||
|
// as the MenuBuilder version is not used.
|
||||||
|
item[0] = "Snap 2nd Object To 1st X" TAB "" TAB "X";
|
||||||
|
item[1] = "Snap 2nd Object To 1st X+" TAB "" TAB "X+";
|
||||||
|
item[2] = "Snap 2nd Object To 1st X-" TAB "" TAB "X-";
|
||||||
|
item[3] = "Snap 2nd Object To 1st Y" TAB "" TAB "Y";
|
||||||
|
item[4] = "Snap 2nd Object to 1st Y+" TAB "" TAB "Y+";
|
||||||
|
item[5] = "Snap 2nd Object to 1st Y-" TAB "" TAB "Y-";
|
||||||
|
item[6] = "Snap 2nd Object To 1st Z" TAB "" TAB "Z";
|
||||||
|
item[7] = "Snap 2nd Object to 1st Z+" TAB "" TAB "Z+";
|
||||||
|
item[8] = "Snap 2nd Object to 1st Z-" TAB "" TAB "Z-";
|
||||||
|
|
||||||
|
};
|
||||||
|
%this.menuBar.insert(%snapToMenu);
|
||||||
|
|
||||||
// Editors Menu
|
// Editors Menu
|
||||||
%editorsMenu = new PopupMenu()
|
%editorsMenu = new PopupMenu()
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue