# Scene Builder Application Release Notes

## Version 1.7.1

### Added Features

- Added mulitple level Undo/Redo for operations that create and/or delete objects from the tree
- Added the ability to apply bathymetry to Arcs and Polygons
- Added the ability to display elevation
- Added conical solids
- Refactored the Edit and Context Menus
- Added the ability to create and modify Arcs for Surface Modeling
- Added the ability to create and modify polygons for Surface Modeling
- Added Support for Digital Elevation Model (DEM) and Image Files
- Added the ability to extract Arcs from Image Date
- Refactored Texture Mapping Dialog to include the ability of removing textures
- Added the ability to merge, auto-connect and grow Arcs
- Added the ability to create Surface CMB Models from Polygons and Arcs
- Added the ability to import solid volume meshes and create appropriate CMB Models containing them

### Fixed Bugs

## Version 1.6.4

### Added Features

- Scene Builder can now produce valid CMB models with completely submerged solids
- Added Import Shortcut (Ctrl+I/Meta+I)
- Added Duplicate Shortcut (Ctrl+C/Meta+C)
- Added Delete Shortcut (Delete)
- When loading or creating the first object in a scene, the camera will automatically reset.
- Meshing dialog now uses absolute or relative mesh length instead of area constraints
- Interpolation Radius has been renamed Elevation Weighing Radius in Meshing dialog

### Fixed Bugs

- Objects were positioned "randomly" in Omicron input (Mantis 9639)
- Renamed Duplicate Shortcut to Clone
- Fixed a crash when moving Glyphs then closing data file(Mantis: 9606)
- Fix a bug that Glyphs saved with selection color (Mantis: 9607)
- Importing a single instance can not be randomly placed (Mantis: 9609)
- Duplicating glyphed nodes as non-glyphed nodes causes a crash.
- TIN Stitching Produces a scene file that crashes Scene Builder (Mantis: 9610)
- Fixed issue with Object Importing Dialog with the dialog reseting when the filename widget lost focus
- Fixed issue where importing a single object randomly would result in the object not being snapped
- Fixed a bug that caused Scene Builder to crash when loading in a VTK Polydata file
- Objects can be imported without being transformed even when there is a snap target
- Imported meshes would be randomly translated (Mantis:6771)
- SceneBuilder crashes from the import dialog when you try to randomly duplicate using a single node (Mantis:9103)

## Version 1.6.3

### Fixed Bugs

- Fixed Crash when deleting selected contours and polygons that were using them.

## Version 1.6.2

### Added Features

- Absolutte paths for data and texture files associated with objects are now displayed in the Information Panel (Mantis 7024)
- Added the ability to randomly place object based on a underlying textute (in addition to using contours)

### Fixed Bugs

- Textures can now be removed from objects that can have textures associated with them (Mantis 9119)
- Getting information of an UniformGrid/Image Object no longer causes a crash (Mantis 9160)
- Fixed issue with SceneBuilder not generating a proper CMB file after surface mesh generation (Mantis 9120)
- Progress Bar is now properly displayed/updated. Note that the bar is not diplayed if the action takes less than a couple seconds. (Mantis 8884)
- Duplication using Glyphs now use the attributes (color, scale, orientation) of the original (Mantis 9104)
- Ground Planes are now properly read back in from a .sg file (Mantis 9096)

## Version 1.6.1

### Added Features

- Contours that are extracted from DEM are no longer self-intersecting
- Meshing polygons now uses Triangle's Max Area Constraint

## Version 1.6.0

### Added Features

- Added capability to select/highlight multiple polylines/contours by holding down Shift key.
- Made the contours always float on top;
- Added the ability to add conical regions
- Added the ability to add Uniform Grids (from DEM and Image Data)
- Extracted Contours from images no-longer created intersection contours
- Added support for large texture maps
- Added support for polygons with internal loops
- Subsets of Glyphs can now be selected and re-positioned

### Fixed Bugs

- Fixed the problem of dropping the first contour point
(by default, using the camera's focal point as starting point)
- Fixed problem with deleting nodes
- Fixed Contour Control Panel
- Fixed a couple issues when first starting editing a contour after loading a map file.
- Fixed Issue 9022: Contour Widget no working correctly on Macs

## Version 1.5.0

### Added Features

- New Version 2.0 File Format
- Ability to Lock/Unlock a node : This prevents the node's contents from being move, scaled, or rotated.
- Added support for loading LIDAR data as double precision (user queried if it appears significant precision lost with float representation). How it is loaded (float or double) is saved in the sg file.
- Added contour generation from image (vti or "raw DEM") capability (via dialog)
- Model/mesh now run as external process on the server (instead of on client)
- Improved Contour/Arc Editting
- Added the ability to import map files
- Added User Definable Types to Nodes
- Line Objects now can be colored
- Snap Target Information is now saved in Version 2 Files
- Users can now create duplicates of an object and store them as a single node
- Initial Polygon Preview Functionality

### Fixed Bugs

- Duplicating VOI's, Lines, and Contours resulted in incorrect nod being created

## Version 1.3.5

### Added Features

- Updated Splash and About screens
- Removed Units dialog based information (until fully implemented)

### Fixed Bugs

- Bug: Merging of duplicate points during reading of a "sol" file resulted in lines
which then broke the exportation of solids to a CMB file.

## Version 1.3.3

### Added Features

- Name changed from SceneGen to Scene Builder
- The volume constraint used within Omicron "model" set to be 1% of the VOI volume
- Add the ability to create a TIN Stack

## Version 1.3.2

### Added Features

- LIDAR pieces now load as separate nodes (instead of appended together)
- Can mesh single or multiple pieces from a LIDAR file that has multiple pieces or multiple pieces from separate LIDAR files (a temporary LIDAR Pts file is created)
- user can now specify a filename prefix to be used with omicron

## Version 1.3.1

### Added Features

- Added ability to export a CMB file from a 2d contour.
- Added CUBIT facet file reader

### Fixed Bugs

- If a new dataset is loaded over an existing data, the display panel may show duplicated/multiple

## Version 1.3.0

### Added Features

- Added "Hover" (2D coordinates) in lower left corner of GUI when in 2D manipulation mode
- Added Random placement of objects with Polygon (contour) and/or VOI constraints; these constraints can be combined together with "Invert" capability.
- Setting of canonical directions no longer does a resetView; the focal point is unchanged, but the camera position (based on desired view direction and "current" camera distance) and viewUp are changed. This allows the view to stay focused on a region of interest. The user can click "resetView" if zooming out was also desired (so extra click in that case).
- When switching between 2D and 3D manipulation modes, set parallel scale or camera position (respectively) to keep approximately the same view (of course, when switching to 2D, will be looking down a major axis, so it is really the apparent "distance" of the camera from the data that is kept ~constant).
- Changed 2D controls to more closely match 3D controls (in particular, Pan as middle mouse button)
- Restructuring of context menus
- Moved to "Version 4" CMB files (with increased support for 2D models)

### Fixed Bugs

- Lines and Contours parent nodes were being created (if didn't exist) when doing a CMB file export.

## Version 1.2.1

### Added Features

- Can switch between "2D Manipulation" and "3D Manipulation" options for camera
- Added TIN stitching option so that can "force" stiching as type I (if the two loops have same # of points); tolerance isn't needed for the stitch during Type I stitch. Also, in the older "Auto-detect" mode, the tolerance is automatically (internally) increased if it fails at the initial setting

### Fixed Bugs

- Bug: Clarification of "use Triangle" option in TIN stitching; originally was Type I only option which
essentially indicated whether or not points could be inserted on the stitch boundary, but could be misinterpreted to mean create triangles instead of quads. Now the option "Allow interior point insertion" applies to both Type I and Type II TINs, but for Type I is still ignored if "use Quads" is selected.
- Bug: If any of the meshes involved in stitch are transformed via actor properties in SceneGen (thus display only is transformed), the mesh is transformed before sending it to the mesher (previously display transform was ignored during stitching)
- Bug: The tolerance factor was computed based on the minimum (x, y, or z) length of the bounds, which is likely going to be z, even though z ignored during stitching; now uses min of x of y lengths
- Bug: TIN stitching "Line test" used wrong tolerance (MinDistance instead of MinDistance2)
- Bug: During line test, only the previous interior point (between start and potential end of line) was being tested, not all the points; while testing only previous ok much of the time, not ok in many cases
- Bug: MAJOR bug when allowing point insertion; if more than 2 points were inserted on a side, the loop sent to triangle was incorrectly ordered (primiarily a type II issue). This may have (probably did) caused omicron to fail.

## Version 1.0.1

### Added Features

- Exposed "Tolerance" for TIN stitching; used for determining equality/line

### Fixed Bugs

- Bug: TIN stitching didn't work if CellData present on the inputs

## Version 1.0.0

### Added Features

- TIN stitching
- Export of solids (and lines) to CMB (without using mesher)
- Added "Line segment object" related features
- ObjectInfo tab now contains object info
- Editing of VOI via min/max points
- ParaView's axes control now available

## Version 0.3.3

### Added Features

- CMB file version increased to 3

## Version 0.3.2

### Added Features

- Shell/region completion added when exporting CMB model (choosing "Accept"
after meshing)
- Added option to import dialog regarding whether or not to translate imported object based on viewpoint

### Fixed Bugs

- Bug: If meshing failed, meshing option wasn't reenabled

## Version 0.3.1

### Added Features

- Can save LIDAR data as a single piece from the LIDAR preview dialog
- Can change number of points to load for a LIDAR object via right-click in scene tree

### Fixed Bugs

- Bug 7181: Loading a SceneGen file with LIDAR would load the entire LIDAR dataset
(didn't limit to max # of points as done during import). Info is now saved in the SceneGen file so will load as saved.

## Version 0.3.0

### Added Features

- Improved look to Object Import Dialog
- Can import only part of a LIDAR file (specify maximum # of points) to minimize SceneGen memory usage
- Added some more info to CMB file written out to facilitate running "mesh" from CMB
- Node names saved in CMB file for use as shell/region name in CMB

### Fixed Bugs

- LIDAR data was being translated according to the view point on import
- Progress widget for LIDAR dialog was "hidden" on the Mac

## Version 0.2.9

### Added Features

- Display Panel in LIDAR preview dialog for changing pt size and piece transformation
- Default pt size for LDIAR data is now 2 (instead of 5)

### Fixed Bugs

- Zooming on (completely) clipped object in LIDAR preview dialog
- Direct entry of clipping coordinates was done 1 digit at a time (focus moved away after each digit)

## Version 0.2.8

### Added Features

- Added Texture Mapping Capabilities

### Fixed Bugs

- Fixed crash caused when deleting a node

## Version 0.2.7

### Added Features

- Added LIDAR preview dialog for SceneGen (can skip by unchecking "Use LIDAR Preview Dialog")
- Improved *.poly file reading support

### Fixed Bugs

- Fixed bugs in LIDAR reader

## Version 0.2.6

### Added Features

- Added the ability to interact when mutliple objects are selected
- Applied PlaceFactor on BoxWidget to improve selection visibility.
- FR 6442: Multiple Selection, ability to select several objects at the same time. To add to current selection from the 3D render window, the ShiftKey needs to be held down, otherwise, the existing selection will be cleared.

## Version 0.2.4

### Added Features

- FR 6440: Ability to return to SceneGen with Preview window still open
- FR 6450: Change the word "node" to "object" in SceneGen
- FR 6437: SceneGen Rename Disc Constraint
- FR 6436: Delete volume constraint from SceneGen

### Fixed Bugs

- Bug 6435: SceneGen crash when selecting create surface mesh
- Bug 6404: When a node is selected in the tree, clicking on the 3D selection button doesn't deselect the node in the tree.
- Bug 6439: "Create Surface Mesh" Preview Window locks "Process Output" window in SceneGen

## Version 0.2.3

### Added Features

- SceneGen now displays the Test_Mesh.vtk result of the Omicron surface mesh and will display an error if the file is not created (and will instead display the full surface mesh).

## Version 0.2.2

### Added Features

- Added ability to write CMB file from SceneGen (after running Omicron). In addition to shell colors from SceneGen, we also read in the BCFaces info from Omicron output to build initial set of model faces (that at least usually is different from the initial shells).
- Added a pre-meshing dialog that allows the user to set size constraints as well as to be able to select the VOI to use.
- Fixed Snapping Target Icon from not being removed.
- Changed Select/Unselect to Set/Unset Snap Target.
- Fixed Help window title in SceneGen.
- SceneGen help now starts at top
- Added a Zoom button feature on the scene panel that allows the user to zoom onto a selected object.
- Added a Clear Selection button feature to the scene panel.
- Added the ability to restrict object duplication on Import based on a VOI.
- Added the ability to get all the VOIs in a scene.
- Added the ability to qtCmbSceneTree's duplicate node to take in a bounds to restrict when object get placed.
- Added the ability to restrict object duplication on Duplicate Randomly based on a VOI.
- Fixed problem with selecting and unslecting objects via the 3D View.
- Fixed issue that caused the handles of the 3D Box widget not to be properly scaled when zooming in on an object.
- Added the ability to set a node's opacity.
- Added new 32x32 icons for toolbars and updated the GUI to use these new icons.
- Fixed problem with running internal meshers

### Version 0.2.1

### Fixed Bugs

- Fixed issue with unsetting a node's color. The bug was that if it was a leaf node, then node still thought it still had explicit color.

## Version 0.2.0

### Added Features

- Added the ability to un-select the snapping target. This will allow the object to be LOD when interacting with the scene.
- All Nodes can have explicit color associated with them. This color is then propagated down to its children nodes unless they have an explicit color associated with them. If an object is selected and the color is changed via the display panel then the associated node will have an explicit color assigned to it.
- Explicit Node Color information has been added to the .sg file (note that this was added in such a way that the version number did not have to change.
- Reading is OSDL files now sets the color at the higher level nodes (Solids, Occluders, and Surfaces) instead of at the leaf nodes.
- The user has the ability to remove the explicit color property from any node except for the root node of the scene.
- When importing an object, the user can now randomly place the object as well as indicate how many "copies" should be created (if an object has been identified as the snapping target) .
- During Import, the user can now indicate if the object should be initially rotated and scaled.
- Similar to the changes to "Import Object", a new feature called "Duplicate Node Randomly" which allows the user to randomly duplicate the object N times. Where N is set by the user.
- A progress dialog is now displayed when reading in a .sg file.
- "Mapped Scalars" is now off by default.
- Added new splash screen.

## Version 0.1.x

### Added Features

- Ability to set an object to be the target for snapping.
- Ability to snap an object to another (referred to as the Snap Target).
- The Snap Target is not LOD (Level of Detailed) when interacting with the scene. This makes it easier to position objects for snapping.
- Added the ability to start with an empty scene.
- Added the ability to import and duplicate object nodes.
- Added the ability to create a Scene Tree (with Type Nodes).
- Add the ability to create multiple VOIs.
- Added the ability to delete nodes.
- Added the ability to make nodes invisible.
- Added the ability to name nodes (and create unique names if the name already exists).
- Create a new file format called the SceneGen File format (.sg extension).
- Added Save and Save As.
- Added box widget support for manipulating objects in the scene.
- Added units to both the scene and imported objects. NOTE: this information is not currently used just stored.