Work towards redoing some of the UX has begun, affecting our side-bar, the
way we spawn and manipulate objects... etc. Mail the feedback.
|
@ -89,6 +89,9 @@ enum EManipulatorMode
|
||||||
eScale,
|
eScale,
|
||||||
eDrag,
|
eDrag,
|
||||||
eClip,
|
eClip,
|
||||||
|
eCreate,
|
||||||
|
eEntSpawn,
|
||||||
|
ePatchSpawn
|
||||||
};
|
};
|
||||||
|
|
||||||
virtual void SetMode( EMode mode ) = 0;
|
virtual void SetMode( EMode mode ) = 0;
|
||||||
|
|
|
@ -1543,7 +1543,7 @@ void Selection_Clone_MakeUnique()
|
||||||
NudgeSelection(eNudgeDown, GetGridSize(), GlobalXYWnd_getCurrentViewType());
|
NudgeSelection(eNudgeDown, GetGridSize(), GlobalXYWnd_getCurrentViewType());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
void ScaleMode();
|
||||||
// called when the escape key is used (either on the main window or on an inspector)
|
// called when the escape key is used (either on the main window or on an inspector)
|
||||||
void Selection_Deselect()
|
void Selection_Deselect()
|
||||||
{
|
{
|
||||||
|
@ -1561,6 +1561,11 @@ void Selection_Deselect()
|
||||||
GlobalSelectionSystem().setSelectedAll(false);
|
GlobalSelectionSystem().setSelectedAll(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (GlobalSelectionSystem().ManipulatorMode() != SelectionSystem::eCreate)
|
||||||
|
if (GlobalSelectionSystem().ManipulatorMode() != SelectionSystem::eEntSpawn)
|
||||||
|
if (GlobalSelectionSystem().ManipulatorMode() != SelectionSystem::ePatchSpawn)
|
||||||
|
ScaleMode();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1614,6 +1619,22 @@ void ClipperToolExport(const Callback<void(bool)> &importCallback)
|
||||||
importCallback(GlobalSelectionSystem().ManipulatorMode() == SelectionSystem::eClip);
|
importCallback(GlobalSelectionSystem().ManipulatorMode() == SelectionSystem::eClip);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CreateToolExport(const Callback<void(bool)> &importCallback)
|
||||||
|
{
|
||||||
|
importCallback(GlobalSelectionSystem().ManipulatorMode() == SelectionSystem::eCreate);
|
||||||
|
}
|
||||||
|
|
||||||
|
void CreateEToolExport(const Callback<void(bool)> &importCallback)
|
||||||
|
{
|
||||||
|
importCallback(GlobalSelectionSystem().ManipulatorMode() == SelectionSystem::eEntSpawn);
|
||||||
|
}
|
||||||
|
|
||||||
|
void CreatePToolExport(const Callback<void(bool)> &importCallback)
|
||||||
|
{
|
||||||
|
importCallback(GlobalSelectionSystem().ManipulatorMode() == SelectionSystem::ePatchSpawn);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
FreeCaller<void(const Callback<void(bool)> &), TranslateToolExport> g_translatemode_button_caller;
|
FreeCaller<void(const Callback<void(bool)> &), TranslateToolExport> g_translatemode_button_caller;
|
||||||
Callback<void(const Callback<void(bool)> &)> g_translatemode_button_callback(g_translatemode_button_caller);
|
Callback<void(const Callback<void(bool)> &)> g_translatemode_button_callback(g_translatemode_button_caller);
|
||||||
ToggleItem g_translatemode_button(g_translatemode_button_callback);
|
ToggleItem g_translatemode_button(g_translatemode_button_callback);
|
||||||
|
@ -1634,6 +1655,18 @@ FreeCaller<void(const Callback<void(bool)> &), ClipperToolExport> g_clipper_butt
|
||||||
Callback<void(const Callback<void(bool)> &)> g_clipper_button_callback(g_clipper_button_caller);
|
Callback<void(const Callback<void(bool)> &)> g_clipper_button_callback(g_clipper_button_caller);
|
||||||
ToggleItem g_clipper_button(g_clipper_button_callback);
|
ToggleItem g_clipper_button(g_clipper_button_callback);
|
||||||
|
|
||||||
|
FreeCaller<void(const Callback<void(bool)> &), CreateToolExport> g_create_button_caller;
|
||||||
|
Callback<void(const Callback<void(bool)> &)> g_create_button_callback(g_create_button_caller);
|
||||||
|
ToggleItem g_create_button(g_create_button_callback);
|
||||||
|
|
||||||
|
FreeCaller<void(const Callback<void(bool)> &), CreateEToolExport> g_createE_button_caller;
|
||||||
|
Callback<void(const Callback<void(bool)> &)> g_createE_button_callback(g_createE_button_caller);
|
||||||
|
ToggleItem g_createE_button(g_createE_button_callback);
|
||||||
|
|
||||||
|
FreeCaller<void(const Callback<void(bool)> &), CreatePToolExport> g_createP_button_caller;
|
||||||
|
Callback<void(const Callback<void(bool)> &)> g_createP_button_callback(g_createP_button_caller);
|
||||||
|
ToggleItem g_createP_button(g_createP_button_callback);
|
||||||
|
|
||||||
void ToolChanged()
|
void ToolChanged()
|
||||||
{
|
{
|
||||||
g_translatemode_button.update();
|
g_translatemode_button.update();
|
||||||
|
@ -1641,10 +1674,12 @@ void ToolChanged()
|
||||||
g_scalemode_button.update();
|
g_scalemode_button.update();
|
||||||
g_dragmode_button.update();
|
g_dragmode_button.update();
|
||||||
g_clipper_button.update();
|
g_clipper_button.update();
|
||||||
|
g_create_button.update();
|
||||||
|
g_createE_button.update();
|
||||||
|
g_createP_button.update();
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *const c_ResizeMode_status = "Drag Tool: move and resize objects";
|
const char *const c_ResizeMode_status = "Drag Tool: move and resize objects";
|
||||||
|
|
||||||
void DragMode()
|
void DragMode()
|
||||||
{
|
{
|
||||||
if (g_currentToolMode == DragMode && g_defaultToolMode != DragMode) {
|
if (g_currentToolMode == DragMode && g_defaultToolMode != DragMode) {
|
||||||
|
@ -1662,6 +1697,63 @@ void DragMode()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const char *const c_CreateMode_status = "Create Tool: draw brush models";
|
||||||
|
void CreateMode()
|
||||||
|
{
|
||||||
|
Selection_Deselect();
|
||||||
|
if (g_currentToolMode == CreateMode && g_defaultToolMode != CreateMode) {
|
||||||
|
g_defaultToolMode();
|
||||||
|
} else {
|
||||||
|
g_currentToolMode = CreateMode;
|
||||||
|
g_currentToolModeSupportsComponentEditing = true;
|
||||||
|
|
||||||
|
OnClipMode(false);
|
||||||
|
|
||||||
|
Sys_Status(c_CreateMode_status);
|
||||||
|
GlobalSelectionSystem().SetManipulatorMode(SelectionSystem::eCreate);
|
||||||
|
ToolChanged();
|
||||||
|
ModeChangeNotify();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const char *const c_CreateEMode_status = "Create Entity Tool: spawn point entities";
|
||||||
|
void CreateEMode()
|
||||||
|
{
|
||||||
|
Selection_Deselect();
|
||||||
|
if (g_currentToolMode == CreateEMode && g_defaultToolMode != CreateEMode) {
|
||||||
|
g_defaultToolMode();
|
||||||
|
} else {
|
||||||
|
g_currentToolMode = CreateEMode;
|
||||||
|
g_currentToolModeSupportsComponentEditing = true;
|
||||||
|
|
||||||
|
OnClipMode(false);
|
||||||
|
|
||||||
|
Sys_Status(c_CreateEMode_status);
|
||||||
|
GlobalSelectionSystem().SetManipulatorMode(SelectionSystem::eEntSpawn);
|
||||||
|
ToolChanged();
|
||||||
|
ModeChangeNotify();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const char *const c_CreatePMode_status = "Create Patch Tool: spawn patches";
|
||||||
|
void CreatePMode()
|
||||||
|
{
|
||||||
|
Selection_Deselect();
|
||||||
|
if (g_currentToolMode == CreatePMode && g_defaultToolMode != CreatePMode) {
|
||||||
|
g_defaultToolMode();
|
||||||
|
} else {
|
||||||
|
g_currentToolMode = CreatePMode;
|
||||||
|
g_currentToolModeSupportsComponentEditing = true;
|
||||||
|
|
||||||
|
OnClipMode(false);
|
||||||
|
|
||||||
|
Sys_Status(c_CreatePMode_status);
|
||||||
|
GlobalSelectionSystem().SetManipulatorMode(SelectionSystem::ePatchSpawn);
|
||||||
|
ToolChanged();
|
||||||
|
ModeChangeNotify();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
const char *const c_TranslateMode_status = "Translate Tool: translate objects and components";
|
const char *const c_TranslateMode_status = "Translate Tool: translate objects and components";
|
||||||
|
|
||||||
|
@ -2507,9 +2599,12 @@ void Patch_registerShortcuts()
|
||||||
|
|
||||||
void Manipulators_registerShortcuts()
|
void Manipulators_registerShortcuts()
|
||||||
{
|
{
|
||||||
|
toggle_add_accelerator("MouseCreate");
|
||||||
|
toggle_add_accelerator("MouseCreateE");
|
||||||
|
toggle_add_accelerator("MouseCreateP");
|
||||||
toggle_add_accelerator("MouseRotate");
|
toggle_add_accelerator("MouseRotate");
|
||||||
toggle_add_accelerator("MouseTranslate");
|
toggle_add_accelerator("MouseTranslate");
|
||||||
toggle_add_accelerator("MouseScale");
|
toggle_add_accelerator("MouseSelect");
|
||||||
toggle_add_accelerator("MouseDrag");
|
toggle_add_accelerator("MouseDrag");
|
||||||
toggle_add_accelerator("ToggleClipper");
|
toggle_add_accelerator("ToggleClipper");
|
||||||
}
|
}
|
||||||
|
@ -2578,6 +2673,10 @@ void File_constructToolbar(ui::Toolbar toolbar)
|
||||||
|
|
||||||
void UndoRedo_constructToolbar(ui::Toolbar toolbar)
|
void UndoRedo_constructToolbar(ui::Toolbar toolbar)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
toolbar_append_toggle_button(toolbar, "Select Vertices (V)", "side_vertices.xpm", "DragVertices");
|
||||||
|
toolbar_append_toggle_button(toolbar, "Select Edges (E)", "side_edges.xpm", "DragEdges");
|
||||||
|
toolbar_append_toggle_button(toolbar, "Select Faces (F)", "side_faces.xpm", "DragFaces");
|
||||||
toolbar_append_button(toolbar, "Undo (CTRL + Z)", "undo.xpm", "Undo");
|
toolbar_append_button(toolbar, "Undo (CTRL + Z)", "undo.xpm", "Undo");
|
||||||
toolbar_append_button(toolbar, "Redo (CTRL + Y)", "redo.xpm", "Redo");
|
toolbar_append_button(toolbar, "Redo (CTRL + Y)", "redo.xpm", "Redo");
|
||||||
}
|
}
|
||||||
|
@ -2630,10 +2729,11 @@ void XYWnd_constructToolbar(ui::Toolbar toolbar)
|
||||||
|
|
||||||
void Manipulators_constructToolbar(ui::Toolbar toolbar)
|
void Manipulators_constructToolbar(ui::Toolbar toolbar)
|
||||||
{
|
{
|
||||||
toolbar_append_toggle_button(toolbar, "Translate (W)", "select_mousetranslate.xpm", "MouseTranslate");
|
toolbar_append_toggle_button(toolbar, "Select", "select_mousescale.xpm", "MouseSelect");
|
||||||
toolbar_append_toggle_button(toolbar, "Rotate (R)", "select_mouserotate.xpm", "MouseRotate");
|
toolbar_append_toggle_button(toolbar, "Translate", "select_mousetranslate.xpm", "MouseTranslate");
|
||||||
toolbar_append_toggle_button(toolbar, "Scale", "select_mousescale.xpm", "MouseScale");
|
toolbar_append_toggle_button(toolbar, "Rotate", "select_mouserotate.xpm", "MouseRotate");
|
||||||
toolbar_append_toggle_button(toolbar, "Resize (Q)", "select_mouseresize.xpm", "MouseDrag");
|
toolbar_append_toggle_button(toolbar, "Resize", "select_mouseresize.xpm", "MouseDrag");
|
||||||
|
toolbar_append_toggle_button(toolbar, "Create", "select_mousecreate.xpm", "MouseCreate");
|
||||||
|
|
||||||
Clipper_constructToolbar(toolbar);
|
Clipper_constructToolbar(toolbar);
|
||||||
}
|
}
|
||||||
|
@ -2737,22 +2837,20 @@ ui::Toolbar create_main_sidebar()
|
||||||
toolbar.add(btn);
|
toolbar.add(btn);
|
||||||
};
|
};
|
||||||
|
|
||||||
toolbar_append_toggle_button(toolbar, "Select Vertices (V)", "side_vertices.xpm", "DragVertices");
|
toolbar_append_toggle_button(toolbar, "Select", "side_select.png", "MouseSelect");
|
||||||
toolbar_append_toggle_button(toolbar, "Select Edges (E)", "side_edges.xpm", "DragEdges");
|
toolbar_append_toggle_button(toolbar, "Translate", "side_move.png", "MouseTranslate");
|
||||||
toolbar_append_toggle_button(toolbar, "Select Faces (F)", "side_faces.xpm", "DragFaces");
|
toolbar_append_toggle_button(toolbar, "Rotate", "side_rotate.png", "MouseRotate");
|
||||||
|
toolbar_append_toggle_button(toolbar, "Resize", "side_scale.png", "MouseDrag");
|
||||||
|
toolbar_append_toggle_button(toolbar, "Clipper", "side_cut.png", "ToggleClipper");
|
||||||
space();
|
space();
|
||||||
toolbar_append_toggle_button(toolbar, "Drag (Q)", "side_resize.xpm", "MouseDrag");
|
toolbar_append_toggle_button(toolbar, "Create", "side_brush.png", "MouseCreate");
|
||||||
toolbar_append_toggle_button(toolbar, "Translate (W)", "side_transform.xpm", "MouseTranslate");
|
toolbar_append_toggle_button(toolbar, "Create Entity", "side_entities.png", "MouseCreateE");
|
||||||
toolbar_append_toggle_button(toolbar, "Rotate (R)", "side_rotate.xpm", "MouseRotate");
|
toolbar_append_toggle_button(toolbar, "Create Patch", "side_patch.png", "MouseCreateP");
|
||||||
toolbar_append_toggle_button(toolbar, "Scale", "side_scale.xpm", "MouseScale");
|
space();
|
||||||
toolbar_append_toggle_button(toolbar, "Clipper (X)", "side_clipper.xpm", "ToggleClipper");
|
toolbar_append_button(toolbar, "Texture Browser", "side_tex.png", "ToggleTextures");
|
||||||
space();
|
toolbar_append_button(toolbar, "Entity Inspector", "side_entspec.png", "ToggleEntityInspector");
|
||||||
toolbar_append_button(toolbar, "Entity Inspector (N)", "side_entities.xpm", "ToggleEntityInspector");
|
toolbar_append_button(toolbar, "Surface Inspector", "side_surfspec.png", "SurfaceInspector");
|
||||||
toolbar_append_button(toolbar, "Texture Browser (T)", "side_textures.xpm", "ToggleTextures");
|
toolbar_append_button(toolbar, "Patch Inspector", "side_patchspec.png", "PatchInspector");
|
||||||
toolbar_append_button(toolbar, "Surface Inspector (S)", "side_surface.xpm", "SurfaceInspector");
|
|
||||||
toolbar_append_button(toolbar, "Patch Inspector (SHIFT + S)", "side_patch.xpm", "PatchInspector");
|
|
||||||
space();
|
|
||||||
toolbar_append_button(toolbar, "Find Brush", "side_find.xpm", "FindBrush");
|
|
||||||
|
|
||||||
return toolbar;
|
return toolbar;
|
||||||
}
|
}
|
||||||
|
@ -3176,7 +3274,7 @@ void MainFrame::Create()
|
||||||
SetActiveXY(m_pXYWnd);
|
SetActiveXY(m_pXYWnd);
|
||||||
AddGridChangeCallback(SetGridStatusCaller(*this));
|
AddGridChangeCallback(SetGridStatusCaller(*this));
|
||||||
AddGridChangeCallback(ReferenceCaller<MainFrame, void(), XY_UpdateAllWindows>(*this));
|
AddGridChangeCallback(ReferenceCaller<MainFrame, void(), XY_UpdateAllWindows>(*this));
|
||||||
g_defaultToolMode = DragMode;
|
g_defaultToolMode = ScaleMode;
|
||||||
g_defaultToolMode();
|
g_defaultToolMode();
|
||||||
SetStatusText(m_command_status, c_TranslateMode_status);
|
SetStatusText(m_command_status, c_TranslateMode_status);
|
||||||
EverySecondTimer_enable();
|
EverySecondTimer_enable();
|
||||||
|
@ -3437,9 +3535,12 @@ void MainFrame_Construct()
|
||||||
ToggleItem::AddCallbackCaller(g_translatemode_button), Accelerator('W'));
|
ToggleItem::AddCallbackCaller(g_translatemode_button), Accelerator('W'));
|
||||||
GlobalToggles_insert("MouseRotate", makeCallbackF(RotateMode), ToggleItem::AddCallbackCaller(g_rotatemode_button),
|
GlobalToggles_insert("MouseRotate", makeCallbackF(RotateMode), ToggleItem::AddCallbackCaller(g_rotatemode_button),
|
||||||
Accelerator('R'));
|
Accelerator('R'));
|
||||||
GlobalToggles_insert("MouseScale", makeCallbackF(ScaleMode), ToggleItem::AddCallbackCaller(g_scalemode_button));
|
GlobalToggles_insert("MouseSelect", makeCallbackF(ScaleMode), ToggleItem::AddCallbackCaller(g_scalemode_button));
|
||||||
GlobalToggles_insert("MouseDrag", makeCallbackF(DragMode), ToggleItem::AddCallbackCaller(g_dragmode_button),
|
GlobalToggles_insert("MouseDrag", makeCallbackF(DragMode), ToggleItem::AddCallbackCaller(g_dragmode_button),
|
||||||
Accelerator('Q'));
|
Accelerator('Q'));
|
||||||
|
GlobalToggles_insert("MouseCreate", makeCallbackF(CreateMode), ToggleItem::AddCallbackCaller(g_create_button));
|
||||||
|
GlobalToggles_insert("MouseCreateE", makeCallbackF(CreateEMode), ToggleItem::AddCallbackCaller(g_createE_button));
|
||||||
|
GlobalToggles_insert("MouseCreateP", makeCallbackF(CreatePMode), ToggleItem::AddCallbackCaller(g_createP_button));
|
||||||
|
|
||||||
GlobalCommands_insert("ColorSchemeWS", makeCallbackF(ColorScheme_WorldSpawn));
|
GlobalCommands_insert("ColorSchemeWS", makeCallbackF(ColorScheme_WorldSpawn));
|
||||||
GlobalCommands_insert("ColorSchemeOriginal", makeCallbackF(ColorScheme_Original));
|
GlobalCommands_insert("ColorSchemeOriginal", makeCallbackF(ColorScheme_Original));
|
||||||
|
|
|
@ -607,6 +607,8 @@ ui::Window PatchInspector::BuildDialog()
|
||||||
global_accel_connect_window(window);
|
global_accel_connect_window(window);
|
||||||
|
|
||||||
window_connect_focus_in_clear_focus_widget(window);
|
window_connect_focus_in_clear_focus_widget(window);
|
||||||
|
|
||||||
|
gtk_window_set_resizable(window, FALSE);
|
||||||
|
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
|
@ -388,7 +388,7 @@ public:
|
||||||
|
|
||||||
void Transform(const Matrix4 &manip2object, const Matrix4 &device2manip, const float x, const float y)
|
void Transform(const Matrix4 &manip2object, const Matrix4 &device2manip, const float x, const float y)
|
||||||
{
|
{
|
||||||
Vector3 current;
|
/*Vector3 current;
|
||||||
point_on_axis(current, m_axis, device2manip, x, y);
|
point_on_axis(current, m_axis, device2manip, x, y);
|
||||||
Vector3 delta = vector3_subtracted(current, m_start);
|
Vector3 delta = vector3_subtracted(current, m_start);
|
||||||
|
|
||||||
|
@ -401,7 +401,7 @@ public:
|
||||||
start[1] == 0 ? 1 : 1 + delta[1] / start[1],
|
start[1] == 0 ? 1 : 1 + delta[1] / start[1],
|
||||||
start[2] == 0 ? 1 : 1 + delta[2] / start[2]
|
start[2] == 0 ? 1 : 1 + delta[2] / start[2]
|
||||||
);
|
);
|
||||||
m_scalable.scale(scale);
|
m_scalable.scale(scale);*/
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetAxis(const Vector3 &axis)
|
void SetAxis(const Vector3 &axis)
|
||||||
|
@ -427,7 +427,7 @@ public:
|
||||||
|
|
||||||
void Transform(const Matrix4 &manip2object, const Matrix4 &device2manip, const float x, const float y)
|
void Transform(const Matrix4 &manip2object, const Matrix4 &device2manip, const float x, const float y)
|
||||||
{
|
{
|
||||||
Vector3 current;
|
/*Vector3 current;
|
||||||
point_on_plane(current, device2manip, x, y);
|
point_on_plane(current, device2manip, x, y);
|
||||||
Vector3 delta = vector3_subtracted(current, m_start);
|
Vector3 delta = vector3_subtracted(current, m_start);
|
||||||
|
|
||||||
|
@ -440,7 +440,7 @@ public:
|
||||||
start[1] == 0 ? 1 : 1 + delta[1] / start[1],
|
start[1] == 0 ? 1 : 1 + delta[1] / start[1],
|
||||||
start[2] == 0 ? 1 : 1 + delta[2] / start[2]
|
start[2] == 0 ? 1 : 1 + delta[2] / start[2]
|
||||||
);
|
);
|
||||||
m_scalable.scale(scale);
|
m_scalable.scale(scale);*/
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1631,11 +1631,11 @@ public:
|
||||||
m_free(scalable),
|
m_free(scalable),
|
||||||
m_axis(scalable)
|
m_axis(scalable)
|
||||||
{
|
{
|
||||||
draw_arrowline(length, m_arrow_x.m_line, 0);
|
/* draw_arrowline(length, m_arrow_x.m_line, 0);
|
||||||
draw_arrowline(length, m_arrow_y.m_line, 1);
|
draw_arrowline(length, m_arrow_y.m_line, 1);
|
||||||
draw_arrowline(length, m_arrow_z.m_line, 2);
|
draw_arrowline(length, m_arrow_z.m_line, 2);
|
||||||
|
|
||||||
draw_quad(16, m_quad_screen.m_quad);
|
draw_quad(16, m_quad_screen.m_quad);*/
|
||||||
}
|
}
|
||||||
|
|
||||||
Pivot2World &getPivot()
|
Pivot2World &getPivot()
|
||||||
|
@ -2899,6 +2899,9 @@ public:
|
||||||
case eDrag:
|
case eDrag:
|
||||||
m_manipulator = &m_drag_manipulator;
|
m_manipulator = &m_drag_manipulator;
|
||||||
break;
|
break;
|
||||||
|
case eCreate:
|
||||||
|
m_manipulator = &m_drag_manipulator;
|
||||||
|
break;
|
||||||
case eClip:
|
case eClip:
|
||||||
m_manipulator = &m_clip_manipulator;
|
m_manipulator = &m_clip_manipulator;
|
||||||
break;
|
break;
|
||||||
|
@ -3017,14 +3020,14 @@ public:
|
||||||
|
|
||||||
bool SelectManipulator(const View &view, const float device_point[2], const float device_epsilon[2])
|
bool SelectManipulator(const View &view, const float device_point[2], const float device_epsilon[2])
|
||||||
{
|
{
|
||||||
if (!nothingSelected() || (ManipulatorMode() == eDrag && Mode() == eComponent)) {
|
if (!nothingSelected() || ((ManipulatorMode() == eDrag || ManipulatorMode() == eCreate) && Mode() == eComponent)) {
|
||||||
#if defined ( DEBUG_SELECTION )
|
#if defined ( DEBUG_SELECTION )
|
||||||
g_render_clipped.destroy();
|
g_render_clipped.destroy();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
m_manipulator->setSelected(false);
|
m_manipulator->setSelected(false);
|
||||||
|
|
||||||
if (!nothingSelected() || (ManipulatorMode() == eDrag && Mode() == eComponent)) {
|
if (!nothingSelected() || ((ManipulatorMode() == eDrag || ManipulatorMode() == eCreate) && Mode() == eComponent)) {
|
||||||
View scissored(view);
|
View scissored(view);
|
||||||
ConstructSelectionTest(scissored, SelectionBoxForPoint(device_point, device_epsilon));
|
ConstructSelectionTest(scissored, SelectionBoxForPoint(device_point, device_epsilon));
|
||||||
m_manipulator->testSelect(scissored, GetPivot2World());
|
m_manipulator->testSelect(scissored, GetPivot2World());
|
||||||
|
@ -3067,6 +3070,10 @@ public:
|
||||||
void SelectPoint(const View &view, const float device_point[2], const float device_epsilon[2],
|
void SelectPoint(const View &view, const float device_point[2], const float device_epsilon[2],
|
||||||
RadiantSelectionSystem::EModifier modifier, bool face)
|
RadiantSelectionSystem::EModifier modifier, bool face)
|
||||||
{
|
{
|
||||||
|
if (m_manipulator_mode != eScale) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
ASSERT_MESSAGE(fabs(device_point[0]) <= 1.0f && fabs(device_point[1]) <= 1.0f, "point-selection error");
|
ASSERT_MESSAGE(fabs(device_point[0]) <= 1.0f && fabs(device_point[1]) <= 1.0f, "point-selection error");
|
||||||
if (modifier == eReplace) {
|
if (modifier == eReplace) {
|
||||||
if (face) {
|
if (face) {
|
||||||
|
@ -3142,6 +3149,10 @@ public:
|
||||||
void SelectArea(const View &view, const float device_point[2], const float device_delta[2],
|
void SelectArea(const View &view, const float device_point[2], const float device_delta[2],
|
||||||
RadiantSelectionSystem::EModifier modifier, bool face)
|
RadiantSelectionSystem::EModifier modifier, bool face)
|
||||||
{
|
{
|
||||||
|
if (m_manipulator_mode != eScale) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (modifier == eReplace) {
|
if (modifier == eReplace) {
|
||||||
if (face) {
|
if (face) {
|
||||||
setSelectedAllComponents(false);
|
setSelectedAllComponents(false);
|
||||||
|
@ -3284,7 +3295,7 @@ public:
|
||||||
/// \todo Support view-dependent nudge.
|
/// \todo Support view-dependent nudge.
|
||||||
void NudgeManipulator(const Vector3 &nudge, const Vector3 &view)
|
void NudgeManipulator(const Vector3 &nudge, const Vector3 &view)
|
||||||
{
|
{
|
||||||
if (ManipulatorMode() == eTranslate || ManipulatorMode() == eDrag) {
|
if (ManipulatorMode() == eTranslate || (ManipulatorMode() == eDrag || ManipulatorMode() == eCreate)) {
|
||||||
translateSelected(nudge);
|
translateSelected(nudge);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3518,7 +3529,7 @@ void RadiantSelectionSystem::endMove()
|
||||||
freezeTransforms();
|
freezeTransforms();
|
||||||
|
|
||||||
if (Mode() == ePrimitive) {
|
if (Mode() == ePrimitive) {
|
||||||
if (ManipulatorMode() == eDrag) {
|
if ((ManipulatorMode() == eDrag || ManipulatorMode() == eCreate)) {
|
||||||
Scene_SelectAll_Component(false, SelectionSystem::eFace);
|
Scene_SelectAll_Component(false, SelectionSystem::eFace);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3538,15 +3549,14 @@ void RadiantSelectionSystem::endMove()
|
||||||
command << "rotateTool";
|
command << "rotateTool";
|
||||||
outputRotation(command);
|
outputRotation(command);
|
||||||
} else if (ManipulatorMode() == eScale) {
|
} else if (ManipulatorMode() == eScale) {
|
||||||
command << "scaleTool";
|
//command << "scaleTool";
|
||||||
outputScale(command);
|
//outputScale(command);
|
||||||
} else if (ManipulatorMode() == eDrag) {
|
} else if ((ManipulatorMode() == eDrag || ManipulatorMode() == eCreate)) {
|
||||||
command << "dragTool";
|
command << "dragTool";
|
||||||
}
|
}
|
||||||
|
|
||||||
GlobalUndoSystem().finish(command.c_str());
|
GlobalUndoSystem().finish(command.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
inline AABB Instance_getPivotBounds(scene::Instance &instance)
|
inline AABB Instance_getPivotBounds(scene::Instance &instance)
|
||||||
|
@ -3677,13 +3687,6 @@ void RadiantSelectionSystem::ConstructPivot() const
|
||||||
matrix4_assign_rotation_for_pivot(m_pivot2world, m_selection.back());
|
matrix4_assign_rotation_for_pivot(m_pivot2world, m_selection.back());
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case eScale:
|
|
||||||
if (Mode() == eComponent) {
|
|
||||||
matrix4_assign_rotation_for_pivot(m_pivot2world, m_component_selection.back());
|
|
||||||
} else {
|
|
||||||
matrix4_assign_rotation_for_pivot(m_pivot2world, m_selection.back());
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -3785,9 +3788,9 @@ Single<MouseEventCallback> g_mouseUpCallback;
|
||||||
const ButtonIdentifier c_button_select = c_buttonLeft;
|
const ButtonIdentifier c_button_select = c_buttonLeft;
|
||||||
const ButtonIdentifier c_button_texture = c_buttonMiddle;
|
const ButtonIdentifier c_button_texture = c_buttonMiddle;
|
||||||
const ModifierFlags c_modifier_manipulator = c_modifierNone;
|
const ModifierFlags c_modifier_manipulator = c_modifierNone;
|
||||||
const ModifierFlags c_modifier_toggle = c_modifierShift;
|
const ModifierFlags c_modifier_toggle = c_modifierNone;
|
||||||
const ModifierFlags c_modifier_toggle_face = c_modifierShift | c_modifierControl;
|
const ModifierFlags c_modifier_toggle_face = c_modifierShift;
|
||||||
const ModifierFlags c_modifier_face = c_modifierControl;
|
const ModifierFlags c_modifier_face = c_modifierShift;
|
||||||
const ModifierFlags c_modifier_replace = c_modifierShift | c_modifierAlt;
|
const ModifierFlags c_modifier_replace = c_modifierShift | c_modifierAlt;
|
||||||
const ModifierFlags c_modifier_replace_face = c_modifier_replace | c_modifier_face;
|
const ModifierFlags c_modifier_replace_face = c_modifier_replace | c_modifier_face;
|
||||||
const ModifierFlags c_modifier_apply_texture1 = c_modifierControl | c_modifierShift;
|
const ModifierFlags c_modifier_apply_texture1 = c_modifierControl | c_modifierShift;
|
||||||
|
@ -3839,8 +3842,12 @@ public:
|
||||||
|
|
||||||
void testSelect(DeviceVector position)
|
void testSelect(DeviceVector position)
|
||||||
{
|
{
|
||||||
|
if (getSelectionSystem().ManipulatorMode() != SelectionSystem::eScale) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
RadiantSelectionSystem::EModifier modifier = modifier_for_state(m_state);
|
RadiantSelectionSystem::EModifier modifier = modifier_for_state(m_state);
|
||||||
if (modifier != RadiantSelectionSystem::eManipulator) {
|
|
||||||
DeviceVector delta(position - m_start);
|
DeviceVector delta(position - m_start);
|
||||||
if (fabs(delta.x()) > m_epsilon.x() && fabs(delta.y()) > m_epsilon.y()) {
|
if (fabs(delta.x()) > m_epsilon.x() && fabs(delta.y()) > m_epsilon.y()) {
|
||||||
DeviceVector delta(position - m_start);
|
DeviceVector delta(position - m_start);
|
||||||
|
@ -3853,7 +3860,6 @@ public:
|
||||||
getSelectionSystem().SelectPoint(*m_view, &position[0], &m_epsilon[0], modifier,
|
getSelectionSystem().SelectPoint(*m_view, &position[0], &m_epsilon[0], modifier,
|
||||||
(m_state & c_modifier_face) != c_modifierNone);
|
(m_state & c_modifier_face) != c_modifierNone);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
m_start = m_current = DeviceVector(0.0f, 0.0f);
|
m_start = m_current = DeviceVector(0.0f, 0.0f);
|
||||||
draw_area();
|
draw_area();
|
||||||
|
@ -3861,7 +3867,10 @@ public:
|
||||||
|
|
||||||
bool selecting() const
|
bool selecting() const
|
||||||
{
|
{
|
||||||
return m_state != c_modifier_manipulator;
|
if (getSelectionSystem().ManipulatorMode() != SelectionSystem::eScale) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
void setState(ModifierFlags state)
|
void setState(ModifierFlags state)
|
||||||
|
@ -3997,6 +4006,10 @@ public:
|
||||||
g_mouseMovedCallback.insert(MouseEventCallback(Manipulator_::MouseMovedCaller(m_manipulator)));
|
g_mouseMovedCallback.insert(MouseEventCallback(Manipulator_::MouseMovedCaller(m_manipulator)));
|
||||||
g_mouseUpCallback.insert(MouseEventCallback(Manipulator_::MouseUpCaller(m_manipulator)));
|
g_mouseUpCallback.insert(MouseEventCallback(Manipulator_::MouseUpCaller(m_manipulator)));
|
||||||
} else {
|
} else {
|
||||||
|
/* TODO: Only when eScale is selected */
|
||||||
|
if (getSelectionSystem().ManipulatorMode() != SelectionSystem::eScale) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
m_selector.mouseDown(devicePosition);
|
m_selector.mouseDown(devicePosition);
|
||||||
g_mouseMovedCallback.insert(MouseEventCallback(Selector_::MouseMovedCaller(m_selector)));
|
g_mouseMovedCallback.insert(MouseEventCallback(Selector_::MouseMovedCaller(m_selector)));
|
||||||
g_mouseUpCallback.insert(MouseEventCallback(Selector_::MouseUpCaller(m_selector)));
|
g_mouseUpCallback.insert(MouseEventCallback(Selector_::MouseUpCaller(m_selector)));
|
||||||
|
|
|
@ -634,6 +634,7 @@ ui::Window SurfaceInspector::BuildDialog()
|
||||||
global_accel_connect_window(window);
|
global_accel_connect_window(window);
|
||||||
|
|
||||||
window_connect_focus_in_clear_focus_widget(window);
|
window_connect_focus_in_clear_focus_widget(window);
|
||||||
|
gtk_window_set_resizable(window, FALSE);
|
||||||
|
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
|
@ -324,6 +324,16 @@ bool ClipMode()
|
||||||
return GlobalSelectionSystem().ManipulatorMode() == SelectionSystem::eClip;
|
return GlobalSelectionSystem().ManipulatorMode() == SelectionSystem::eClip;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool IsCreateMode()
|
||||||
|
{
|
||||||
|
return GlobalSelectionSystem().ManipulatorMode() == SelectionSystem::eCreate;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool IsCreateEMode()
|
||||||
|
{
|
||||||
|
return GlobalSelectionSystem().ManipulatorMode() == SelectionSystem::eEntSpawn;
|
||||||
|
}
|
||||||
|
|
||||||
void NewClipPoint(const Vector3 &point)
|
void NewClipPoint(const Vector3 &point)
|
||||||
{
|
{
|
||||||
if (g_Clip1.Set() == false) {
|
if (g_Clip1.Set() == false) {
|
||||||
|
@ -1235,16 +1245,9 @@ public:
|
||||||
|
|
||||||
void XYWnd::OnContextMenu()
|
void XYWnd::OnContextMenu()
|
||||||
{
|
{
|
||||||
if (g_xywindow_globals.m_bRightClick == false) {
|
if (g_xywindow_globals.m_bRightClick == false)
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
/* first time, init */
|
|
||||||
if (!m_mnuDrop) {
|
|
||||||
auto menu1 = m_mnuDrop = ui::Menu(ui::New);
|
|
||||||
EntityClassMenuInserter inserter(menu1);
|
|
||||||
GlobalEntityClassManager().forEachPoint(inserter);
|
|
||||||
}
|
|
||||||
if (!m_mnuDropSingle) {
|
if (!m_mnuDropSingle) {
|
||||||
auto menu2 = m_mnuDropSingle = ui::Menu(ui::New);
|
auto menu2 = m_mnuDropSingle = ui::Menu(ui::New);
|
||||||
create_menu_item_with_mnemonic(menu2, "Make detail", "MakeDetail");
|
create_menu_item_with_mnemonic(menu2, "Make detail", "MakeDetail");
|
||||||
|
@ -1275,15 +1278,29 @@ void XYWnd::OnContextMenu()
|
||||||
create_menu_item_with_mnemonic(menu3, "_Normalize Color...", "NormalizeColor");
|
create_menu_item_with_mnemonic(menu3, "_Normalize Color...", "NormalizeColor");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (GlobalSelectionSystem().countSelected() == 0) {
|
if (GlobalSelectionSystem().countSelected() == 1) {
|
||||||
gtk_menu_popup(m_mnuDrop, 0, 0, 0, 0, 1, GDK_CURRENT_TIME);
|
|
||||||
} else if (GlobalSelectionSystem().countSelected() == 1) {
|
|
||||||
gtk_menu_popup(m_mnuDropSingle, 0, 0, 0, 0, 1, GDK_CURRENT_TIME);
|
gtk_menu_popup(m_mnuDropSingle, 0, 0, 0, 0, 1, GDK_CURRENT_TIME);
|
||||||
} else {
|
} else {
|
||||||
gtk_menu_popup(m_mnuDropMultiple, 0, 0, 0, 0, 1, GDK_CURRENT_TIME);
|
gtk_menu_popup(m_mnuDropMultiple, 0, 0, 0, 0, 1, GDK_CURRENT_TIME);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Selection_Deselect();
|
||||||
|
void XYWnd::OnPointMenu()
|
||||||
|
{
|
||||||
|
/* first time, init */
|
||||||
|
if (!m_mnuDrop) {
|
||||||
|
auto menu1 = m_mnuDrop = ui::Menu(ui::New);
|
||||||
|
EntityClassMenuInserter inserter(menu1);
|
||||||
|
GlobalEntityClassManager().forEachPoint(inserter);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GlobalSelectionSystem().countSelected() != 0)
|
||||||
|
Selection_Deselect();
|
||||||
|
|
||||||
|
gtk_menu_popup(m_mnuDrop, 0, 0, 0, 0, 1, GDK_CURRENT_TIME);
|
||||||
|
}
|
||||||
|
|
||||||
FreezePointer g_xywnd_freezePointer;
|
FreezePointer g_xywnd_freezePointer;
|
||||||
|
|
||||||
unsigned int Move_buttons()
|
unsigned int Move_buttons()
|
||||||
|
@ -1294,6 +1311,8 @@ unsigned int Move_buttons()
|
||||||
void XYWnd_moveDelta(int x, int y, unsigned int state, void *data)
|
void XYWnd_moveDelta(int x, int y, unsigned int state, void *data)
|
||||||
{
|
{
|
||||||
reinterpret_cast<XYWnd *>( data )->EntityCreate_MouseMove(x, y);
|
reinterpret_cast<XYWnd *>( data )->EntityCreate_MouseMove(x, y);
|
||||||
|
reinterpret_cast<XYWnd *>( data )->PointCreate_MouseMove(x, y);
|
||||||
|
reinterpret_cast<XYWnd *>( data )->BrushCreate_MouseMove(x, y);
|
||||||
reinterpret_cast<XYWnd *>( data )->Scroll(-x, y);
|
reinterpret_cast<XYWnd *>( data )->Scroll(-x, y);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1405,21 +1424,24 @@ void XYWnd::mouseDown(const WindowVector &position, ButtonIdentifier button, Mod
|
||||||
}
|
}
|
||||||
|
|
||||||
void CamWnd_DisableMovement();
|
void CamWnd_DisableMovement();
|
||||||
|
|
||||||
void XYWnd::XY_MouseDown(int x, int y, unsigned int buttons)
|
void XYWnd::XY_MouseDown(int x, int y, unsigned int buttons)
|
||||||
{
|
{
|
||||||
if (buttons == Move_buttons()) {
|
#if 0
|
||||||
Move_Begin();
|
if (IsCreateEMode()) {
|
||||||
EntityCreate_MouseDown(x, y);
|
PointCreate_MouseDown(x, y);
|
||||||
} else if (buttons == Zoom_buttons()) {
|
} else if (buttons == Zoom_buttons()) {
|
||||||
Zoom_Begin();
|
Zoom_Begin();
|
||||||
} else if (ClipMode() && buttons == Clipper_buttons()) {
|
} else if (ClipMode() && buttons == Clipper_buttons()) {
|
||||||
Clipper_OnLButtonDown(x, y);
|
Clipper_OnLButtonDown(x, y);
|
||||||
} else if (buttons == NewBrushDrag_buttons() && GlobalSelectionSystem().countSelected() == 0) {
|
} else if (IsCreateMode() && buttons == NewBrushDrag_buttons() && GlobalSelectionSystem().countSelected() == 0) {
|
||||||
|
/* Only do it in eCreate mode */
|
||||||
NewBrushDrag_Begin(x, y);
|
NewBrushDrag_Begin(x, y);
|
||||||
}
|
} if (IsCreateMode()) {
|
||||||
|
BrushCreate_MouseDown(x, y);
|
||||||
|
} else if (buttons == Move_buttons()) {
|
||||||
|
Move_Begin();
|
||||||
|
} else if (buttons == MoveCamera_buttons()) {
|
||||||
// control mbutton = move camera
|
// control mbutton = move camera
|
||||||
else if (buttons == MoveCamera_buttons()) {
|
|
||||||
XYWnd_PositionCamera(this, x, y, *g_pParentWnd->GetCamWnd());
|
XYWnd_PositionCamera(this, x, y, *g_pParentWnd->GetCamWnd());
|
||||||
}
|
}
|
||||||
// mbutton = angle camera
|
// mbutton = angle camera
|
||||||
|
@ -1429,25 +1451,184 @@ void XYWnd::XY_MouseDown(int x, int y, unsigned int buttons)
|
||||||
m_window_observer->onMouseDown(WindowVector_forInteger(x, y), button_for_flags(buttons),
|
m_window_observer->onMouseDown(WindowVector_forInteger(x, y), button_for_flags(buttons),
|
||||||
modifiers_for_flags(buttons));
|
modifiers_for_flags(buttons));
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
switch (GlobalSelectionSystem().ManipulatorMode()) {
|
||||||
|
case SelectionSystem::eScale:
|
||||||
|
case SelectionSystem::eRotate:
|
||||||
|
case SelectionSystem::eDrag:
|
||||||
|
case SelectionSystem::eTranslate:
|
||||||
|
if (buttons == Zoom_buttons()) {
|
||||||
|
Zoom_Begin();
|
||||||
|
} else if (buttons == Move_buttons()) {
|
||||||
|
Move_Begin();
|
||||||
|
} else if (buttons == MoveCamera_buttons()) {
|
||||||
|
// control mbutton = move camera
|
||||||
|
XYWnd_PositionCamera(this, x, y, *g_pParentWnd->GetCamWnd());
|
||||||
|
} else if (buttons == OrientCamera_buttons()) {
|
||||||
|
// mbutton = angle camera
|
||||||
|
XYWnd_OrientCamera(this, x, y, *g_pParentWnd->GetCamWnd());
|
||||||
|
} else {
|
||||||
|
m_window_observer->onMouseDown(WindowVector_forInteger(x, y), button_for_flags(buttons),
|
||||||
|
modifiers_for_flags(buttons));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case SelectionSystem::eClip:
|
||||||
|
if (buttons == Clipper_buttons()) {
|
||||||
|
Clipper_OnLButtonDown(x, y);
|
||||||
|
} else if (buttons == Move_buttons()) {
|
||||||
|
Move_Begin();
|
||||||
|
} else if (buttons == MoveCamera_buttons()) {
|
||||||
|
// control mbutton = move camera
|
||||||
|
XYWnd_PositionCamera(this, x, y, *g_pParentWnd->GetCamWnd());
|
||||||
|
} else if (buttons == OrientCamera_buttons()) {
|
||||||
|
// mbutton = angle camera
|
||||||
|
XYWnd_OrientCamera(this, x, y, *g_pParentWnd->GetCamWnd());
|
||||||
|
} else {
|
||||||
|
m_window_observer->onMouseDown(WindowVector_forInteger(x, y), button_for_flags(buttons),
|
||||||
|
modifiers_for_flags(buttons));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case SelectionSystem::ePatchSpawn:
|
||||||
|
case SelectionSystem::eCreate:
|
||||||
|
if (buttons == NewBrushDrag_buttons() && GlobalSelectionSystem().countSelected() == 0)
|
||||||
|
NewBrushDrag_Begin(x, y);
|
||||||
|
else if (buttons == Move_buttons() && GlobalSelectionSystem().countSelected() == 0) {
|
||||||
|
Move_Begin();
|
||||||
|
} else if (buttons == MoveCamera_buttons()) {
|
||||||
|
// control mbutton = move camera
|
||||||
|
XYWnd_PositionCamera(this, x, y, *g_pParentWnd->GetCamWnd());
|
||||||
|
} else if (buttons == OrientCamera_buttons()) {
|
||||||
|
// mbutton = angle camera
|
||||||
|
XYWnd_OrientCamera(this, x, y, *g_pParentWnd->GetCamWnd());
|
||||||
|
} else {
|
||||||
|
m_window_observer->onMouseDown(WindowVector_forInteger(x, y), button_for_flags(buttons),
|
||||||
|
modifiers_for_flags(buttons));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case SelectionSystem::eEntSpawn:
|
||||||
|
if (buttons == NewBrushDrag_buttons())
|
||||||
|
PointCreate_MouseDown(x, y);
|
||||||
|
else if (buttons == Move_buttons() && GlobalSelectionSystem().countSelected() == 0) {
|
||||||
|
Move_Begin();
|
||||||
|
} else if (buttons == MoveCamera_buttons()) {
|
||||||
|
// control mbutton = move camera
|
||||||
|
XYWnd_PositionCamera(this, x, y, *g_pParentWnd->GetCamWnd());
|
||||||
|
} else if (buttons == OrientCamera_buttons()) {
|
||||||
|
// mbutton = angle camera
|
||||||
|
XYWnd_OrientCamera(this, x, y, *g_pParentWnd->GetCamWnd());
|
||||||
|
} else {
|
||||||
|
m_window_observer->onMouseDown(WindowVector_forInteger(x, y), button_for_flags(buttons),
|
||||||
|
modifiers_for_flags(buttons));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
CamWnd_DisableMovement();
|
CamWnd_DisableMovement();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Patch_Plane();
|
||||||
void XYWnd::XY_MouseUp(int x, int y, unsigned int buttons)
|
void XYWnd::XY_MouseUp(int x, int y, unsigned int buttons)
|
||||||
{
|
{
|
||||||
if (m_move_started) {
|
#if 0
|
||||||
|
if (IsCreateEMode()) {
|
||||||
|
PointCreate_MouseUp(x, y);
|
||||||
|
} else if (IsCreateMode() && buttons == Move_buttons()) {
|
||||||
|
BrushCreate_MouseUp(x, y);
|
||||||
|
} else if (m_move_started) {
|
||||||
Move_End();
|
Move_End();
|
||||||
EntityCreate_MouseUp(x, y);
|
EntityCreate_MouseUp(x, y);
|
||||||
} else if (m_zoom_started) {
|
} else if (m_zoom_started) {
|
||||||
Zoom_End();
|
Zoom_End();
|
||||||
} else if (ClipMode() && buttons == Clipper_buttons()) {
|
} else if (ClipMode() && buttons == Clipper_buttons()) {
|
||||||
Clipper_OnLButtonUp(x, y);
|
Clipper_OnLButtonUp(x, y);
|
||||||
} else if (m_bNewBrushDrag) {
|
}else if (m_bNewBrushDrag) {
|
||||||
m_bNewBrushDrag = false;
|
m_bNewBrushDrag = false;
|
||||||
NewBrushDrag_End(x, y);
|
NewBrushDrag_End(x, y);
|
||||||
} else {
|
}else {
|
||||||
m_window_observer->onMouseUp(WindowVector_forInteger(x, y), button_for_flags(buttons),
|
m_window_observer->onMouseUp(WindowVector_forInteger(x, y), button_for_flags(buttons),
|
||||||
modifiers_for_flags(buttons));
|
modifiers_for_flags(buttons));
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
switch (GlobalSelectionSystem().ManipulatorMode()) {
|
||||||
|
case SelectionSystem::eScale:
|
||||||
|
case SelectionSystem::eRotate:
|
||||||
|
case SelectionSystem::eDrag:
|
||||||
|
case SelectionSystem::eTranslate:
|
||||||
|
if (m_move_started) {
|
||||||
|
Move_End();
|
||||||
|
EntityCreate_MouseUp(x, y);
|
||||||
|
} else if (m_zoom_started) {
|
||||||
|
Zoom_End();
|
||||||
|
} else {
|
||||||
|
m_window_observer->onMouseUp(WindowVector_forInteger(x, y), button_for_flags(buttons),
|
||||||
|
modifiers_for_flags(buttons));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case SelectionSystem::eClip:
|
||||||
|
if (buttons == Clipper_buttons())
|
||||||
|
Clipper_OnLButtonUp(x, y);
|
||||||
|
else if (m_move_started) {
|
||||||
|
Move_End();
|
||||||
|
EntityCreate_MouseUp(x, y);
|
||||||
|
} else if (m_zoom_started) {
|
||||||
|
Zoom_End();
|
||||||
|
} else {
|
||||||
|
m_window_observer->onMouseUp(WindowVector_forInteger(x, y), button_for_flags(buttons),
|
||||||
|
modifiers_for_flags(buttons));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case SelectionSystem::eCreate:
|
||||||
|
if (buttons == Move_buttons() && GlobalSelectionSystem().countSelected() != 0) {
|
||||||
|
BrushCreate_MouseUp(x, y);
|
||||||
|
Selection_Deselect();
|
||||||
|
} else if (m_move_started) {
|
||||||
|
Move_End();
|
||||||
|
EntityCreate_MouseUp(x, y);
|
||||||
|
} else if (m_zoom_started) {
|
||||||
|
Zoom_End();
|
||||||
|
} else if (m_bNewBrushDrag) {
|
||||||
|
m_bNewBrushDrag = false;
|
||||||
|
NewBrushDrag_End(x, y);
|
||||||
|
} else {
|
||||||
|
m_window_observer->onMouseUp(WindowVector_forInteger(x, y), button_for_flags(buttons),
|
||||||
|
modifiers_for_flags(buttons));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case SelectionSystem::eEntSpawn:
|
||||||
|
if (buttons == Move_buttons() && GlobalSelectionSystem().countSelected() != 0) {
|
||||||
|
Selection_Deselect();
|
||||||
|
} else if (buttons == NewBrushDrag_buttons())
|
||||||
|
PointCreate_MouseUp(x, y);
|
||||||
|
else if (m_move_started) {
|
||||||
|
Move_End();
|
||||||
|
EntityCreate_MouseUp(x, y);
|
||||||
|
} else if (m_zoom_started) {
|
||||||
|
Zoom_End();
|
||||||
|
} else {
|
||||||
|
m_window_observer->onMouseUp(WindowVector_forInteger(x, y), button_for_flags(buttons),
|
||||||
|
modifiers_for_flags(buttons));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case SelectionSystem::ePatchSpawn:
|
||||||
|
if (buttons == Move_buttons() && GlobalSelectionSystem().countSelected() != 0) {
|
||||||
|
BrushCreate_MouseUp(x, y);
|
||||||
|
Patch_Plane();
|
||||||
|
} else if (m_move_started) {
|
||||||
|
Move_End();
|
||||||
|
EntityCreate_MouseUp(x, y);
|
||||||
|
} else if (m_zoom_started) {
|
||||||
|
Zoom_End();
|
||||||
|
} else if (m_bNewBrushDrag) {
|
||||||
|
m_bNewBrushDrag = false;
|
||||||
|
NewBrushDrag_End(x, y);
|
||||||
|
} else {
|
||||||
|
m_window_observer->onMouseUp(WindowVector_forInteger(x, y), button_for_flags(buttons),
|
||||||
|
modifiers_for_flags(buttons));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void XYWnd::XY_MouseMoved(int x, int y, unsigned int buttons)
|
void XYWnd::XY_MouseMoved(int x, int y, unsigned int buttons)
|
||||||
|
@ -1516,6 +1697,51 @@ void XYWnd::EntityCreate_MouseUp(int x, int y)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void XYWnd::BrushCreate_MouseDown(int x, int y)
|
||||||
|
{
|
||||||
|
m_entityCreate = true;
|
||||||
|
m_entityCreate_x = x;
|
||||||
|
m_entityCreate_y = y;
|
||||||
|
}
|
||||||
|
|
||||||
|
void XYWnd::BrushCreate_MouseMove(int x, int y)
|
||||||
|
{
|
||||||
|
if (m_entityCreate && (m_entityCreate_x != x || m_entityCreate_y != y)) {
|
||||||
|
m_entityCreate = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void XYWnd::BrushCreate_MouseUp(int x, int y)
|
||||||
|
{
|
||||||
|
if (m_entityCreate) {
|
||||||
|
m_entityCreate = false;
|
||||||
|
m_bNewBrushDrag = false;
|
||||||
|
NewBrushDrag_End(x, y);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void XYWnd::PointCreate_MouseDown(int x, int y)
|
||||||
|
{
|
||||||
|
m_entityCreate = true;
|
||||||
|
m_entityCreate_x = x;
|
||||||
|
m_entityCreate_y = y;
|
||||||
|
}
|
||||||
|
|
||||||
|
void XYWnd::PointCreate_MouseMove(int x, int y)
|
||||||
|
{
|
||||||
|
if (m_entityCreate && (m_entityCreate_x != x || m_entityCreate_y != y)) {
|
||||||
|
m_entityCreate = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void XYWnd::PointCreate_MouseUp(int x, int y)
|
||||||
|
{
|
||||||
|
if (m_entityCreate) {
|
||||||
|
m_entityCreate = false;
|
||||||
|
OnPointMenu();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
inline float screen_normalised(int pos, unsigned int size)
|
inline float screen_normalised(int pos, unsigned int size)
|
||||||
{
|
{
|
||||||
return ((2.0f * pos) / size) - 1.0f;
|
return ((2.0f * pos) / size) - 1.0f;
|
||||||
|
|
|
@ -231,6 +231,8 @@ private:
|
||||||
void OriginalButtonDown(guint32 nFlags, int point, int pointy);
|
void OriginalButtonDown(guint32 nFlags, int point, int pointy);
|
||||||
|
|
||||||
void OnContextMenu();
|
void OnContextMenu();
|
||||||
|
void OnBrushMenu();
|
||||||
|
void OnPointMenu();
|
||||||
|
|
||||||
void PaintSizeInfo(int nDim1, int nDim2, Vector3 &vMinBounds, Vector3 &vMaxBounds);
|
void PaintSizeInfo(int nDim1, int nDim2, Vector3 &vMinBounds, Vector3 &vMaxBounds);
|
||||||
|
|
||||||
|
@ -254,11 +256,17 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
void EntityCreate_MouseDown(int x, int y);
|
void EntityCreate_MouseDown(int x, int y);
|
||||||
|
|
||||||
void EntityCreate_MouseMove(int x, int y);
|
void EntityCreate_MouseMove(int x, int y);
|
||||||
|
|
||||||
void EntityCreate_MouseUp(int x, int y);
|
void EntityCreate_MouseUp(int x, int y);
|
||||||
|
|
||||||
|
void BrushCreate_MouseDown(int x, int y);
|
||||||
|
void BrushCreate_MouseMove(int x, int y);
|
||||||
|
void BrushCreate_MouseUp(int x, int y);
|
||||||
|
|
||||||
|
void PointCreate_MouseDown(int x, int y);
|
||||||
|
void PointCreate_MouseMove(int x, int y);
|
||||||
|
void PointCreate_MouseUp(int x, int y);
|
||||||
|
|
||||||
void OnEntityCreate(const char *item);
|
void OnEntityCreate(const char *item);
|
||||||
|
|
||||||
VIEWTYPE GetViewType()
|
VIEWTYPE GetViewType()
|
||||||
|
|
After Width: | Height: | Size: 1.7 KiB |
|
@ -1,45 +0,0 @@
|
||||||
/* XPM */
|
|
||||||
static char *side_clipper[] = {
|
|
||||||
/* columns rows colors chars-per-pixel */
|
|
||||||
"40 32 7 1 ",
|
|
||||||
" c None",
|
|
||||||
". c black",
|
|
||||||
"X c #800000",
|
|
||||||
"o c red",
|
|
||||||
"O c #008000",
|
|
||||||
"+ c green",
|
|
||||||
"@ c #808080",
|
|
||||||
/* pixels */
|
|
||||||
" ",
|
|
||||||
" ",
|
|
||||||
" ",
|
|
||||||
" ",
|
|
||||||
" ",
|
|
||||||
" ",
|
|
||||||
" ",
|
|
||||||
" +++++X ",
|
|
||||||
" ++++++XoXX ",
|
|
||||||
" +++++++oXoXXXX ",
|
|
||||||
" ++++++XoXoXoXXXX ",
|
|
||||||
" OOOOO@oXoXoXoXXXX ",
|
|
||||||
" OOOOOO@oXoXoXXXXXX ",
|
|
||||||
" OOOOOOO@oXoXoXXXXXX ",
|
|
||||||
" OOOOOOOO@oXoXXXXXX@ ",
|
|
||||||
" OOOOOOOOO@oXoXXXX@@ ",
|
|
||||||
" OOOOOOOOO@oXoXX@@@ ",
|
|
||||||
" OOOOOOOOOO@oXX@@@. ",
|
|
||||||
" OOOOOOOOOOO@o@@@@ ",
|
|
||||||
" OOOOOOOOOOOO@@@@@ ",
|
|
||||||
" OOOOOOOOOOOO@@@@ ",
|
|
||||||
" OOOOOOOOOOO@@@ ",
|
|
||||||
" OOOOOOOOOO@@@ ",
|
|
||||||
" OOOOOOO@@ ",
|
|
||||||
" OOOO@ ",
|
|
||||||
" OO ",
|
|
||||||
" ",
|
|
||||||
" ",
|
|
||||||
" ",
|
|
||||||
" ",
|
|
||||||
" ",
|
|
||||||
" "
|
|
||||||
};
|
|
After Width: | Height: | Size: 2.6 KiB |
After Width: | Height: | Size: 1.9 KiB |
|
@ -1,45 +0,0 @@
|
||||||
/* XPM */
|
|
||||||
static char *side_entities[] = {
|
|
||||||
/* columns rows colors chars-per-pixel */
|
|
||||||
"40 32 7 1 ",
|
|
||||||
" c None",
|
|
||||||
". c black",
|
|
||||||
"X c #0C0C0C",
|
|
||||||
"o c #808080",
|
|
||||||
"O c #C0C0C0",
|
|
||||||
"+ c #F3F3F3",
|
|
||||||
"@ c white",
|
|
||||||
/* pixels */
|
|
||||||
" ",
|
|
||||||
" ",
|
|
||||||
" ",
|
|
||||||
" ",
|
|
||||||
" @ ",
|
|
||||||
" @ @ ",
|
|
||||||
" @ @O@O@ooo ",
|
|
||||||
" @@O@O@Oo.oo ",
|
|
||||||
" @@@@@OOoo.oo ",
|
|
||||||
" @@@@OOOOo..o ",
|
|
||||||
" O@@@OOOOo..o ",
|
|
||||||
" @@@@OOOOo..o ",
|
|
||||||
" @@OOO@OOOo..o ",
|
|
||||||
" @OOOOO@Oo...o ",
|
|
||||||
" @ OOOOOO@O..oo ",
|
|
||||||
" @ OOOooo@o.o ",
|
|
||||||
" @ Oooo.oOo ",
|
|
||||||
" ooo..o o ",
|
|
||||||
" Oo...o o ",
|
|
||||||
" Ooo..o ",
|
|
||||||
" OOoooo ",
|
|
||||||
" OOOo.. ",
|
|
||||||
" @@@OOO.. ",
|
|
||||||
" OOoo.. ",
|
|
||||||
" O@@Ooo.. ",
|
|
||||||
" OOoo.o ",
|
|
||||||
" @ o ",
|
|
||||||
" X X X ",
|
|
||||||
" + + + ",
|
|
||||||
" ",
|
|
||||||
" ",
|
|
||||||
" "
|
|
||||||
};
|
|
After Width: | Height: | Size: 3.6 KiB |
|
@ -1,44 +0,0 @@
|
||||||
/* XPM */
|
|
||||||
static char *side_find[] = {
|
|
||||||
/* columns rows colors chars-per-pixel */
|
|
||||||
"40 32 6 1 ",
|
|
||||||
" c None",
|
|
||||||
". c black",
|
|
||||||
"X c #800000",
|
|
||||||
"o c red",
|
|
||||||
"O c #808000",
|
|
||||||
"+ c #808080",
|
|
||||||
/* pixels */
|
|
||||||
" ",
|
|
||||||
" ",
|
|
||||||
" ",
|
|
||||||
" ",
|
|
||||||
" ",
|
|
||||||
" oooX+ ",
|
|
||||||
" ooXXooX+ ",
|
|
||||||
" oXXooXXoX+ ",
|
|
||||||
" XoooooXXoX ",
|
|
||||||
" oXoooooXXoX+ ",
|
|
||||||
" o.ooooXXXoo. ",
|
|
||||||
" oXoooXXX.Xo+ ",
|
|
||||||
" +XooXoXX+Xo. ",
|
|
||||||
" .XXoXXX.OXX ",
|
|
||||||
" XXoXXX..oX+ ",
|
|
||||||
" o.XXX+.+oX ",
|
|
||||||
" X.X+.+oX+ ",
|
|
||||||
" oooooXX.+ ",
|
|
||||||
" oXXoX.+ ",
|
|
||||||
" XoX.+ ",
|
|
||||||
" XoX. ",
|
|
||||||
" ooX.+ ",
|
|
||||||
" XoX.. ",
|
|
||||||
" XoX+ ",
|
|
||||||
" oX+ ",
|
|
||||||
" ",
|
|
||||||
" ",
|
|
||||||
" ",
|
|
||||||
" ",
|
|
||||||
" ",
|
|
||||||
" ",
|
|
||||||
" "
|
|
||||||
};
|
|
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 2.3 KiB |
|
@ -1,157 +0,0 @@
|
||||||
/* XPM */
|
|
||||||
static char *side_patch[] = {
|
|
||||||
/* columns rows colors chars-per-pixel */
|
|
||||||
"40 32 119 2 ",
|
|
||||||
" c None",
|
|
||||||
". c #0C0C0C",
|
|
||||||
"X c #0C0E23",
|
|
||||||
"o c #0C0E24",
|
|
||||||
"O c #0D0F27",
|
|
||||||
"+ c #0D1028",
|
|
||||||
"@ c #0F122D",
|
|
||||||
"# c #101330",
|
|
||||||
"$ c #111433",
|
|
||||||
"% c #131638",
|
|
||||||
"& c #13173A",
|
|
||||||
"* c #450000",
|
|
||||||
"= c #4F0000",
|
|
||||||
"- c #520000",
|
|
||||||
"; c #5C0000",
|
|
||||||
": c #5D0000",
|
|
||||||
"> c #670000",
|
|
||||||
", c #690000",
|
|
||||||
"< c #740000",
|
|
||||||
"1 c #7F0000",
|
|
||||||
"2 c #7F0100",
|
|
||||||
"3 c #7F0001",
|
|
||||||
"4 c #7F0101",
|
|
||||||
"5 c #171B42",
|
|
||||||
"6 c #1E235A",
|
|
||||||
"7 c #1E245B",
|
|
||||||
"8 c #232968",
|
|
||||||
"9 c #232969",
|
|
||||||
"0 c #242A6B",
|
|
||||||
"q c #242A6C",
|
|
||||||
"w c #262D72",
|
|
||||||
"e c #272D74",
|
|
||||||
"r c #2E3477",
|
|
||||||
"t c #29307B",
|
|
||||||
"y c #29317C",
|
|
||||||
"u c #800100",
|
|
||||||
"i c #800001",
|
|
||||||
"p c #800101",
|
|
||||||
"a c #820202",
|
|
||||||
"s c #8C0C0C",
|
|
||||||
"d c #8D0E0C",
|
|
||||||
"f c #8D0C0E",
|
|
||||||
"g c #8D0E0E",
|
|
||||||
"h c #981919",
|
|
||||||
"j c #991919",
|
|
||||||
"k c #981A19",
|
|
||||||
"l c #991A19",
|
|
||||||
"z c #98191A",
|
|
||||||
"x c #99191A",
|
|
||||||
"c c #981A1A",
|
|
||||||
"v c #991A1A",
|
|
||||||
"b c #9F2420",
|
|
||||||
"n c #9F2421",
|
|
||||||
"m c #A12420",
|
|
||||||
"M c #A12421",
|
|
||||||
"N c #A42424",
|
|
||||||
"B c #AC302D",
|
|
||||||
"V c #AD312E",
|
|
||||||
"C c #B03131",
|
|
||||||
"Z c #B13131",
|
|
||||||
"A c #B33331",
|
|
||||||
"S c #B33133",
|
|
||||||
"D c #B13333",
|
|
||||||
"F c #B33333",
|
|
||||||
"G c #B73C38",
|
|
||||||
"H c #B93D3A",
|
|
||||||
"J c #C44846",
|
|
||||||
"K c #D05452",
|
|
||||||
"L c #DC5F5C",
|
|
||||||
"P c #DD5F5C",
|
|
||||||
"I c #DC5F5D",
|
|
||||||
"U c #DC615C",
|
|
||||||
"Y c #DD615C",
|
|
||||||
"T c #DE625E",
|
|
||||||
"R c #E76B69",
|
|
||||||
"E c #EA6D6A",
|
|
||||||
"W c #F47876",
|
|
||||||
"Q c #F47976",
|
|
||||||
"! c #F47877",
|
|
||||||
"~ c #F67876",
|
|
||||||
"^ c #2C3485",
|
|
||||||
"/ c #2D3586",
|
|
||||||
"( c #2E3689",
|
|
||||||
") c #2E368B",
|
|
||||||
"_ c #323983",
|
|
||||||
"` c #30388F",
|
|
||||||
"' c #313A93",
|
|
||||||
"] c #323A95",
|
|
||||||
"[ c #323B96",
|
|
||||||
"{ c #383F91",
|
|
||||||
"} c #333D9A",
|
|
||||||
"| c #343D9C",
|
|
||||||
" . c #3E4492",
|
|
||||||
".. c #4C52A5",
|
|
||||||
"X. c #565CB1",
|
|
||||||
"o. c #6B70B7",
|
|
||||||
"O. c #7B7FBA",
|
|
||||||
"+. c #4550C1",
|
|
||||||
"@. c #4651C1",
|
|
||||||
"#. c #4E58C4",
|
|
||||||
"$. c #4F59C4",
|
|
||||||
"%. c #535DC6",
|
|
||||||
"&. c #606ACA",
|
|
||||||
"*. c #7980CB",
|
|
||||||
"=. c #7F86D4",
|
|
||||||
"-. c #FF8482",
|
|
||||||
";. c #FF8582",
|
|
||||||
":. c #FF8584",
|
|
||||||
">. c #878DD0",
|
|
||||||
",. c #8189D5",
|
|
||||||
"<. c #838BD6",
|
|
||||||
"1. c #868DD7",
|
|
||||||
"2. c #8990D8",
|
|
||||||
"3. c #8A91D8",
|
|
||||||
"4. c #8B92D8",
|
|
||||||
"5. c #9198DA",
|
|
||||||
"6. c #9399DB",
|
|
||||||
"7. c #989EDD",
|
|
||||||
"8. c #F3F3F3",
|
|
||||||
/* pixels */
|
|
||||||
" ",
|
|
||||||
" ",
|
|
||||||
" D * ",
|
|
||||||
" D :.N W B - m * ",
|
|
||||||
" D -.N W k E g T a K < J , H ; B = b * ",
|
|
||||||
" r D -.N W j E g T a K < J , H ; C = m * ",
|
|
||||||
" .O D :.N W j E g T a K < J , H : B = b * ",
|
|
||||||
" O & _ S -.N W j E f T a K < J , H ; C = m * ",
|
|
||||||
" ..X 7 q Z -.N W k E g T 1 K < J , H : B = m * ",
|
|
||||||
" @ + e y { Z -.N ! k E f T 1 K < J , H : B = b * ",
|
|
||||||
" X.X 6 9 ' } D -.N ~ k E f T a K < J , H ; B = b * ",
|
|
||||||
" $ O ^ w ) $.*. Z -.N W x E g T 1 K < J , H : B = b * ",
|
|
||||||
" o.O & 9 ] | %.2. D -.N W k E g T 1 K < J , H ; B = b * ",
|
|
||||||
" 5 X ^ w ` +.=.=.1. D -.N W k E g T 1 K < J , H ; B = m * ",
|
|
||||||
" O.O & 9 t ) #.=.2.6. C -.N W k E g L 1 K < J , H ; B = m * ",
|
|
||||||
" # X 6 9 ` X.&.5.2.7. C -.N W k E g L a K < J , H ; C = b * ",
|
|
||||||
" + + e y ^ $.,.2.6.7. D -.N W k E g L a K < J , H ; B = b * ",
|
|
||||||
" q ] | &.6.2. C -.N W x E f L 1 K < J , H ; B = b * ",
|
|
||||||
" C -.N W k E s P a K < J , H ; B = m * ",
|
|
||||||
" C -.N W k E s P 1 K < J , G ; B = b * ",
|
|
||||||
" C -.N W k E s L 1 K < J , G ; B = m * ",
|
|
||||||
" C -.N W k E s T 1 K < J , G ; B = m * ",
|
|
||||||
" D -.N W h R s L 1 K < J , G ; B = m * ",
|
|
||||||
" C -.N W h R s U 1 K < J , G : B = b * ",
|
|
||||||
" -.N W k R s L 1 K < J > G : B = m ",
|
|
||||||
" k R s L a K < J > G : ",
|
|
||||||
" ",
|
|
||||||
" . . . ",
|
|
||||||
" 8. 8. 8. ",
|
|
||||||
" ",
|
|
||||||
" ",
|
|
||||||
" "
|
|
||||||
};
|
|
After Width: | Height: | Size: 2.9 KiB |
|
@ -1,43 +0,0 @@
|
||||||
/* XPM */
|
|
||||||
static char *side_resize[] = {
|
|
||||||
/* columns rows colors chars-per-pixel */
|
|
||||||
"40 32 5 1 ",
|
|
||||||
" c None",
|
|
||||||
". c black",
|
|
||||||
"X c #3E3E3E",
|
|
||||||
"o c gray43",
|
|
||||||
"O c #F8F8F8",
|
|
||||||
/* pixels */
|
|
||||||
" ",
|
|
||||||
" ",
|
|
||||||
" ... ... ... ",
|
|
||||||
" . ",
|
|
||||||
" . . ",
|
|
||||||
" . . ",
|
|
||||||
" . ",
|
|
||||||
" . ",
|
|
||||||
" . . ",
|
|
||||||
" . . ",
|
|
||||||
" . ",
|
|
||||||
" . OOOOOOO ",
|
|
||||||
" . . OOOOOOOOOOOOOOOo ",
|
|
||||||
" . . XOOOOOOOOOOOOOOOOoo ",
|
|
||||||
" . XXXXXXOOOOOOOOOoooo ",
|
|
||||||
" ... ... ... XXXXXXXXXXOOOOooooo ",
|
|
||||||
" XXXXXXXXXXXXXooooo ",
|
|
||||||
" XXXXXXXXXXXXXooooo ",
|
|
||||||
" XXXXXXXXXXXXXooooo ",
|
|
||||||
" XXXXXXXXXXXXooooo ",
|
|
||||||
" XXXXXXXXXXXXooooo ",
|
|
||||||
" XXXXXXXXXXXXooooo ",
|
|
||||||
" XXXXXXXXXXXXooooo ",
|
|
||||||
" XXXXXXXXXXXXooooo ",
|
|
||||||
" XXXXXXXXXXXXooooo ",
|
|
||||||
" XXXXXXXXXXXoooo ",
|
|
||||||
" XXXXXXXXXXooo ",
|
|
||||||
" XXXXXXXoo ",
|
|
||||||
" XXXXo ",
|
|
||||||
" X ",
|
|
||||||
" ",
|
|
||||||
" "
|
|
||||||
};
|
|
After Width: | Height: | Size: 1.8 KiB |
|
@ -1,44 +0,0 @@
|
||||||
/* XPM */
|
|
||||||
static char *side_rotate[] = {
|
|
||||||
/* columns rows colors chars-per-pixel */
|
|
||||||
"40 32 6 1 ",
|
|
||||||
" c None",
|
|
||||||
". c black",
|
|
||||||
"X c #3E3E3E",
|
|
||||||
"o c gray43",
|
|
||||||
"O c blue",
|
|
||||||
"+ c #F8F8F8",
|
|
||||||
/* pixels */
|
|
||||||
" ",
|
|
||||||
" ",
|
|
||||||
" ",
|
|
||||||
" OOOO ",
|
|
||||||
" OO OO ",
|
|
||||||
" O O ",
|
|
||||||
" O ........ O ",
|
|
||||||
" O . . O ",
|
|
||||||
" O . . O ",
|
|
||||||
" O . .OOOOO ",
|
|
||||||
" O . . OOO ",
|
|
||||||
" O . . O +++++++ ",
|
|
||||||
" O . . +++++++++++++++o ",
|
|
||||||
" O ........ X++++++++++++++++oo ",
|
|
||||||
" O XXXXXX+++++++++oooo ",
|
|
||||||
" OO XXXXXXXXXX++++ooooo ",
|
|
||||||
" OO XXXXXXXXXXXXXooooo ",
|
|
||||||
" XXXXXXXXXXXXXooooo ",
|
|
||||||
" XXXXXXXXXXXXXooooo ",
|
|
||||||
" XXXXXXXXXXXXooooo ",
|
|
||||||
" XXXXXXXXXXXXooooo ",
|
|
||||||
" XXXXXXXXXXXXooooo ",
|
|
||||||
" XXXXXXXXXXXXooooo ",
|
|
||||||
" XXXXXXXXXXXXooooo ",
|
|
||||||
" XXXXXXXXXXXXooooo ",
|
|
||||||
" XXXXXXXXXXXoooo ",
|
|
||||||
" XXXXXXXXXXooo ",
|
|
||||||
" XXXXXXXoo ",
|
|
||||||
" XXXXo ",
|
|
||||||
" X ",
|
|
||||||
" ",
|
|
||||||
" "
|
|
||||||
};
|
|
After Width: | Height: | Size: 1.4 KiB |
|
@ -1,44 +0,0 @@
|
||||||
/* XPM */
|
|
||||||
static char *side_scale[] = {
|
|
||||||
/* columns rows colors chars-per-pixel */
|
|
||||||
"40 32 6 1 ",
|
|
||||||
" c None",
|
|
||||||
". c black",
|
|
||||||
"X c #3E3E3E",
|
|
||||||
"o c gray43",
|
|
||||||
"O c blue",
|
|
||||||
"+ c #F8F8F8",
|
|
||||||
/* pixels */
|
|
||||||
" ",
|
|
||||||
" ",
|
|
||||||
" ",
|
|
||||||
" OOO OOO OOO ",
|
|
||||||
" ",
|
|
||||||
" O OOOOO O ",
|
|
||||||
" O OOOO O ",
|
|
||||||
" O OOO O ",
|
|
||||||
" O OO ",
|
|
||||||
" ........ O O ",
|
|
||||||
" . . O ",
|
|
||||||
" . . O +++++++ ",
|
|
||||||
" . . +++++++++++++++o ",
|
|
||||||
" . . O++++++++++++++++oo ",
|
|
||||||
" . . OXXXXX+++++++++oooo ",
|
|
||||||
" . . OXXXXXXXXX++++ooooo ",
|
|
||||||
" ........ OOO XXXXXXXXXXXXXooooo ",
|
|
||||||
" XXXXXXXXXXXXXooooo ",
|
|
||||||
" XXXXXXXXXXXXXooooo ",
|
|
||||||
" XXXXXXXXXXXXooooo ",
|
|
||||||
" XXXXXXXXXXXXooooo ",
|
|
||||||
" XXXXXXXXXXXXooooo ",
|
|
||||||
" XXXXXXXXXXXXooooo ",
|
|
||||||
" XXXXXXXXXXXXooooo ",
|
|
||||||
" XXXXXXXXXXXXooooo ",
|
|
||||||
" XXXXXXXXXXXoooo ",
|
|
||||||
" XXXXXXXXXXooo ",
|
|
||||||
" XXXXXXXoo ",
|
|
||||||
" XXXXo ",
|
|
||||||
" X ",
|
|
||||||
" ",
|
|
||||||
" "
|
|
||||||
};
|
|
After Width: | Height: | Size: 1.4 KiB |
|
@ -1,48 +0,0 @@
|
||||||
/* XPM */
|
|
||||||
static char *side_surface[] = {
|
|
||||||
/* columns rows colors chars-per-pixel */
|
|
||||||
"40 32 10 1 ",
|
|
||||||
" c None",
|
|
||||||
". c #0C0C0C",
|
|
||||||
"X c #800000",
|
|
||||||
"o c red",
|
|
||||||
"O c #FF0100",
|
|
||||||
"+ c #FF0001",
|
|
||||||
"@ c #008000",
|
|
||||||
"# c yellow",
|
|
||||||
"$ c #C3C3C3",
|
|
||||||
"% c #F3F3F3",
|
|
||||||
/* pixels */
|
|
||||||
" ",
|
|
||||||
" ",
|
|
||||||
" $$$$ ",
|
|
||||||
" $oooo$$$ ",
|
|
||||||
" $o$$$$ooo$ ",
|
|
||||||
" $o$ $$o$ ",
|
|
||||||
" $oo$ $o$ ",
|
|
||||||
" $oo$ $o$ ",
|
|
||||||
" $oo$ $o$ ",
|
|
||||||
" $oo$$$$ $ ",
|
|
||||||
" $oooooo$$ ",
|
|
||||||
" $ooooooo$ ####### ",
|
|
||||||
" $$$ooooo$ ###############@ ",
|
|
||||||
" $$$ooo$ X################@@ ",
|
|
||||||
" $ $oo$ XXXXXX#########@@@@ ",
|
|
||||||
" $o$ $oo$ XXXXXXXXXX####@@@@@ ",
|
|
||||||
" $o$ $oo$ XXXXXXXXXXXXX@@@@@ ",
|
|
||||||
" $oo$ $oo$ XXXXXXXXXXXXX@@@@@ ",
|
|
||||||
" $oo$$ $$o$ XXXXXXXXXXXXX@@@@@ ",
|
|
||||||
" $o$oo$$$oo$ XXXXXXXXXXXX@@@@@ ",
|
|
||||||
" $ $$ooo$$ XXXXXXXXXXXX@@@@@ ",
|
|
||||||
" $$$ XXXXXXXXXXXX@@@@@ ",
|
|
||||||
" XXXXXXXXXXXX@@@@@ ",
|
|
||||||
" XXXXXXXXXXXX@@@@@ ",
|
|
||||||
" XXXXXXXXXXXX@@@@@ ",
|
|
||||||
" XXXXXXXXXXX@@@@ ",
|
|
||||||
" XXXXXXXXXX@@@ ",
|
|
||||||
" . . . XXXXXXX@@ ",
|
|
||||||
" % % % XXXX@ ",
|
|
||||||
" X ",
|
|
||||||
" ",
|
|
||||||
" "
|
|
||||||
};
|
|
After Width: | Height: | Size: 2.3 KiB |
After Width: | Height: | Size: 1.9 KiB |
|
@ -1,148 +0,0 @@
|
||||||
/* XPM */
|
|
||||||
static char *side_textures[] = {
|
|
||||||
/* columns rows colors chars-per-pixel */
|
|
||||||
"40 32 110 2 ",
|
|
||||||
" c None",
|
|
||||||
". c #0C0C0C",
|
|
||||||
"X c #240C04",
|
|
||||||
"o c #291207",
|
|
||||||
"O c #3C1D09",
|
|
||||||
"+ c #381D14",
|
|
||||||
"@ c #372116",
|
|
||||||
"# c #3E271F",
|
|
||||||
"$ c #452B21",
|
|
||||||
"% c #4E372F",
|
|
||||||
"& c #533C33",
|
|
||||||
"* c #5A3F34",
|
|
||||||
"= c #5B402B",
|
|
||||||
"- c #62463A",
|
|
||||||
"; c #63483D",
|
|
||||||
": c #6F543F",
|
|
||||||
"> c #634B44",
|
|
||||||
", c #694F42",
|
|
||||||
"< c #6A5248",
|
|
||||||
"1 c #725647",
|
|
||||||
"2 c #72574B",
|
|
||||||
"3 c #775D50",
|
|
||||||
"4 c #7C6251",
|
|
||||||
"5 c #FF0000",
|
|
||||||
"6 c #9E5113",
|
|
||||||
"7 c #AC4F0C",
|
|
||||||
"8 c #A5540F",
|
|
||||||
"9 c #B2530F",
|
|
||||||
"0 c #A05116",
|
|
||||||
"q c #AD5514",
|
|
||||||
"w c #AC5B1D",
|
|
||||||
"e c #B45514",
|
|
||||||
"r c #B35A15",
|
|
||||||
"t c #B95914",
|
|
||||||
"y c #B45C1B",
|
|
||||||
"u c #BB5E1B",
|
|
||||||
"i c #B36317",
|
|
||||||
"p c #B6641F",
|
|
||||||
"a c #BB631C",
|
|
||||||
"s c #BB6B1C",
|
|
||||||
"d c #AD5F22",
|
|
||||||
"f c #B55F20",
|
|
||||||
"g c #B85D22",
|
|
||||||
"h c #B46425",
|
|
||||||
"j c #BB6621",
|
|
||||||
"k c #BB6A22",
|
|
||||||
"l c #B76729",
|
|
||||||
"z c #B46C2B",
|
|
||||||
"x c #BC6E2B",
|
|
||||||
"c c #BF702B",
|
|
||||||
"v c #BC6932",
|
|
||||||
"b c #BE7130",
|
|
||||||
"n c #C16A1E",
|
|
||||||
"m c #C26724",
|
|
||||||
"M c #C26C25",
|
|
||||||
"N c #C36C29",
|
|
||||||
"B c #C96D28",
|
|
||||||
"V c #C77326",
|
|
||||||
"C c #C4732B",
|
|
||||||
"Z c #C9732C",
|
|
||||||
"A c #CA792E",
|
|
||||||
"S c #C37432",
|
|
||||||
"D c #CB7431",
|
|
||||||
"F c #C77C33",
|
|
||||||
"G c #C97A33",
|
|
||||||
"H c #C27738",
|
|
||||||
"J c #CC7D3B",
|
|
||||||
"K c #D27737",
|
|
||||||
"L c #D17A3E",
|
|
||||||
"P c #856856",
|
|
||||||
"I c #8E7362",
|
|
||||||
"U c #927565",
|
|
||||||
"Y c #CC7E42",
|
|
||||||
"T c #CE823B",
|
|
||||||
"R c #D1853E",
|
|
||||||
"E c #A28975",
|
|
||||||
"W c #A3877B",
|
|
||||||
"Q c #AE917F",
|
|
||||||
"! c #CE8342",
|
|
||||||
"~ c #D78941",
|
|
||||||
"^ c #D18E4D",
|
|
||||||
"/ c #DD9555",
|
|
||||||
"( c #637BB5",
|
|
||||||
") c #6681B5",
|
|
||||||
"_ c #6A82B7",
|
|
||||||
"` c #6781B9",
|
|
||||||
"' c #6C85BB",
|
|
||||||
"] c #6F88BD",
|
|
||||||
"[ c #728CBD",
|
|
||||||
"{ c #728CC1",
|
|
||||||
"} c #788EC0",
|
|
||||||
"| c #7791C4",
|
|
||||||
" . c #7B94C3",
|
|
||||||
".. c #7F9AC5",
|
|
||||||
"X. c #7C95C9",
|
|
||||||
"o. c #7F9AC8",
|
|
||||||
"O. c #B29681",
|
|
||||||
"+. c #B29583",
|
|
||||||
"@. c #B59888",
|
|
||||||
"#. c #B99C8A",
|
|
||||||
"$. c #BAA393",
|
|
||||||
"%. c #C8AD98",
|
|
||||||
"&. c #839ECE",
|
|
||||||
"*. c #84A0C9",
|
|
||||||
"=. c #88A4C8",
|
|
||||||
"-. c #87A2D1",
|
|
||||||
";. c #8FA9D6",
|
|
||||||
":. c #9CB5DD",
|
|
||||||
">. c #C3C3C3",
|
|
||||||
",. c #F3F3F3",
|
|
||||||
/* pixels */
|
|
||||||
" ",
|
|
||||||
" ",
|
|
||||||
" ",
|
|
||||||
" >.>.>.>.>.>.>.>.>.>.>.>.>.>. ",
|
|
||||||
" >.5 5 5 5 5 5 5 5 5 5 5 5 5 5 >. ",
|
|
||||||
" >.5 >.>.>.>.>.5 5 >.>.>.>.>.5 >. ",
|
|
||||||
" >.5 >. >.5 5 >. >.5 >. ",
|
|
||||||
" >.5 >. >.5 5 >. >.5 >. ",
|
|
||||||
" >.5 >. >.5 5 >. >.5 >. ",
|
|
||||||
" >. >.5 5 >. >. ",
|
|
||||||
" >.5 5 >. ",
|
|
||||||
" >.5 5 >. O +.1 W - + $ ",
|
|
||||||
" >.5 5 >. E : O.#.@.U < * > X & X 3 4 * ' ",
|
|
||||||
" >.5 5 >. k o $.I %.Q I U - > $ * # % o ; I ' [ ",
|
|
||||||
" >.5 5 >. C F x x k v P 1 2 - < > % X @ ' _ ) ' ",
|
|
||||||
" >.5 5 >. C F F k h S 6 x J q & & * X { ] ] | [ ",
|
|
||||||
" >.5 5 >. h G F j r S w w Y e u p N { } X.| . ",
|
|
||||||
" >.5 5 >. 8 T C D a S c d S q N N j [ [ X.&.&. ",
|
|
||||||
" >.>.>.5 5 >.>.>. p R S Z N G c b z q j j k { { ' ' ' ",
|
|
||||||
" >.5 5 5 5 5 5 5 5 >. R R j B J z / ! S N M x | [ ( ( ( ",
|
|
||||||
" >.>.>.>.>.>.>.>. G C C a x z ^ / g N D G &.;.&.[ ' ",
|
|
||||||
" ! x j d l h J L w n m V _ [ .:.' ",
|
|
||||||
" R m m N Y d x S g t s C ( ( X. .( ",
|
|
||||||
" F N 7 C v 6 Y D e u B M ( ( ` ( ( ",
|
|
||||||
" F M 9 m h f K B r u B V ( ( ( ( ( ",
|
|
||||||
" n a r u e r a s B k C ' ( ( _ ",
|
|
||||||
" a i s n 9 n s A A s | ' [ ",
|
|
||||||
" . . . n s s s s A V ..-. ",
|
|
||||||
" ,. ,. ,. V s G C =. ",
|
|
||||||
" C ",
|
|
||||||
" ",
|
|
||||||
" "
|
|
||||||
};
|
|
|
@ -1,44 +0,0 @@
|
||||||
/* XPM */
|
|
||||||
static char *side_transform[] = {
|
|
||||||
/* columns rows colors chars-per-pixel */
|
|
||||||
"40 32 6 1 ",
|
|
||||||
" c None",
|
|
||||||
". c black",
|
|
||||||
"X c #3E3E3E",
|
|
||||||
"o c gray43",
|
|
||||||
"O c blue",
|
|
||||||
"+ c #F8F8F8",
|
|
||||||
/* pixels */
|
|
||||||
" ",
|
|
||||||
" ",
|
|
||||||
" ",
|
|
||||||
" ....... ",
|
|
||||||
" . . ",
|
|
||||||
" . . ",
|
|
||||||
" . . O ",
|
|
||||||
" . . OO ",
|
|
||||||
" . . OOO ",
|
|
||||||
" . .OOOOOOO ",
|
|
||||||
" . . OOO ",
|
|
||||||
" . . OO +++++++ ",
|
|
||||||
" . . O +++++++++++++++o ",
|
|
||||||
" . . X++++++++++++++++oo ",
|
|
||||||
" . . XXXXXX+++++++++oooo ",
|
|
||||||
" . . XXXXXXXXXX++++ooooo ",
|
|
||||||
" ....... XXXXXXXXXXXXXooooo ",
|
|
||||||
" XXXXXXXXXXXXXooooo ",
|
|
||||||
" XXXXXXXXXXXXXooooo ",
|
|
||||||
" XXXXXXXXXXXXooooo ",
|
|
||||||
" XXXXXXXXXXXXooooo ",
|
|
||||||
" XXXXXXXXXXXXooooo ",
|
|
||||||
" XXXXXXXXXXXXooooo ",
|
|
||||||
" XXXXXXXXXXXXooooo ",
|
|
||||||
" XXXXXXXXXXXXooooo ",
|
|
||||||
" XXXXXXXXXXXoooo ",
|
|
||||||
" XXXXXXXXXXooo ",
|
|
||||||
" XXXXXXXoo ",
|
|
||||||
" XXXXo ",
|
|
||||||
" X ",
|
|
||||||
" ",
|
|
||||||
" "
|
|
||||||
};
|
|
|
@ -1273,6 +1273,7 @@ int LightContributionToSample( trace_t *trace ){
|
||||||
to the surface normal the bigger is the amount of radiosity received.
|
to the surface normal the bigger is the amount of radiosity received.
|
||||||
So, for preserving the directional lights contributions, we scale down the radiosity
|
So, for preserving the directional lights contributions, we scale down the radiosity
|
||||||
contribution. It's a hack, but there's a reason behind it */
|
contribution. It's a hack, but there's a reason behind it */
|
||||||
|
#if 1
|
||||||
if ( bouncing ) {
|
if ( bouncing ) {
|
||||||
addDeluxe *= addDeluxeBounceScale;
|
addDeluxe *= addDeluxeBounceScale;
|
||||||
/* better NOT increase it beyond the original value
|
/* better NOT increase it beyond the original value
|
||||||
|
@ -1280,7 +1281,8 @@ int LightContributionToSample( trace_t *trace ){
|
||||||
addDeluxe = 0.00390625f;
|
addDeluxe = 0.00390625f;
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if ( doAddDeluxe ) {
|
if ( doAddDeluxe ) {
|
||||||
VectorScale( trace->direction, addDeluxe, trace->directionContribution );
|
VectorScale( trace->direction, addDeluxe, trace->directionContribution );
|
||||||
}
|
}
|
||||||
|
@ -3013,6 +3015,8 @@ int LightMain( int argc, char **argv ){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
lightAngleHL = qfalse;
|
||||||
|
|
||||||
/* fix up lightmap search power */
|
/* fix up lightmap search power */
|
||||||
if ( lightmapMergeSize ) {
|
if ( lightmapMergeSize ) {
|
||||||
|
|