The typical 3d editors share much in common.
The basic units of a 3d editor are:
- A ThreeDeeGraphics display (usually OpenGl, sometimes DirectDraw)
- A database of materials, models, and textures
- A set of scenes, where each scene contains a set of elements, which stores the material,model,texture, and transforms
- A GUI with element selection/modification
- A file format for the 3d documents
Additional units may be:
- Importing/Exporting of 3rd party formats, i.e. ModelLoading
- Various rendering modes - point,wireframe,flat,shaded,textured
- Clipboard with cut/copy/paste
- Select All/Invert/None
- Right button usually activates a context menu
- UnitTests for the display - HowToUnitTestOpenGlCalls
Standard tools usually include:
- Select and Rectangle select
- Transform/Rotate/Scale, and may include mirror/bend/twist/shear
- Paint
Element selection must be consistent:
- Left button usually selects an element
- Shift+Left = Add to selection
- Ctrl+Left - Remove from selection
Solved:
- Selection occurs on b1(down) as the choice between selecting and showing the relevant context menu would occur then
- If selection happens over a currently selected element - what is the behaviour? Simply select the new element
- If selection happens over multiple currently selected element - what is the behaviour? Select the singular
Unresolved:
- If the context menu activates differently when over an element, should the selection change? (I don't think so. . . )
- Should the selection be emptied if b1_down happens when not over an element? (have to see what others do. . . )
- Yes - Clears selection
- No - Retains selection, more user-friendly, allows better use of toolbars
. . . page is still in progress --
LayneThomas