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 * UnitTest''''''s 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