Bamboo Studio - Controls Reference
------ ------ - -------- ---------

Please note, these controls are subject to change.

GLOBAL CONTROLS (All Modes)
------ --------  --- -----

KEYBOARD SHORTCUTS:
  Ctrl+1          - Switch to Modeller mode
  Ctrl+2          - Switch to Painter mode
  Ctrl+3          - Switch to Plotter mode
  Ctrl+4          - Switch to Vertex Editor mode

  Ctrl+Z          - Undo
  Ctrl+Y          - Redo

  Esc             - Cancel current operation/creation mode

CAMERA CONTROLS (VIEWPORT):
  Right Mouse Button (RMB) Drag       - Orbit camera around target
  Middle Mouse Button (MMB) Drag      - Pan camera (move target)
  Mouse Wheel                         - Zoom in/out

  Shift+RMB Drag                      - Pan camera vertically and horizontally

VIEW MENU SHORTCUTS:
  View > Top View                     - Camera looks straight down (90 degree pitch)
  View > Front View                   - Camera looks along -Z axis
  View > Right View                   - Camera looks from right side (9 0degree yaw)
  View > Perspective                  - Default perspective view (45 degree yaw, 30 degree pitch)

FILE MENU:
  File > New                          - Create new scene
  File > Open                         - Open existing .bam file
  File > Save                         - Save current scene
  File > Save As                      - Save scene with new filename
  File > Export Runtime Scene (BRS)   - Export scene for runtime use

TOOLS MENU:
  Tools > Texture Manager             - Manage texture library
  Tools > Prop Manager                - Manage 3D prop/model library (GLB files)
  Tools > Preferences                 - Theme, colors, and display settings


MODELLER MODE CONTROLS
-------- ---- --------

TOOL PANEL BUTTONS:
  Select          - Select and manipulate objects
  Move            - Move objects with gizmo
  Rotate          - Rotate objects with gizmo
  Scale           - Scale objects with gizmo
  Duplicate       - Duplicate selected object
  Remove          - Delete selected object

PRIMITIVE CREATION BUTTONS:
  Cube, Sphere, Cylinder, Cone, Ramp, Wedge, Knife

  Click primitive button, then:
    1. LMB Click & Drag in viewport - Define base size
    2. Move mouse up/down           - Define height
    3. LMB Click                    - Complete creation

    Hold Ctrl after completing     - Continue creating same primitive type

OBJECT SELECTION:
  LMB Click on Object                - Single select (clear previous selection)
  Shift+LMB Click                    - Multi-select (add to selection)
  Ctrl+LMB Click                     - Operation selection (for CSG operations)
  LMB Click on empty space           - Clear selection

GIZMO MANIPULATION (when Move/Rotate/Scale tool active):
  LMB Drag on Red Arrow/Ring         - Move/Rotate on X axis
  LMB Drag on Green Arrow/Ring       - Move/Rotate on Y axis
  LMB Drag on Blue Arrow/Ring        - Move/Rotate on Z axis
  LMB Drag on Center (Move tool)     - Free movement in camera plane

GROUPS:
  Object > Create Group              - Create group from selected objects
  Object > Add to Group              - Add selected to existing group
  Object > Remove from Group         - Remove from group
  Object > Ungroup                   - Delete group (keeps objects)

CSG OPERATIONS (Requires 2+ objects selected via Ctrl+Click):
  Edit > Join Objects                - Boolean Union (Solids and holes)
  Edit > Intersection                - Boolean Intersection
  Edit > XOR                         - Symmetric Difference
  Edit > Slice                       - Slice objects

HIERARCHY TREE:
  LMB Click on Item                  - Select object
  Drag and Drop                      - Parent/unparent objects


PAINTER MODE CONTROLS
------- ---- --------

PURPOSE: 	Apply textures and colors to individual faces of mesh objects, perfect for repairing 
			artifacts in the texturing when CSG operations have been applied.

BRUSH PANEL:
  Create new brush, assign texture/color, set size and scale

PAINTING:
  LMB Click on Face                  - Select face for painting
  Shift+LMB Click                    - Multi-select faces
  Apply Paint Button                 - Apply current brush to selected faces
  Clear Selection Button             - Clear face selection

FACE HOVER:
  Move mouse over faces              - Highlight hovered face (orange outline)

NOTES:
  - Only works on CSG mesh objects (converted primitives)
  - Each face can have different texture/color
  - Texture scale affects UV mapping


PLOTTER MODE CONTROLS
------- ---- --------

PURPOSE: 	Place 3D prop instances (GLB models) in the scene

TOOL PANEL BUTTONS:
  Select          - Select and manipulate prop instances
  Plot            - Place new prop instances
  Move            - Move props with gizmo
  Rotate          - Rotate props with gizmo
  Scale           - Scale props with gizmo
  Remove          - Delete selected prop instance

PROP BRUSH PANEL:
  Create prop brush, assign GLB model from Prop Manager
  
  There is a custome prop brush (octahedron) that can be used as a reference for
  such things as emitters, lights etc in the scene when loaded into BambooBasic.

PLOTTING PROPS:
  1. Select Plot tool
  2. Select a prop brush
  3. LMB Click in viewport            - Place prop at click location

  Ghost preview shows where prop will be placed

PROP MANIPULATION:
  Select tool + LMB Click on prop     - Select prop instance
  Gizmo controls (same as Modeller mode for Move/Rotate/Scale)

HIERARCHY:
  Shows all placed prop instances
  Click to select, shows properties on right panel


VERTEX EDITOR MODE CONTROLS
------ ------ ---- --------

PURPOSE: 	Direct manipulation of mesh vertices

TOOL PANEL BUTTONS:
  Select Vertex   - Select and view vertices
  Move            - Move selected vertices
  Add Vertex      - Add new vertices to mesh
  Remove Vertices - Delete selected vertices

VERTEX SELECTION:
  1. Select object from hierarchy (vertices appear as spheres)
  2. LMB Click on Vertex              - Select single vertex
     Shift+LMB Click on Vertex        - Multi-select vertices

  Selected vertices shown in bright color, unselected in dimmer color

MOVING VERTICES:
  1. Select Move tool
  2. Select one or more vertices
  3. LMB Drag on vertex gizmo arrows  - Move along X/Y/Z axis

  Centroid gizmo appears for multiple selected vertices

ADDING VERTICES:
  1. Select Add Vertex tool
  2. Option A - Add on edge:
     - Select 2 connected vertices
     - LMB Click near edge between them - Adds vertex on edge

  3. Option B - Add on face:
     - Select object
     - LMB Click on face              - Adds vertex on face, splits triangle

REMOVING VERTICES:
  1. Select Remove Vertices tool
  2. Select one or more vertices (Shift+Click for multiple)
  3. LMB Click with tool active        - Confirms removal

  WARNING: May create non-manifold geometry if not careful

VERTEX PROPERTIES PANEL:
  Shows X, Y, Z coordinates of selected vertex
  Use +/- buttons to adjust position precisely
  Edit boxes for manual coordinate entry

NOTES:
  - Only works on mesh objects (CSG results or converted primitives)
  - Converting primitive to mesh: Select in Vertex mode, dialog appears
  - Multi-vertex selection allows batch operations
  - Vertex size adjustable in Preferences


PROPERTIES PANEL (Right Side)
---------- -----  ----- ----

OBJECT PROPERTIES (Modeller/Plotter):
  Name            - Edit object/prop name
  Position X/Y/Z  - World position (+/- buttons or edit)
  Rotation X/Y/Z  - Euler angles in degrees
  Scale X/Y/Z     - Scale factors (1.0 = 100%)

  Selectable      - Checkbox to enable/disable selection
  Color           - Object color (for non-textured objects)

VERTEX PROPERTIES (Vertex mode):
  Position X/Y/Z  - Vertex world position (+/- buttons or edit)

GRID PROPERTIES (Vertex mode):
  Height          - Grid plane height
  Cell Size       - Grid cell dimensions
  Offset X/Z      - Grid world offset

PAINTER PROPERTIES:
  Shows selected brush details
  Surface info for selected faces

HIERARCHY PANEL (Left Side)
--------- -----  ---- ----

Shows tree structure of scene:
  - Groups (with children indented)
  - Individual objects/meshes
  - Prop instances (in Plotter mode)

INTERACTIONS:
  LMB Click       - Select item
  Drag & Drop     - Parent/unparent (Modeller mode)

VISUAL INDICATORS:
  Bold text       - Groups
  Normal text     - Objects/props
  Highlighting    - Follows selection state

PREFERENCES DIALOG
----------- ------

THEME:
  Light / Dark    - Application color scheme

SELECTION COLORS:
  Single Selection       - One object selected (default: orange)
  Multi-Selection        - Multiple objects (default: yellow)
  Operation Selection    - CSG operation targets (default: cyan)

VERTEX COLORS:
  Selected vertices      - Bright highlight color
  Unselected vertices    - Dimmer indicator color
  Vertex Size            - Sphere radius for vertex picking

GIZMO COLORS:
  X Axis          - Red
  Y Axis          - Green
  Z Axis          - Blue

VIEWPORT:
  Grid color
  Background color
  Wireframe color
  Outline Width   - Selection outline thickness

PAINTER:
  Face Hover      - Color for face highlighting

RESET TO DEFAULTS:
  Restores all colors and settings to factory defaults

ADDITIONAL NOTES
---------- -----

COORDINATE SYSTEM:
  X - Right (Red)
  Y - Up (Green)
  Z - Forward (Blue)

SELECTION OUTLINE:
  Selected objects draw with colored outline
  Width adjustable in Preferences
  Color depends on selection type

UNDO/REDO:
  Each mode maintains separate undo/redo stacks
  Use Ctrl+Z / Ctrl+Y

DEBUG WINDOW:
  View > Show Debug Window
  Displays real-time application messages (For me)

SCENE STATISTICS:
  View > Scene Statistics
  Shows object counts, vertex/face counts, etc.

WIREFRAME MODE:
  View > Show Wireframe
  Toggle wireframe overlay on all objects

PERFORMANCE:
  Complex CSG operations may take time
  Progress shown in debug window
  Large meshes may affect viewport frame rate (system dependant really)

FILE FORMAT:
  .bsf - Bamboo Studio file
  .brs - Bamboo Runtime Scene (exported for runtime)

