The main window is split into four large areas. A listbox named "Hierarchy:" plus some buttons, a listbox named "Properties:", an area labeled "Arguments:" and a text widget (the so called "Console").
The hierarchy listbox, you guessed it already, displays the object hierarchy of the current scene. Using this listbox you may browse through the hierarchy of the scene with your mouse and you may select one or more objects.
Browsing and selecting should be very intuitively: Use a double-click to enter a level (or an object with child objects), and a single click to select objects, multiple objects may be selected using click and drag, or holding down the Shift or Control key while clicking. Keyboard operation is also possible if the listbox has the input focus.
A ".." is displayed as the first element of the current level if you are "inside" a level or another object. Doubleclicking on the ".." brings you up a level. The buttons below may be used to change the selection or to quickly jump through the hierarchy. They should be self explanatory.
You will notice, that there is a first object called "Scene" in the top level, even though the scene seems to be empty. See section The Scene Object for more information regarding this special object, and what it is good for. Note, that you cannot delete or copy this object.
This listbox displays the properties of the currently selected object.
If there are multiple selected objects in the hierarchy listbox, the properties listbox will display no properties at all.
Unlike the hierarchy listbox, where you can select multiple entries, only one property may be selected. If a property is selected, it's associated GUI will be shown in the appropriate area.
If a property is selected and a different object is selected using the Hierarchy listbox the property GUI that has the same index as the previously selected GUI in the properties listbox will be shown. To avoid that or to clear the property GUI for fast browsing through the scene you can use the "None"-button.
What properties exactly will be shown, and how the GUIs look alike depends on the selected object and the selected property. This is documented in section Mops Objects and Properties.
Here are some general remarks:
The various things that may be changed using a property GUI will normally not be applied until the "Apply"-button is pressed!
You can undo all changes to the arguments of a property that have been made after the last click on "Apply" with the "Reset" button. This is, however, not an undo mechanism!
Note, that property GUIs of custom objects may also offer interactive elements that do an instant "Apply". All GUIs of the core objects of The Mops and the Scene object do not change anything until the "Apply" button is used, however.
Also note, that the property-GUI may also offer ways to destroy information, operations that cannot be undone! The NURB properties e.g. let you switch from a curve/patch with weights to a curve/patch without weight information, switching weights off will destroy the current weights. There is no way to get them back, as switching to a curve/patch with weights again sets all weights to 1.0.
A property may be copied and pasted to another object, see the Edit-menu. But, you cannot paste a property of type NURBPatchAttribute to a NURBCurve. The object you are pasting to, should have a property of the correct type. In other words, you cannot enrich objects with all sorts of properties this way.
Pasting a property to multiple selected objects does work too. This is a great way to apply e.g. a surface shader to a big number of objects, without going the long way of setting a new shader and entering parameters for it for every object.
Since the granularity of the properties may be too low, read you do not want to copy and paste whole properties all the time, you may mark single parameters with a double click on the labels of the parameters. The marked parameters will then be preceded by an exclamation mark.
If you now copy this property all marked parameters will be omitted.
It is also possible to copy just the parameters you marked
using "Copy Marked Prop"
.
A simple example:
Our task is to give a big number of objects the same color, but they already have different opacity settings. We can accomplish this by copying just the color attribute, but leave all other attributes as they are:
"Attributes"
property GUI."Color"
; it should read "!Color"
now."Copy Marked Prop"
in the "Edit"
menu or the
hot key <Ctrl+I>
."Paste Property"
or <Ctrl+V>
.Care must be taken when pasting incomplete properties to objects which do not have complete properties already. Do not paste an incomplete shader property to an object which does not already have the same shader!
The fourth part of the main window is the console. The console is mainly for text output (informative, warning and error messages). For this, the console captures the stderr and stdout channels of the Tcl-Interpreter The Mops is running in.
You can also enter commands, new Tcl procedures and so on in the console.
The size of the console is managed by a so called paned window management. Move your mouse to the upper border of the console until the mouse pointer changes. Now you may drag the border to adjust the space (relative to the upper part of the main window) that is consumed by the console.
The console has a (initially hidden) menu that you may open with the right mouse button.
Another important thing that should not be forgotten is that the keyboard shortcuts for the various main menu entries do not work if the console has the input focus! Instead, other keyboard shortcuts are in effect!
Simply press <Shift+TAB>
to move
the focus away if you intend to use main
menu shortcuts.
Note, that the <TAB>
key does not move the
focus away from the console.
<TAB>
instead completes names of commands, files, variables
and widgets.
You may try this out by typing tip
in the console,
then press <TAB>
.
The console automagically completes tip
to tipoftheDay
(the procedure that prints out the tip of the day, try it).
Another simple demonstration of the consoles capabilities:
<Ctrl+c>
once;
then <Ctrl+v>
10 times).None
button).forAll 0 {movOb $i 0 0; rotOb [expr $i*10] 0 0}
This example uses three procedures:
forAll
: allows to execute
a command for each of the selected objects, or for each object in the
current level if no objects are selected.movOb
: moves the selected object(s).rotOb
: rotates the selected object(s).See section The Tcl Scripting Interface for a listing of all the available commands.
Note, that the example uses a side effect (the variable i
that
holds the index of the currently processed object) to calculate
the amount of the movement and rotation.
For more information regarding the console, please refer to the appropriate documentation by the original author Jeffrey Hobbs (see the console-menu).
Another important part of the main window has not been discussed so
far, this is the main menu bar. Note, that many menu entries have keyboard
shortcuts that are displayed in each entry. You can adapt the shortcuts
using the file "mopsrc"
.
The File
menu deals with standard file operations:
New
, clears the current scene (deletes all objects).Replace
, clears the current scene and closes all views,
then loads a new scene from disk.Insert
, inserts the objects and views of a mops file
into the current scene.Save as
, saves the current scene asking for a new file name.Save
, saves the scene. If the scene has not been saved before
(read, you have not given it a file name) you will be asked for
a file name.Export RIB
, exports the current scene to a RIB,
asking which camera (which view) to use.
If the scene contains no light a simple distant light
located at camera position will be added. Load Custom
, loads a file containing a custom object.
Depending on the OS The Mops is running on, these are files with the
extension so or dll.
See section
Custom Objects
for more information about custom objects.Save Prefs
, safe the current Preference settings (from
"Scene/Prefs"
) to the mopsrc file (see section
The Mopsrc File for more
information about this file).
This includes position and size of the main window, the first view
and the tool box. Be warned, that the settings are appended to
the mopsrc file thus overriding any future changes that you could
make manually in the first part of this file!
Quit
, do I need to explain this one?The Edit
menu contains standard clipboard operations:
Copy
, copies the currently selected object(s) into the clipboard.Cut
, moves the currently selected object(s) into the clipboard.Paste
, copies the object(s) from the clipboard to the current level
of the scene.
Note, that the content of the clipboard remains intact after this
operation, this means that you can paste multiple times!
Delete
, removes the selected object(s) from the scene.
Copy Property
, copies the currently selected property of the
currently selected object to the property clipboard (the property
clipboard is completely independent from the normal object clipboard!).
Marked parameters will be omitted!Inverse Copy Prop
, copies the currently marked parameters
of the currently selected property of the
currently selected object to the property clipboard (the property
clipboard is completely independent from the normal object clipboard!).Paste Property
, copies a property from the property clipboard
to the currently selected object(s). Name
; name objects (except scene and view objects!).Swap
; exchange the position of two selected objects
in the hierarchy.Undo
; perform undo operation, just applicable to changes
made with interactive actions, see section
Interactive Actions.The Create
menu entries let you create objects:
NURBCurve
, create a new NURB curve. A small dialog box will
pop up, where you may specify the length of the new curve.NURBPatch
, create a new NURB patch. A small dialog box will
pop up, where you may specify the width and height of the new patch. Solid
, create a new solid primitive object, for use in CSG.
Box,
Sphere
, Disk
, Cone
, Cylinder
, Torus
,
Hyperboloid
or Paraboloid
may be selected.Level
, create a new hierarchy object. Union
, Intersection
,
Difference
and Primitive
may be selected.
Another type, Level
, is not a CSG operation. It is used to build a
level of the attribute hierarchy. Finally, you may create levels
of type TrimLoop
to mark a loop of trimcurves for a NURB patch. Light
, create a new light source.Custom Object
, create a new custom object.Instance
, create an instance of the currently selected
object, see section
Instance Objects
for more information regarding instances.View
, a new View window will be opened.The Tools
menu:
Tools
menu contains two sub menus NURBCurve
and
NURBPatch
with various NURB based modeling tools that are explained
in depth in section
NURB Modeling Tools.Show
, Hide
set and unset the Visibility-Editor
attribute of the selected object(s) thus making them invisible.Convert
starts the convert action that has been
registered for the type of the selected object. Instances
are e.g. resolved. Sweep, Revolve or Extrude objects will
be converted to simple NURB patches.Force Notification
force the notification callbacks of
all selected objects (or all objects in the scene if no objects are selected)
to be called.The Custom
menu is initially empty. Custom objects and PlugIns,
may create entries here.
The view window is split into a menu bar and a OpenGL-widget, where interaction and drawing takes place. The title of the view window gives information about name, current type and action of the view.
Here are all meny entries of the View
menu:
Quick Render
, the scene is exported to a RIB using the
camera settings of the current view; then the "QRender"
command
(see the preferences) will be called.Render
, the scene is exported to a RIB using the
camera settings of the current view; then the "Render"
command
(see the preferences) will be called.Redraw
, forces the OpenGL-widget to be drawn, this is
particularly useful if automatic redrawing of the view has been disabled.Close
, the View window will be removed.The Configure
menu may be used to change preferences of the view.
All possible preferences are outlined in section
Views.
Important keyboard commands of a View
:
<Left>
, <Up>
, <Right>
,
<Down>
rotate viewer around origin.<Add>
, <Sub>
(on the numeric keypad) zoom view.Interactive actions:
<v>
you may move the view with your mouse.<R>
(note the case!) starts rotating the virtual
camera around the point it is looking to.<o>
starts zooming the view. Moving the mouse up
zooms in and moving the mouse down zooms out.You may also move the view by dragging with the rightmost mouse button and zoom the view with the middle mouse button.
Additionally, if you hold down the Shift button while dragging with the rightmost mouse button you can move the camera in the direction it is looking. Note, that this affects both from and to. Furthermore, this movement will have no visible effect in parallel views.
If you have a wheel mouse and it is configured to send Mouse4 and Mouse5 button events, The Mops will zoom the view when you turn the wheel (Linux only).
Using the menu entry Zoom to Object
or
the shortcut <Ctrl+o>
you can change the
views from to and zoom settings so that the selected objects
will be displayed centered in the view window.
This is handy, if you are e.g. searching for objects or simply
lost in space.
The tool window displays some buttons that start interactive modeling actions or other modeling tools or create objects.
Note, that in contrast to the keyboard shortcuts of the view windows the buttons switch to the modeling actions for all available views. For more information about the actions see section Interactive Actions.
The tool window may be configured by the user using the preference setting toolBoxList in the mopsrc file. You may select from the groups and change the order in which they appear in the tool window.