# ProBuilder 2.9.3f0

## Features

- Support exporting quads in OBJ format.
- Add a context menu item to quickly create material palettes from the current Asset window selection.

## Bug Fixes

- Use `additionalVertexStreams` mesh attributes where possible when ProBuilderizing.
- Fix for Windows version sometimes endlessly creating folders when root folder moved from Assets/ProCore.

# ProBuilder 2.9.2f1

## Bug Fixes

- Add file stubs for deprecated repair actions to prevent compilation errors when updating.

# ProBuilder 2.9.1f0

## Features

- New PLY model exporter.
- OBJ export rewritten, now supports:
	- Multiple texture maps
	- Vertex colors (MeshLab format)
	- Texture map offset / scale
	- Local or world space mesh coordinates
	- PBR maps (http://exocortex.com/blog/extending_wavefront_mtl_to_support_pbr)
- Improve Mesh Asset export dialog and options.

## Bug Fixes

- Fix ProBuilder preferences sometimes not loading.
- Fix deprecated method warnings in 2017.1 beta.
- Fix occasionally flipped UV axis on merged faces.
- Don't crash if ProBuilder folder has been renamed.

# ProBuilder 2.9.0f3

## Features

- Support for saving and loading custom Material Palettes.
- ProBuilder now able to store preferences per-project as well as globally.
- Significantly improve performance of Weld Vertices function.

## Bug Fixes

- Preferences Window now renders correctly in Unity 5.6 and up.
- Exit Bezier Shape editing when Esc is pressed.
- Quell unnecessary errors when ProGrids interface fails to load UnityEditor assembly.
- Fix potentially ambiguous reference to Axis enum in API examples.
- Fix mesh leak when exporting STL files.

## Changes

- Move pb_Constant into ProBuilder2.Common namespace.
- Move pb_Lightmapping class in EditorCommon namespace.
- Improve wording of warning when shortcut preferences are reset.

# ProBuilder 2.8.1f0

## Features

- Improve grid snapping when placing Poly Shapes.
- Add a callback when a mesh is rebuilt (pb_EditorUtility.AddOnMeshCompiledListener).
- Remove max width limitation on Material Editor window.

## Bug Fixes

- Fix incorrect UV render scaling on retina and other scaled screens.
- Fix deprecated warnings on Handles calls in Unity 5.6.
- Fix Icosphere API example deprecated function calls in Unity 5.6.
- Fix UnityObjectToViewPos warnings Unity 5.6.
- Fix Poly Shape not generating UV2 for mesh.
- Catch an occasional Null Reference when viewing UV2 channel.
- Fix Null Reference in Poly Tool undo callbacks.
- Fix errors in adding pb_Entity script during repair mesh references action.
- Improve consistency of Vector2/3/4 hashing functions.
- Fix particularly slow function in MergeFaces action.
- Fix preferences GUI layout.

## Changes

- Start Poly Shape height at 0.
- First Poly Shape click always sets pivot.

# ProBuilder 2.8.0f1

## Features

- New "Poly Shape" interactive shape.
- New "Bezier Shape" interactive shape.
- Unity 5.6 beta compatibility.
- Improve default UV layouts for new shapes.
- Add a shader for reference billboard planes ("ProBuilder/Reference Unlit").

## Bug Fixes

- Fix material editor applying to child transforms of selection.
- Fix instantiated objects not getting a UV2 channel when "Auto Generate UV2" is enabled.
- Material Editor now works with a relative path.
- Fix incorrect handle rotations in Element mode.
- About Window now loads even when not in *Assets/ProCore/ProBuilder*.
- Address a rare NullReferenceException when ProBuilder Editor is initialized.
- Don't spam Console with errors if update check fails to connect (only affects WebPlayer target).
- Add a more descriptive message to update check if connection fails.

## Changes

- Automatically toggle Detail Entity Type object's lightmapping static flag, preventing broken lightmap atlases.

# ProBuilder 2.7.0f7

## Features

- New redesigned "About" window.
- New "Check for Updates" window and menu item.
- Add a repair script to apply materials when upgrading from Basic to Advanced.
- Include option to restrict "Select by Vertex Color" to current selection.
- Add "Generate Shadow Volume" API example and action.
- Add preference to enable experimental features (current feature: Bezier shape).
- Add option to smooth round sides of cylinder in Shape Tool.
- Add repair script to strip and rebuild pb_Object from Unity mesh.
- Add repair script for rebuilding shared index caches (addressed IndexOutOfRange errors in RefreshNormals function).

## Bug Fixes

- Fix inconsistent About Window behavior when importing updates.
- Make face highlight code snippet more robust in Runtime Editing example.
- Don't leave a progress bar behind if Probuilderize fails.
- Fix ProBuilder-ize adding pb_Entity multiple times.
- Apply Quick Offset adjustments to all selected ProBuilder objects.

# ProBuilder 2.6.9f3

## Bug Fixes

- Fix vertex handles appearing offset when using an orthographic scene view.
- Mark KDTree Triangle and pb_Stl as Any Platform in build targets.
- Fix compile errors in standard vertex color shader on Unity 5.5 on iOS
- Fix compile warnings in Unity 5.6.0b4
- Use multi-Unity-version compatible shader in Vertex Colors API example.

# ProBuilder 2.6.8f1

## Features

- Add option to restrict Select by Material to the current selection.
- Add alternate method of specifying torus radius dimensions.

## Bug Fixes

- Fix regression that broke iOS and Android build targets.
- Fix arch preview shape and built shape sides not matching.
- Fix issue where UV Editor could be out of sync with scene UVs after planar or box projection.
- Don't fail face or vertex picking when the required materials aren't found.
- Whenever a prefab change is detected rebuild the mesh.
- Fix null reference when attempting to bevel open edges.
- Remove unused and buggy Debug UVs shader.

# ProBuilder 2.6.7f4

## Features

- New face extrusion options to extrude along face normal, vertex normal, or per-face.

## Bug Fixes

- Fix potential drag selection inconsistencies when picking vertices in Unity 5.5.
- Fix bug where Backspace key in UV Editor with a GUI control focused would incorrectly register as a shortcut.
- Fix auto uvs rotating around handle pivot when using the rotate gizmo.
- Add undo for auto uv changes made by gizmos.
- Fix uv tiling toolbar not applying with mixed selection.
- Move pb_Reflection to Editor so as not to be included in builds, fixing errors when targeting Windows Store.  Remove unused ParseEnum<T> function in pbUtil for same reason.
- Retain smoothing group information when extruding.
- When flipping a selection of face edges where faces are not quads be specific about the reason for failing.
- Fix misc. potential hangs when registering ProBuilder objects for Undo.

## Changes

- Make default height segments for cylinder 0.
- Move some common class files into the Core folder so they're included with the Core lib instead of MeshOps.
- When grow selection by angle is off force iterative to on.

# ProBuilder 2.6.6f0

## Features

- Unity 5.5 support.
- Improve readability of Unity version -> ProBuilder package chart.
- Improve performance of mesh rebuild functions.
- Add API example showing how to highlight faces based on distance to a point.

## Bug Fixes

- Don't update mouse edge when not in geometry mode.
- Fix face and edge previews only rendering a subset of elements on meshes with high vertex counts.
- ProBuilder Editor doesn't need to be open to export meshes.
- Fix weird triangulation on Door shape.
  Fix some incorrect calls to pbUndo.RecordObjects that could cause Unity to lock up with large meshes.
- Fix bug where "Export Mesh Asset" would always create an extra folder.

## Changes

- pb_Object.Refresh now accepts a bitmask to enable/disable different component refreshes.
- Move Create ProBuilder Cube menu item to "GameObject/3D Object/ProBuilder Cube".

# ProBuilder 2.6.5f0

## Features

- Add procedural mesh extrusion example.

## Bug Fixes

- Fix bug where face/vertex picking with hidden selection off and intersect rect would not work in deferred rendering path.
- Fix bug when "Meshes are Assets" is enabled where exiting play mode would clear the mesh cache.
- Fix bug when "Meshes are Assets" is enabled where entering play mode would invalidate the mesh cache.
- Fix bug when "Meshes are Assets" is enabled where deleting a selection of pb_Objects would leave orphaned cached meshes.
- Fix bug where UV2 channel of selected objects would be lost on scene save with "Meshes are Assets" enabled.
- Fix bug where stripping ProBuilder scripts with "Meshes are Assets" enabled would also delete the cached mesh asset.
- Fix incorrectly scaling slider control on retina display.

# ProBuilder 2.6.4f1

## Features

- Unity 5.5 Beta compatibility.

## Bug Fixes

- Fix bug where generating UV2 would incorrectly merge incompatible vertices in the optimization function due to vertex references not being unique when returning from GeneratePerTriangleMesh.
- Add icons for `Drag Selection Mode`.
- Add `Toggle Drag Rect Mode` icons.
- Fix selected vertex billboards not rendering in 5.5 beta.
- Fix crash when setting pivot with multiple objects selected.
- Fix setting pivot of a parent object moving children.
- Don't disable the object outline when Probuilder is open, but do disable wireframe.
- Fix prism shape height resulting in half-sized shapes.
- Add `Triangulate Faces` icon.
- Ensure icons are always imported with the correct settings.
- Fix "Generate Scene UVs" toggle not being respected in `Generate UV2` action
- Fix bug where drag selecting with shift in subtraction mode with complete rect selection would always deselect the entire selection.

# ProBuilder 2.6.3f4

## Features

- New `Vertex Positions Editor` provides fine-grained control over vertex postions.
- Add `Anchor` setting for Auto UVs to align faces before user transforms.
- When drag selecting faces add option to select by intersection.  Toggle with menu item `Drag: Complete/Intersect`.
- New icons for `Select by {Material, Color}`.
- Significantly improve editor performance when drag selecting faces and vertices with `Select Hidden: Off`.
- New alternate drag selection modes: `Add`, `Subtract`, and `Difference` affects how the `Shift` key modifies selection when drag selecting elements.

## Bug Fixes

- Fix bug where using Undo in face selection mode could potentially delete faces on prefabs.
- Fix import settings on icons.
- Fix bug where `Fill Hole` would not correctly align normals after operation, sometimes also reversing neighboring face normals.
- Fix bug where `Fill Hole` would sometimes leave the filled faces with invalid edge caches (resulting in incorrect normals on extruding from the filled face).
- Added miscellaneous missing actions to documentation.
- Fix bug where drag selecting faces would sometimes leave the picker rect visible.
- Disable Select By Material/Color when no elements are selected.

## Changes

- Use Unity's default UV2 unwrapping parameters since they seem to produce generally better results than the padded params currently in use.
- New ProBuilder objects instantiate with `ShadowCastingMode.TwoSided` (configurable in Preferences/ProBuilder).

# ProBuilder 2.6.2f0

## Features

- Add STL file export support.
- Standard Vertex Color shader now compatible with Unity 5.5 beta changes.
- Add API Example showing how to set custom default UV2 Unwrap Parameters.

## Bug Fixes

- Fix bug where exporting OBJ would sometimes insert "AllFiles" into the file path.
- Fix drag selecting edges then bridging sometimes using the default material instead of a neighboring one.
- Fix compile error when using Fog with Standard Vertex Color shader.
- Fix console warnings in Unity 5.5.0b1
- Fix bug where `Select Edge Loop` would select too many edges.
- Don't show missing icon warnings unless in PB_DEBUG mode.

# ProBuilder 2.6.1f0

## Features

- Add `Triangulate Face` action.
- Add ability to view UV2/3/4 channels in UV Editor.
- Add ability to edit per-object UV2 generation parameters in the Generate UV2 options menu.
- Improve performance of "Grow Selection" when flood selecting with angle restriction.
- Improve performance of some selection actions when in face mode.
- Add RenameNewObjects script to API examples folder (shows use of OnProBuilderObjectCreated delegate).
- Add "Select Faces with Material" and "Select Faces with Vertex Color" to the Selection menu.
- New options icon in toolbar: gear instead of triple lines.

## Bug Fixes

- Fix "About" window showing every changelog ever instead of just the latest.
- Fix bug in pb_Math.Normal(pb_Face) overload that would potentially return normals facing the wrong direction if fed ngons.
- Fix UV Editor incompatibilities with retina display on macOS.
- Fix bold label text color in Debug Window when Pro skin is used.
- Increase max allowed vertex handle size to 3 to accomodate macOS retina display.
- Fix import settings for `Center Elements` disabled icon.
- In ProBuilder-ize function don't bother showing 'include children' dialog if the top selection already contains all valid meshfilters
- Fix Advanced icon in PB Basic rendering blurry in toolbar.
- When freezing transforms also apply rotation in world space.  Fixes some issues when freezing hierarchies of objects.
- Fix bug where edge ring would include faces with odd number of edges.
- Added "Fill Hole" and "Subdivide Edge" to documentation.
- Fix occasionally flipped face normals when connecting edges or vertices on n-gons.
- When connecting edges weed out any edges that don't connect to anything, preventing accidental edge subdivisions.

## Changes

- Make default angle error for uv2 unwrap a little higher to avoid bad unwraps in some common cases.
- Move ProBuilder-ize function to menu actions.

# ProBuilder 2.6.0f1

## Features

- Add `Bevel Edges` action.
- Add `Fill Hole` action to quickly insert a face in a mesh hole (with option to fully select and fill hole or just the selected parts).
- Completely rewritten documentation: http://procore3d.github.io/probuilder2/
- Add `Select Hole` menu action to quickly select the edges of any hole touching a selected vertex.
- Add a preference to disable "Precise Element Selection."  When disabled edge and vertex modes will always select an edge or vertex no matter how far from the element they are.
- Add "Break Texture Groups" button to UV editor.
- Add non-manifold edge extrusion pref to Extrude Edge settings window.
- Replace mesh optimation functions with faster and more accurate versions.
- Improve performance of topology query operations (Grow Selection, Shrink Selection, Edge Loop, Edge Ring).
- `Center Pivot` action now available in Basic.
- Add Generate UV2 toolbar entry when "Disable Auto UV2 Generation" is enabled.
- Add a delegate in `pb_EditorUtility` to notify subscribers when a new pb_Object has been initialized.
- New API example `Tools > ProBuilder > API Examples > Log Callbacks Window` demonstrates hooking into various editor delegates.
- Adds an experimental new option to store Mesh objects as Assets in the project so as not to clutter the Unity scene file. Use with a prefab for maximum scene lean-ness.  Enable this feature in Preferences/ProBuilder/Experimental/Meshes Are Assets.
- Add support for local/common toggles in Edge Debug mode.
- Add `Select Holes` action to editor toolbar (selects all connected open edge paths).
- `Connect {Edge, Vertices}` re-factored for speed and more robust edge case handling.
- New "Options" button for toolbar icons.
- Improve performance of `Delete Faces` action.
- Improve performance of `Subdivide` action.
- Add `Alt-S` shortcut for `Subdivide` action.
- Add option to `Mirror` action to either duplicate or move the selection when mirroring.

## Bug Fixes

- Fix some instances where modifying a mesh would result in NaN warnings.
- Fix icosphere audio example scene in ProBuilder Basic.
- Add `Center Pivot` action to menu.
- Bypass sRGB sampling for icons, fixing dark appearance in pro skin.
- Fix regression where switching between icon mode and text mode in toolbar would sometimes not immediately reload the toolbar.
- Fix an issue where meshes would be discarded and rebuilt on every instance id change, which Unity does a lot.  The result of constant mesh rebuilds being invalidating the lightmap, making getting a decent bake very difficult.
- Ignore API examples in any build target that hasn't been tested (which is all of them save for standalones).
- Fix edge extrusion leaving black geometry when extrusion fails.
- Add extrude settings button to edge extrude toolbar item.
- Add a single context-sensitive Extrude shortcut so that super+e works properly in both edge & face modes.
- Fix 'KeyNotFound' exception when centering pivot sometimes.
- Fix UV3/4 assignment and getter functions reading out of bounds channel index.
- Fix Delete key notification not showing.
- Fix editor toolbar "leaking" due to incorrect hideflags in Unity 4.
- Fix cases where user could provide bad input to Arch generator.
- Fix `Weld Vertices` not welding vertices in some cases.
- Set detail pb_Objects with ReflectionProbeStatic flags.
- Fix key shortcuts for hidden but enabled menu actions not working.
- Don't show hover tooltips if mouse is outside window bounds.
- Fix some edge cases in `Conform Normals` action.
- Fix `Grow Selection` itererative field incorrectly being disabled when "Grow by Angle" is off.
- Fix issue where n-gons with > 90 degree angles would not auto UV unwrap correctly.
- Fix some cases where subdivide would fail due to non-planar vertex positions on a face.
- Fix bug where extruding edges or faces would sometimes align the inserted face normals incorrectly.
- Hide geometry actions when in object mode.
- Fix edge selection when mouse is hovering an object not in the selection but a valid edge is within distance of mouse.
- Fix bug where subdividing a face with an adjacent concave n-gon would break the adjacent face.
- When generating the menu item text for shortcuts always use lower case, since Mac doesn't recognize upper case as shortcuts.  Fixes an issue with shortcuts not working on OSX.
- Support cases where texture groups on pb_Object aren't in linear order.
- Clear debug lines when a selected object is deleted.
- Fix bug where `Detach Faces` to submesh would incorrectly split all the detached selection vertices.
- Put UV Editor in namespace, preventing errors where common function names would be confused with other assets.
- In `pbUndo` use each individual object vertex count when deciding whether to diff or store object state for undo.  Fixes hang when performing actions with small selections on large objects.
- Lower UV toolbar buttons by 1px when not using the Command GUIStyle since Button style adds 1px padding.
- When building ProBuilder delete user generated folders so that upgrades don't overwrite them.

## Changes

- Menu toolbar re-arranged for consistency.
- Remove UV2 generation parameters from pb_Object.
- Add a public function for setting tangents on pb_Objects.
- Deprecate GenerateUV2 extension method since mesh optimization is now an intertwined process.
- Improve hashing function in IntVec3 and Edge.
- Suffix pb_Math.Approx functions to make implicit casting of vectors more difficult to do accidentally.
- Move "World Space" toggle up in the Auto UV editor
- In Auto UV mode rename the scale property `Tiling`.
- `Detach Selection` now behaves like toolbar option panel instead of popup.
- Remove unnecessary option to save duplicates of selected gameobjects when using `Merge Objects` action.
- In addition to changing the icon and text, also show a brief explanation of the current handle alignment mode in the tooltip.
- Move Mirror to object level, making it an action instead of panel popup.

# ProBuilder 2.5.0f0 (r4241)

## Features

- Toolbar redesign now adapts to both vertical and horizontal layouts (swap between Text and Icons by context clicking in the Inspector).
- New tooltips show inline documentation and keyboard shortcuts.  Hold `Shift` to instantly view hovered tooltip, and turn off tooltips on hover in Preferences menu.
- New `Subdivide Edges` action inserts vertices along selected edges.
- GUI items are no longer stored in Resources.  Changing the location of the ProBuilder directory is still supported.
- Add option to collapse vertices to the first selected vertex instead of always averaging.
- Mark the current mode and floating state in the toolbar context menu.
- Add preference toggle to disable Dimension Overlay lines.
- New Color Mask setting in Vertex Painter Editor enables painting only to specified component.
- Vector4 UV{3, 4} channels can now be stored in pb_Object (use pb.SetUVs(index, List<Vec4>)).

## Bug Fixes

- Fix shortcut editor modifier keys not being correctly stored.
- Fix Freeze Transforms moving objects when selection contains hierarchies of meshes.
- Entity visibility toggles no longer interferes with Collisions, as well as remembers all manually changed object visibility.
- Fix Element Toolbar placement in Scene view on Retina display Macs.
- Fix UVs all being set to {0,0} when using Weld in the UV Editor.
- When extruding an edge check that the new face winding order is equivalent to the face of the donor edge and flip if necessary.
- Fix shortcut editor not recognizing all keycode values (notably Alpha0-9).

## Changes

- Remove option to display Mode Toolbar in the Inspector window.
- ProBuilder2.Math namespace removed, pb_Math now belongs to ProBuilder2.Common.

# ProBuilder 2.4.11f0 (r4081)

## Bug Fixes

- Fix regression in 2.4.10f2 that broke assigning materials in ProBuilder Basic.

## API

- Add `onEditLevelChanged` delegate to pb_Editor to notify other classes of edit level changes (Polybrush compatibility).

# ProBuilder 2.4.10f2 (r4027)

## Features

- Shape and Material windows are now dockable (context click in window and select Window/Set {Floating, Dockable}).
- Add "Snap to Face" shortcut when dragging the move tool (hold 'C' while dragging to snap tool to the nearest face).
- New ShaderForge compatible Standard Vertex Color shader on ProBuilder default material.

## Bug Fixes

- Unity 5.4 compatibility.
- Workaround for Unity crash "Check DisallowAllocation Error"
- Fix most cases of meshes going completely black when modifying them in any way.
- Fix NullRef error when scaling a single selected edge.

## Changes

- Remove various `Get{Vertices, UVs, Triangles}` functions from `pb_Object`.  Use `pbUtil.ValuesWithIndices` directly instead.
- Remove Instantiation API Example (there's nothing special about instantiating ProBuilder meshes anymore).

# ProBuilder 2.4.9f1 (r3978)

## Features

- New "Flip Edge" tool swaps the direction of a connecting edge in a quad.

## Bug Fixes

- Fix bug where Trigger or Collider entities could remain visible in play mode when using source.
- Fix slowdowns when inserting edge loops due to undo.
- Fix missing namespace errors in Unity 5.3.
- Increase the resolution with which vertex positions are compared to avoid incorrectly merging distinct vertices (often causing trouble when modeling at very small dimensions).

# ProBuilder 2.4.8f1 (r3764)

## Features

- Enable Set Pivot, Delete, and Vertex Painter in ProBuilder Basic.
- New Standard Shader with vertex color support (thanks to Unity Forum user @defaxer).

## Bug Fixes

- Add tooltips for every action in the ProBuilder toolbar.
- Fix consistent horizontal scrollbar showing in ProBuilder window.
- Smooth edges of curved  stair sides, and align step UVs to match rotation.
- Use white text color in Dimensions Overlay when Unity Personal skin is used.
- Ensure DLLs retain GUID between releases, enabling simpler upgrades.
- Fix poor UV editor precision when working with small distances.
- Fix ~10px vertical offset image when rendering UV template in Unity 5.
- Fix slightly offset image when rendering UV template from docked UV Editor window.

## Changes

- Increase minimum allowed zoom in UV editor.
- Make warning shown when connecting edges or vertices fails a bit more descriptive.
- Don't show tangents and bitangents when Show Normals is enabled in the smoothing editor.
- Prototype becomes ProBuilder Basic.

# ProBuilder 2.4.7f0 (r3664)

## Changes

- New upgrade procedure skips complicated Upgrade Kit in favor of a slightly more manual but more reliable approach.  See FAQ or ProBuilder Documentation for more information.

## Bug Fixes

- Fix possible null reference error when working with prefabs that have been duplicated.
- Additional error checking when stripping pb_Objects from scene added.
- When ProBuilder-izing objects, ask user whether or not to traverse children.

# ProBuilder 2.4.6f0 (r3616)

## Features

- Add preference to set default Entity type.
- Add preference to set dedicated keyboard shortcuts for entering Object, Face, Vertex, and Edge mode.
- New Curved Stair generator, and stairs now produce manifold geometry.
- Add "Batch Upgrade" menu items to Upgrade Kit, allowing users to run one action for an entire project.
- New GUI slider allows un-clamped input to the float field in Shape Tool.

## Bug Fixes

- Alt + E shortcut now works with only 2 vertices selected.
- Fix bug where colliders would be incorrect when instantiating trigger entities.
- Fix some cases where "Connect" would result in incorrect geometry.
- Fix UV editor not recognizing shortcuts sent from scene view.
- Fix occasional "Non-finite value in mesh vertices" error when extruding.
- Account for inconsistently sized vertex color arrays when ProBuilder-izing meshes.
- Fix null reference errors when Shape Creation Tool is open with preview enabled and a script reload takes place.
- Fix null reference sometimes caused by a Mirror action.
- Fix bug where merging objects would always add a MeshCollider, even if one already exists.
- Fix mesh bounds not refreshing when adjusting vertices with Quick Offset tool.
- Fix mis-calibrated drag selection wwhen first entering element mode after moving an object.
- Fix issue where duplicating GameObjects with child pb_Objects would leave references to original meshes intact, resulting in odd behavior when deleting objects.
- Fix bug where prefabs would not "Apply" changes to all children equally.
- Improve performance when editing scenes with many ProBuilder object prefabs.

# ProBuilder 2.4.5p0 (r3531)

## Bug Fixes

- Fix bugs in Copy UV Settings and Quick Apply Material shortcuts.

# ProBuilder 2.4.5f1 (r3519)

## Features

- New Torus shape.
- Greatly improve editor performance when working with medium to large meshes.
- New skin for scene info label, including more data about selection.
- Automatically batch vertices even if they don't belong to a smoothing group (actual mesh vertex is now shown in scene info box).
- Add mesh dimensions overlay (ProBuilder > Object Info > {Show, Hide} Dimensions Overlay).
- Make vertex colors button extend-able, with the option to set which color editor the shortcut should open (Palette or Painter).
- New option to show element/object mode toolbar in scene (default), including positioning parameters.
- Improve vertex painter performance with large meshes.
- Unity 5.2 compatibility.

## Bug Fixes

- Fix bug where reverting a prefab with non-prefab ProBuilder children would throw errors.
- Fix hangs when performing various actions.
- Merge now retains the GameObject properties of the first selected object.
- Axis snapping with ProGrids now translates correctly when object rotation is non-identity.
- Performance improvements in UV editor for large meshes.
- Fix bug where OBJ exporter wouldn't properly write submeshes.
- Fix one possible cause of "Mesh.{uv, colors} is out of bounds" errors.
- Catch null reference errors when creating wireframe overlays for meshes exceeding Unity's max vertex count.
- Fix issue where Merge objects would cause meshes to lose their graphics, requiring a refresh.
- Fix menu items showing as enabled when not applicable.
- Add pb_Entity in ProBuilderize if the RequireComponent attribute fails to do so.
- Fix bug where ProGrids wouldn't affect elements when PB is built to a DLL.
- Fix bug where the cube shortcut would ignore material preference.
- Fix vertices merging incorrectly in Optimize function when colors don't match.
- Recalculate mesh bounds after moving the pivot.
- Always refresh/rebuild meshes after making them assets, fixing issues with duplicate mesh references.
- Fix a few more causes of leaks in the mesh and line rendering systems.
- Fix bug where scaling a new object in the shape tool wouldn't take effect until after first refresh.
- Fix bug where Insert Edge Loop and ConnectEdges would sometimes select too many edges after application.
- Fix ProGrids over-zealously collapsing vertices when in axis snapping mode.
- Correctly set element toolbar position when toggling between scene and editor window placement.
- Re-enable user set vertex handle color preferences.

## Changes

- Move default textures out of resources folder.
- On pb_Object::Start, call ToMesh before Refresh since Refresh could try to set UVs or Colors to a mesh that has inconsistent vertex counts.
- Remove most functions accepting a pb_IntArray[] sharedIndex cache and replace with Dictionary versions.

# ProBuilder 2.4.4p1 (r3425)

## Features

- Add scale shortcut toolbar for Auto UVs.
- Add Control+Shift+Left-Click when UV editor is open to copy auto UV settings (including texture).

## Bug Fixes

- Fix errors when building a project with geometry containing null materials.
- Fix rare null reference error when switching scenes.

# ProBuilder 2.4.4f1 (r3385)

## Features

- Where possible* indices are now collapsed to share a single vertex.
- Add context menu to swap between dockable window modes in vertex painter.
- Unity 5.1 beta compatibility.
- New Icosphere shape.
- New API example shows a deformed icosphere with FFT spectrum.
- Grow Selection is now roughly one gajillion times faster.
- Grow with Angle can now optionally select all faces on a plane instead of just the ones near the perimeter.
- New vertex handle gizmos are now culled (and much faster).
- Add option to select only visible elements (Select All or Select Visible toggles this).
- New Repair/pb_RepairMeshReferences script fixes duplicate mesh references.
- Improve edge selection logic, making edge selection much easier.
- Add a preference to enable backface selection on meshes.
- Re-enable 'NoDraw' faces (now implemented as a shader replacement at compile time).
- Improve subdivide action performance.
- Improve performance when editing large numbers of vertices.
- Smooth Normals Window now displays vertex normals with culling, and much faster.
- Repair Missing Script references is now cancelable.
- Add option to extrude elements as a group or individual.

## Bug Fixes

- Improve Flip Normals shortcut selection context handling.
- Enable Subdivide shortcut in Top mode.
- Fix arch geometry that broke when subdividing caps.
- Fix bug where setting arch radius would also set the thickness to 0.01.
- Add option to toggle cap generation on/off in arch tool.
- Fix bug where extruding multiple adjacent faces with a shared center point would not correctly translate the shared center vertex.
- Fix bug where Smoothing Window would not repaint on selection change.
- Improve performance of MergeVertices function, helping to address lag after modifying large objects.
- Fix bug where selecting faces obscured by a culled face would sometimes not register.
- Remove obsolete preference entries.
- Add Undo support when a click drag changes the selection in the UV editor.
- Fix 'Quaternion Look Rotation is Zero' log spam when a face contains degenerate triangles.
- Fix most instances of mesh and material leaks in Editor.
- Fix bug where applying prefab changes to pb_Objects with the Editor closed would not propogate changes to instances.
- Hide some internal MonoBehaviours from the Scripts menu.
- Fix bug where deleting a face with 'delete' key shortcut would change static flags.
- Fix null ref when entering play mode with collider entities sporting boxcollider components.
- Fix bug where Connect Vertices would fail on thin isosceles triangles.
- Fix bug where Connect Edges would mangle adjacent long skinny faces.
- When adding colliders via pb_Entity toolbar, scan current collider components for isTrigger values and apply to new collider if found.
- Fix some instances where convexity and trigger for EntityType.Collider & EntityType.Trigger types would not be set on initialization.
- When detaching faces to a new object, make the detached object selected.
- Fix bug where exiting to Top or Plugin level would not clear the selection mesh.
- Copy userCollisions field when serializing pb_Object.
- Fix regression in Unity 5 that causes prefabs to lose instance modifications on save and entering playmode.
- When mirroring objects, make the mirrored results the new selection.
- Fix bug where setting entity type then undoing wouldn't catch changes to collider.
- Fix bug where duplicating multiple objects would leave pb_Object references pointing to same object.
- When probuilder-izing objects, perform the action in-place (and add undo support).
- Catch errors when repairing missing script references on objects with null materials.

## Changes

- Remove dependency on ProCore lib to communicate with ProGrids.
- Rename scripts to uniformly follow pb_ prefix and pascal case for runtime, underscore case for editor.

## API

- New `Optimize()` method calls CollapseSharedVertices and GenerateUV2.  Replaces GenerateUV2() in most cases.
- Move most of remaining scripts into proper namespaces.
- ProBuilder2.GUI namespace become ProBuilder2.Interface to avoid conflicts with UnityEngine.GUI.
- Move Triangulation code into pbTriangleOps.
- Significantly improved performance of RefreshNormals() function.
- New VerifyMesh() function in pb_EditorUtility guarantees good mesh reference and geometry.
- Add ability to delete unfixable components in pb_MissingScriptEditor.
- New PointIsOccluded() check in pb_Handle_Utility tests if a point is visible in editor.
- Significantly improve performance of pbUtil.RemoveAt().
- Significantly improve performance of many pbMeshOps methods.
- New pb_LineRenderer and pb_MeshRenderer provide fast gizmo drawing in the SceneView.

* Vertices must be smoothed, and have the same texture coordinate to qualify for weld.

## f1 Patch Notes

- Fix ProGrids not affecting vertices / faces / edges in Edit mode.
- Minor tweak to vertex handle color.

# ProBuilder 2.4.3p0 (r3216)

## Features

- Weld distance now adjustable in UV editor.

## Bug Fixes

- Fix weird arch geometry near caps, noticeable when inserting edge loops.
- Improve 'Flip Normals' shortcut context awareness.

# ProBuilder 2.4.3f0 (r3202)

## Features

- Add preference to enable back-face selection.

## Bug Fixes

- Remove 'here' console log.
- Fix regression in 2.4.0 that broke Undo when used with ProGrids.
- Fix 'Look Rotation is Zero' console logs when selecting a face with degenerate triangles.
- Fix bug where sometimes clicking a face would not register due to a culled face intercepting the raycast.

# ProBuilder 2.4.2f0 (r3202)

## Features

- New debug window visualizes mesh information in the sceneview.

## Bug Fixes

- Fix regression that broke prefab editing applying to instances.
- Fix latency in SceneView when selecting elements in the UV window.
- Fix bug where selecting elements in the UV window would not Undo correctly.
- Fix regression that caused UV handle to not update its position when right-click dragging.
- Fix bug where texture rotation handle in the scene view would not snap correctly on finishing a UV adjustment.
- Fix bug where drag selecting edges or faces could select elements behind the scene camera.

# ProBuilder 2.4.1f1 (r3174)

## Features

- New "Export UV Template" function saves a PNG of your UV maps.
- Add new preference to show object vertex, face, and triangle count in the scene view (Preferences/Show Scene Info).

## Bug Fixes

- Edge wireframe no longer renders the material preview wells.
- Fix performance issues when editing large objects in the UV editor with Auto UVs.
- Fix bug where 'Push to Grid' from ProGrids would not Undo correctly.
- Fix lagging wireframe when running "Freeze Transforms" action.
- Fix null ref when deleting multiple faces.


# ProBuilder 2.4.0f4 (r3132)

## Features

- Unity 5 support.
- New wireframe shader overrides Unity default when ProBuilder Editor is open.
- New 'Merge Faces' geometry action combines selected faces to a single face.
- Add `Missing Script Reference` repair item.
- Show color name in vertex tools instead of RGBA info.
- When creating an mesh Asset, also create a prefab with the new mesh and materials already wired up.
- Cull hidden edges when in Edge mode.
- Fix spotty face selection highlight rendering when using Deferred Rendering.
- Add preference to disable automatic UV2 generation while modeling (improves editor performance).
- When selecting a texture-grouped face in UV editor, show an indicator of all faces in group.
- Improve performance when modifying geometry & UVs in Unity 5.
- New dark background in UV editor for Unity light skin users.
- Improve performance when selecting objects with large vertex counts.

## Bug Fixes

- Fix crash when a face material is null (defaults to Unity Default-Diffuse).
- Fix incorrect results when extruding multiple faces sharing a single center vertex (usually seen on the top of a cylinder).
- Save vertex colors when ProBuilder-izing a mesh.
- Fix occasional null ref when continuing UVs.
- Support Undo in UV Editor Auto panel.
- Support Undo for `Push to Grid` events from ProGrids.
- Fix occasional `Index out of range` errors when subdividing, triangulating, and setting pivot.
- Fix crash when running `Fix Missing Script References` in Unity 5.0.0b18 (big thanks to Michael N!)
- Improve the performance of Planar Mapping manual UVs.
- Create Material data asset path if it doesn't exist (fixes errors when saving Material preferences).
- Fix bug where dragging UVs in Unity 5 would sometimes corrupt the mesh.
- Disable Continuous Baking when dragging elements or making continuous changes to the mesh, fixing corruption issues in Unity 5.
- Fix occasional erroneous error message when subdividing faces.
- Fix null ref error when Auto UV panel is open with nothing selected.
- Allow `V` key usage when not in Element mode.
- Fix regression where instantiated objects would not respect ProGrids alignment.
- Fix leaks when deleting or duplicated pb_Objects.
- Fix occasional null ref errors when welding or collapsing vertices.
- When double-clicking a texture grouped face in UV editor, select the entire group.
- Fix regression that caused performance spikes when deleting or instantiating objects.
- When detaching faces to a new object, copy all of that objects properties.
- Add Undo support to Shape creation tool.
- Fix bug where running Flip Normals from the Menu would not immediately update the mesh graphics.
- When serializing pb_Objects, save color and material information (materials are now loaded by name).
- Fix bug where the texture handle tool would sometimes (most times) move UVs in the wrong direction.
- When entering Texture Blending mode in Vertex Painter, set the color to a solid variant of one of the available textures.
- Fix bug where projected UVs in manual mode could potentially be placed very far from the current handle.
- Fix lag when drag selecting edges on objects with large vertex counts.
- Fix bug where setting entity type would not immediately refresh the mesh.
- Fix minor edge selection bug that would break edge highlighting when not directly hovering a mesh.
- Improve appearance of Grow and Extrude foldouts in editor window.
- Fix bug where clicking on a vertex could sometimes select the object behind it.
- Fix compile errors when building to WebGL target.
- When creating a mesh asset, ensure that the source object mesh is not referenced by the new mesh asset.

## Changes

- Remove 'NoDraw' feature (necessary for Unity 5 compatiblity).

## Beta

- Rudimentary Boolean tool added - this is very early in development.

## Bug Fixes (since 2.4.0f1)

- Fix issue where "Repair Missing Script References" script could get stuck on prefab instances.
- Silence cast exception error in pb_Object_Editor.

# ProBuilder 2.3.3f1 (r2970)

## Features

- Significantly improve performance of Subdivide action.

## Bug Fixes

- Fix incorrect language in Plane generator.
- Fix bug that resulted in mangled vertices when Welding.

# ProBuilder 2.3.2f2 (r2947)

## Features

- Add a toggle in pb_Entity to turn off automatic collision generation.
- Improve UV editor grid logic (now follows camera and resizes at far zoom levels).
- New PostProcessor automatically strips ProBuilder scripts when building executables (toggle-able in Preferences).

## Bug Fixes

- Respect ProGrids `X` key shortcut when translating faces.
- Fix build errors with Static Batching enabled.
- When applying Smooothing Groups, if no face is selected apply group to entire object.
- Static Flags now initialized with `Occluder Static` unchecked.
- Pressing 'F' while a single vertex is selected no longer frames the entire object.
- Vertex colors are now copied when stripping ProBuilder scripts.

# ProBuilder 2.3.1f1 (r2900)

## Features

- New Vertex Painter tool.
- New 'Triangulate ProBuilder Object' action for facetized poly-world look.
- Significantly improve UV editor performance when drawing many elements.
- ProBuilderize action now preserves UVs.

## Bug Fixes

- Fix error when opening Material Editor after assigning a Substance Material.
- Fix bug that caused pb_Editor to freeze when editing prefabs made from ProBuilder objects.
- Remove prefab dependency on ProBuilder.Instantiate or RebuildMeshOnWake.
- Fix mesh leak in Shape Tool.
- Enable Alt+NumKey material shortcut when in Object level.
- When shift-extruding faces in Edge mode, default to face extrusion over edge.
- Fix leaking mesh and material in Face editing mode.
- Fix install script bug that would incorrectly delete non-ProBuilder files.

## Changes

- Handle position is now calculated as the center of selection bounding box.

## API

- New 'HueCube.cs' API example script demonstrates changing single vertex colors.
- New 'pb_SerializableObject' class provides serializable storage for ProBuilder objects.  Add 'pb_Object::InitWithSerializableObject' constructor.

## Beta Notes f1

- Fix install script bug that would incorrectly delete non-ProBuilder files.

## Beta Notes f0

- New Vertex Painter tool.
- Fix error when opening Material Editor after assigning a Substance Material.
- Handle position is now calculated as the center of selection bounding box.

# ProBuilder 2.3.0f14 (r2861)

## Features

- New UV Editor window.
- New 'Material Editor' window for quickly applying materials to ProBuilder objects.
- Completely redesigned ProBuilder EditorWindow.  Dynamically displays only relevant action buttons.
- Editor: New 'Select Edge Loop' command (double click on an edge, or shift+double click to ring selection).
- Editor: New 'Detach to Object' action creates a new ProBuilder object from a face selection.
- Editor: New 'Shrink Selection' command.
- Editor: 'Invert Selection' command now works for Edges and Vertices in addition to Faces.
- Editor: Performance improvements when editing large meshes.
- Editor: 'Grow' settings allow for a user set maximum angle between adjacent faces to limit selection growth.
- Editor: New extendable GUI settings for 'Extrude' allow for user-set extrusion distance.
- Editor: Add 'Distance' setting to Weld tool.
- Editor: Remove requirement that all pb_Objects be scaled to (1,1,1).
- Editor: Add context menu to swap between floating / dockable windows.
- Editor: New 'Conform Normals' geometry operation.
- UV: New 'Continue UVs' action.  With the UV Editor open, select a face then Ctrl + Click an adjacent face to seamlessly match UV coordinates.
- UV: Right click translation handle in UV editor to set a new pivot point (Ctrl snaps to grid, Shift key disables proximity snapping).
- UV: Merge Auto UV and Manual UV editors to a single ALL POWERFUL editor window.
- UV: New Box projection UV unwrapping.

## Bug Fixes

- Editor: Fix bug where toggling NoDraw would sometimes fail.
- Editor: Fix issue where Undo would sometimes cause actions immediately following to fail with 'Index Out of Range' exceptions.
- Editor: Fix Quick Apply Texture shortcut regression from last version.
- Editor: Fix bug that caused 'Undo Change Face Seletion' to delete faces.
- Editor: Fix bug where ProBuilder.Instantiate() would not properly traverse prefab hierarchy when initializing ProBuilder objects.
- Editor: Catch yet another 'Look Rotation is Zero' warning that would slow the editor to a crawl.
- Editor: Fix inconsistent Undo operations on Unity 4.3+ installs.
- Editor: Catch NullRef errors when dragging non-Material type objects into the SceneView.
- Editor: Fix NullRef errors on 'Connect Vertices' actions with multiple faces selected.
- Editor: Fix bug where handle rotation with multiple vertices and no faces selected would be incorrect, resulting in strange behavior.
- Editor: Fix bug in QuickStart script that would install Unity3.5 DLLs for Unity 4.3+ versions, breaking Undo operations.
- Editor: Fix ProBuilder SceneView toolbar positioning when Deferred Rendering is active.
- Editor: Improve Edge selection consistency.
- Editor: Fix incorrect zoom behavior with fewer than 2 vertices selected.
- Editor: Fix 'Set Pivot' moving selected pb_Objects all ova' the place.
- Editor: Fix regression that broke Lightmap channels on Prefab objects.
- Editor: Frame selection now takes all selected pb_Objects into calculations.
- Editor: Fix regression which broke instanced Prefab geometry when running "Apply".
- Editor: Implement 'Undo' when drag selecting elements.
- Editor: Window now implements a scroll bar when necessary.
- Editor: Switching to Rotate or Scale tool no longer resets the handle alignment to 'Local'.
- Editor: Fix bug where Subdivide / Connect Edges / Connect Vertices would not set the selection to match the newly created sub-objects.
- Editor: Fix Mirror Tool incorrectly placing mirrored object pivots.
- Editor: Fix bug where sub-object selection highlights would be left behind when modifying an object's transform via Inspector.
- Editor: Always refresh an object's materials when Undoing modifications to the SharedMaterial array.
- Editor: Face selection graphic now sits flush with faces.
- Editor: Fix bug where ProBuilder-ized meshes would instantiate disabled.
- Editor: Fix incorrect behavior when scaling multiple ProBuilder objects at once.
- Editor: When exiting AutoUV mode (formerly Texture Mode) remember the previous Edit Level, Selection Mode, and Handle aligment.
- Editor: Fix 'Weld Vertices' action failing to properly compare all vertices.
- Editor: Fix incorrect behavior when attempting to modify pb_Objects with children, or children of pb_Objects.
- Editor: Replace deprecated code for Unity 5.
- Editor: ProBuilder-ized objects now inherit donor mesh name.
- Editor: Catch null-ref when closing pb_Editor with Smoothing Window open.
- Editor: Register Undo when creating new objects (with Merge or Mirror actions).
- Editor: When Alt key is held, do not allow handles to capture mouse.
- Editor: Fix leaking mesh preview object when entering Playmode.
- Editor: Allow submeshes to reference Null materials.
- Editor: Fix z-fighting face highlight in Deferred Rendering path.
- Editor: Setting EntityType is now undo-able.
- Editor: Fix bug where extruding from faces would not inherit the correct winding order.
- UV: Retain UV modifications when Subdividing, Connecting, or otherwise noodling around with a face.

## Changes

- 'Top' and 'Geometry' modes become 'Object' and 'Element', respectively.
- Remove drill-down interface for pb_Object dimensions in favor of just always showing them.
- No longer show element highlights when generating shape previews.
- Smoothing editor now accessible via main Editor window and Menu items.
- Remove Lightmapping window shortcut button from Editor window.
- When setting a pb_Object to EntityType::Trigger, also toggle 'isConvex' on the collider.
- Texture Window becomes AutoUV Window, and no longer houses material placement tools (Material Editor window replaces this functionality).
- Smoothing Editor Normals is now a float field, allowing users to set the size of debugging mesh normal lines.

## API

- Move all menu and editor commands to pb_Menu_Commands class.
- Add ProBuilder::Instantiate(GameObject go) overload.
- Slightly improve pbMeshUtils::GetConnectedFaces() performance (still incredibly slow).
- New methods for caclulating point inclusion for complex polygons in pb_Math.
- pb_Handle_Utility is new and has some super cool stuff in it, and I think I forgot to mention it in the last changelogs.
- Add a Repair script to fix missing UV or Vertex caches.
- Improve performance of `GetUniversalEdges` by approximately 3x.
- Move `ProjectionAxis` to `pb_Enum`, and it's associated methods to `pb_Math`.
- Remove `ProjectionAxis.AUTO`, add entries for all other axes.
- New pb_Material_Editor window.
- New pb_Bounds2d class adds some functionality for AABB calculations.
- Improve frequency of expensive caching in pb_Editor.
- Removed most naughty words from the codebase.
- New pb_MenuCommands class synchronizes behavior between MenuItems and Editor buttons.

## Beta Notes: f14

- Editor: New 'Conform Normals' geometry operation.
- Editor: Fix bug where extruding from faces would not inherit the correct winding order.
- API: Add new 'GetWindingOrder(pb_Face face)' extension for pb_Object.

## Beta Notes: f13

- API: TranslateVertices now operates in local space.  Add TranslateVertices_World for backwards compatibility.
- API: Extrude now optionally outs the appended faces.

## Beta Notes: f12

- Change "Ledge Height" to "Door Height" in Door creation panel.
- Omit Entity information from instantiated pb_Object's name.
- Fix bug where duplicate faces could be selected when using Grow Selection without an Angle parameter set.

## Beta Notes: f11

- Fix sometimes incorrect results when selecting UV islands.
- Show UV popups in UV Editor window.

## Beta Notes: f8

- Fix bug where faces with flipped normals would extrude with incorrect winding order.
- Merge Entity and Visgroup toggles.
- 'J' key toggles UV editor open / closed.
- Visgroup status is now retained during playmode state changes.

# ProBuilder 2.2.5f5

## Features

- Add 'Arch' tool to Shape Creation Panel.
- New parameters for Door shape generator.
- New 'Selection / Select All Faces with Material' menu item.
- Add a Selection menu item to select all faces with current material.
- New live information update show face movement information.
- Fancy new install script automatically detects previous installations and forgoes the need for user interaction in most upgrade cases.

## Bug Fixes

- Fix inconsistent Undo for face selection on ProBuilder objects.
- Clean up Shader warnings on initial import.
- Fix ProBuilder.Instantiate() ignoring position and rotation parameters.
- Don't force rename objects when changing the Entity type.
- Fix face selection highlight being incorrectly affected by Fog.
- Fix bug where handle alignment preference would be lost occasionally.
- Fix bug where Grow Selection (non-planar) would allow duplicate faces to be selected.
- Fix bug where prefab objects would throw "Shader wants normals" warnings and sometimes not initialize in scene.
- Fix issue where UV2 channel would not correctly initialize on prefab objects.
- Fix bug where rapidly clicking to add faces would frequently result in the deselection of all faces.
- Fix bug where MirrorTool would incorrectly affect source object's transform.
- Fix duplicate and mirrored objects affecting the original mesh geometry.
- Fix null-ref error when using Edge Ring tool on a non-circuital ring.
- Fix bug where mesh colliders added via Entity component menu would incorrectly have the 'Convex' flag toggled.
- Fix bug that caused mirrored objects to lose the source object's entity type.
- Remove the ability to select non-ProBuilder objects when in Geometry or Texture mode (toggle-able via ProBuilder/Preferences).
- Lower distance threshold for mouse distance to line to be considered selectable.
- Fix bug that broke scaling objects when not in PB editor.
- Fix regression that broke deep copying objects when duplicating or copy/pasting.
- Clean up Shape Creation interface to consistently show build button at bottom of screen, and provide scroll bars when necessary for parameters.
- Duplicate entire GameObject (including attached components) when running 'ProBuilder-ize' action.
- Fixed bug with cone shape generation not using radius parameter.
- Enable NavMeshStatic and OffMeshLinkGen flags by default on new pb-Objects.
- Add pb_Object component check in addition to pb_Entity check in Repair / Validate Components.
- Fix install script breakage on Unity 4.3+
- Fix Mirror Tool incorrectly modifying donor object's normals.
- Fix issue where applied changes to ProBuilder prefabs would not immediately update all other instances.
- Fix inconsistent extrusion with Edge and Vertex selections.
- Fix bug where TextureWindow would not initialize with current selection.
- Automatically clean up degenerate triangles caused by vertex merge/weld operations.
- Enable 'Push to Grid' support for ProGrids users with vertex, edge, and face selection.
- Fix bug that caused vertices behind the scene camera to be selected incorrectly in some cases.
- Fix object incorrectly instantiating off-grid with strange pivot placement.
- (Beta) Rename AboutWindow to avoid namespace conflicts.

## Changes

- Rename 6by7 root folder to ProCore.
- New ProCore.dll replaces SixBySeven.dll (shared classes between ProCore products).

## API

- pb_Object.SelectedTriangles is no longer guaranteed to contain only unique indices.
- Convert pb_Preferences_Internal::GetEnum<> to use ints instead of strings, modify pb_Editor to match.
- pb_Object.SelectedTriangles is no longer guaranteed to contain values corresponding to uniqueIndices array.
- Remove deprecated pb_Face::DeepCopy.  Implement copy constructor.
- Move many of ProBuilder's classes to namespaces (ProBuilder2.Common, ProBuilder2.MeshOperations, etc).
- New ClassesEditing segment of Classes folder contains all non-essential files.  This allows for a single ProBuilderCore.dll that can be redistributed with ProBuilder objects allowing users without ProBuilder to view and load ProBuilder objects.

# ProBuilder 2.2.4f0

## Bug Fixes

- Fix 'Null Reference Error' when editing objects at runtime.
- Fix crash at runtime when ProBuilder object is selected.

# ProBuilder 2.2.3f0

## Features

- New 'Grow Selection Plane' which expands the selected face to nearby faces on the same plane.

## Bug Fixes

- Fix regression where handle tool would not default to Top level editing in Geometry mode when no vertices were selected.
- Fix bug where colliders would be lost on upgrading PB install.
- Enable multi-object editing for pb_Entity inspectors.

## API

- Move and rename pb_Object::MeshWithMesh to pbMeshUtils.DeepCopyMesh.
- Fix PlaneNormal not returning a normalized vector (yikes!).

# ProBuilder 2.2.2f4

## Features

- New 'Texture Groups' UV setting.  Select faces and group to project seamless UVs.
- New 'Make Asset' Action allows users to save ProBuilder objects as Mesh objects.
- New 'Subdivide' command.
- New 'Connect' command (edges, faces, vertices).
- New 'Insert Edge Loop' command.
- New 'Select Ring' command.
- New 'Grow Selection' command (Alt-G).
- Significant performance improvements when working with large objects.
- New preferences to set vertex handle colors and size.
- Improve performance when drag selecting edges.
- New 'Remove Degenerate Triangles' Repair menu item.
- New snap to nearest vertex feature.  When moving vertices, hold 'V' to snap handle to nearest vertex.
- New 'Quick Offset' tool in pb_Object inspector window.  Set a value and immediately move the selected vertices by that amount (thanks to Matt1988 for initially developing this feature).

## Bug Fixes

- Override Frame selection to focus on only selected vertices (thanks @nickgravelyn for this tip).
- Fix inconsistent keyboard shortcuts on Mac.
- Tool buttons are now respected by ProBuilder handle.
- Fix bug where ProBuilder GUISkin wouldn't correctly initialize when left open during a Unity restart.
- Fix bug where double clicking a pb_Object to select all would not properly select all Edges.
- Fix bug where ProBuilder would affect other EditorWindow GUI layouts.
- Fix bug where Mirror Tool would fail to correctly initialize objects with pb_Entity.
- Drag selection box now more closely matches Unity's default drag box.
- Update and improve ProBuilderize Action (now attempts to create faces instead of just triangles).
- Fix Rotation handle incorrectly updating to match selection when dragging (occasionally throwing Quaternion.LookRotation == Zero warnings).
- Fix Scale tool incorrectly using world coordinates when translating vertices.
- Fix weird Prism geometry.
- Fix bug where setting an object pivot with ProGrids enabled would sometimes move the object's vertices off grid.
- Edges may now be shift-deselected.
- Update Undo defines to check against Unity versions 4.1 -> 4.9.
- 'Use' events when shortcuts are detected.  Seems to work about 60% of the time on Mac.
- Fix bug where pivot would instantiate offset from grid when used in conjunction with ProGrids.
- Fix bug that broke OBJ export when attempting to export more than one model per session.

## Changes

- Vertex Color shortcuts are now declared in ProBuilderMenuItems, allowing users to edit them without installing Source.
- Reorganized Menu structure.

## API

- Selection management at object level is now entirely set in pb_Object, using new SetSelected[Faces, Edges, Triangles].
- New naming and placement guidelines for Menu items (see pb_Constant).
- New ShiftExtrude() method in pb_Editor removes duplicate code in Handle functions.
- New pb_Editor_Graphics class replaces calls to UnityEngine.Handles in pb_Editor.
- Move most MenuItems to ProBuilder2.Actions namespace (exceptions being Windowed items).
- New pbUndo class replaces #if > UNITY_4_3 junk.

# ProBuilder 2.2.0f4

## Features

- Update Undo code for Unity 4.3 compatibility (Install Interface will determine the correct package for your Unity version automatically).
- Add Rotate and Scale tool when editing faces or vertices (accessed by 'E' and 'R' shortcuts, respectively).
- Add EditLevel toolbar in sceneview for quickly viewing and setting EditLevel. @Genstein suggested improvement.
- New Edge selection mode.
- New 'Bridge Edges' action.  Selected 2 edges to create a face bridging them.
- New 'Collapse Selected Vertices' action.  Select any number of vertices and merge them to a single point.
- New 'Split Selected Vertices' action.  Splits the selected vertices.
- New 'Weld Selected Vertices' action.  Checks if any selected vertices share a point, and if so, merge them.
- New 'Invert Selection' action. (ProBuilder -> Edit -> Invert Selection).
- New 'Extrude' action (ProBuilder -> Edit -> Extrude).  Works for single or multiple faces, as well as edges.  Hold shift while moving a face to automatically extrude (works for translate, rotate, and scale).
- New Install / Upgrade interface provides options to install Release and Source versions, as well as older packages.
- Source code is now included as an installation option.
- New Door primitive type in Shape Generator.
- New Pipe primitive in Shape Generator.
- New Sprite primitive in Shape Generator.
- New Cone primitive in Shape Generator.
- Improved Runtime Example scene demonstrating face highlighting.
- New "Default Material" user preference.
- New "Select Faces with Material" tool.
- New API example scene showing object and primitive instantiation
- New GUI buttons for 'Flip Normals', 'Mirror Object', 'Set Pivot', 'Vertex Color Interface' and 'Extrude Face'.
- Add ability to select vertex by clicking on it.
- Add preference for turning off sceneview notifications (Preferences/ProBuilder).
- New preference item allows you to specify the 'Force Convex' field of a 'Mesh Collider' if it is set to default collider.
- New 'Reset Projection Axis UV' repair tool.  Resets all UV settings to use the 'Auto' face projection.
- New 'Force Pivot to Vertex' and 'Force Pivot to Grid' preferences allow for easier grid snapping.
- New default material for ProBuilder objects.

## Bug Fixes

- Fix system beep on Mac OS when using keyboard shortcuts (this could be a headling feature).
- Fix bug where detaching or deleting a face wouldn't always reset the _uniqueIndices array, causing bugs in the handle selection code.
- Add undo functionality to DetachFace action.
- Fix bug where vertex color information would be lost on duplication, refresh, build, or just about any other action you can imagine.
- Fix bug where detaching a face could result in empty entries to the pb_Object->_sharedIndices member, throwing null-ref.
- Fix InvertFaceSelection not correctly updating the pb_Object->SelectedTriangles list.
- Don't show 'Nodraw Face' notification if in Top Level editing mode.
- 'G' key now exits Texture Mode.
- Texture window shortcuts now show notifications.
- Fix button sizing in pb_Editor window.
- Show notification when toggling Selection Mode from GUI button.
- Fix error in 'Detach Face' where occasionally a null shared index array would survive the rebuild.
- Fix compile errors in Editor code when exporting to Web.
- Fix bug where notification for Selection Mode handle would be incorrect.
- Fix bug where deleting a face, then undoing so would result in a NullReferenceError
- Fix bug where 'Fix GameObject Flags' would improperly exit on failing to find a pb_Entity component.
- Fix vertex selection mouse icon drawing when not in Vertex Editing mode.
- Fix vertex color interface losing user preferences across Unity launches.
- Fix issue where pb_Upgrade_Utility would break installation on failing to run.
- Fix bug where rotated UVs would not move in the proper direction when dragging with texture move tool.
- Enable z-testing for face selection graphic.
- Don't show notification post-installation of Static Flag fixes if no fixes were performed.
- Fix bug where texture handles sometimes wouldn't match the selected face's transform.
- Refactor shortcut code to differentiate between modal specific actions. Fixes bug where entity assignments would incorrectly be applied in Geometry level and not Top level.
- Fix incorrect skin colors in Unity Free on 4.3.
- Fix bug introduced in 2.1.4 that broke texture handle toggling (thanks, H. David).
- Fix bug where UV rotate tool would be incorrectly calculated on selection change.
- Change UV scale and rotation behavior to no longer operate in world coordinates.
- Fix bug where extruding would occasionally corrupt the pb_Object.uniqueIndices cache, resulting in 'NullRefError' in pb_Object::GetVertices.
- Adjust minSize of pb_Editor window to completely encompass buttons.
- Re-word toggle select mode and edit level notifications and make them consistent between the different access points.
- Fix bug where 'Axis Constraints' toggle in ProGrids would not be respected when translating faces.
- Fix bug where UV and Smoothing group changes would not immediately revert on Undo operations.
- Fix regression that broke Ctrl-Left click to copy UV settings to face.
- Fix bug where ProBuilder Editor skin settings would "leak" to other Editor windows.
- Fix bug where collisions would sometimes not respect user preference when creating new geometry.
- Fix bug where SceneView would sometimes not refresh on an Undo event.
- Fix bug where pressing 'W' key in the SceneView Fly mode would lock the camera to forward movement.

## Changes

- In pb_Entity, switch the 'Sphere Collider' option for 'Remove Collider'.
- Change verbage in Geometry shortcut description.
- Add tooltip for selection mode toggle button.
- Show HandleAlignment text when using shortcut to modify.
- Move DetachFace to Edit menu.
- StaticBatchingFlags.BatchingStatic is now set by default on Occluder and Detail entity objects, and toggled appropriately when NoDraw is detected.
- Move "Create ProBuilder Cube" to "GameObject->Create Other" menu
- Re-organize ProBuilder menu.
- New "Fix GameObject Flags" utility to address static batching issues.  Users experiencing issues with missing ProBuilder objects at compile time should run this command once (per scene).
- Remove 'Faces' menu item, merge with 'Geometry'
- Move 'Mirror Tool' and 'Vertex Color Interface' to Editor Core.
- Repair scripts now live in their own folder.
- Tool scripts (any Action with an interface) now live in their own folder.
- Remove unused beta upgrade script from Install folder.
- Drag selecting faces now (optional; defaults to true) limits face searching to selected objects.
- Remove 'Seamless' mode.

## API / Internal

- Add get/set for pb_Obect->_sharedIndices.
- Use ProBuilder.Actions namespace for all non-window requiring functions.
- When initializing a pb_Object with a pb_Object, use the vertex cache instead of accessing the mesh.
- Remove per-vertex smoothing methods in pb_Object.
- Remove _smoothIndices member from pb_Object.
- Move pb_Profiler to ClassesCore, allowing usage at runtime.
- Add 'color' property to pb_Face.  Used when setting Mesh.colors32.
- New pb_Edge class (not currently in use).
- New ProBuilder.Instantiate(GameObject go) method.  Behaves exactly like UnityEngine.GameObject.Instantiate() and may be used with ProBuilder and non-ProBuilder objects.
- Move math methods from pbUtil to pb_Math.
- Added List<> overrides to many of the more commonly used pb_Object method calls.
- Clean up face selection graphic rendering code (small editor performance improvement).
- New FixDegenerateTriangles method (handy when merging vertices or faces).
- CombineObjects method re-built for faster combine operations.
- New ProBuilder2.Common, ProBuilder2.MeshOperations, and ProBuilder2.Math namespaces.  Partially integrated.
- New pb_Editor_Enum class and namespace.

## Known issues

- With Unity 4.3 and up, undoing a Collapse Vertices operation is slow.
- Merging rotated objects does not account for UV rotation.
- OBJ export, something broken, etc.
- Unity inserts an additional Undo when selecting a new face on an already selected object.
- Can't shift-click to deselect edges.

# ProBuilder 2.1.4

## Features

- Notifications are now displayed when a shortcut is recognized.
- New preview feature in Geometry Interface.  Interactively create and place shapes.
- Remove dependency on concave MeshCollider for face selection.
- New MenuItems for opening the Texture Window, and assorted editor commands.

## Changes

- Move GUI folder to Resources, allowing 6by7 root folder to be placed anywhere in Project hierarchy.
- Decouple collisions from ProBuilder API entirely.

## Bug Fixes

- Fix bug where Mesh.Colors32 property would be lost on duplication.
- Clamp values in Geometry Interface to sane values.
- Fix plane generation pivot location when segments < 0.
- Fix bug that caused Unity to no longer recognize numberical input.
- Fix regression in 2.1.3 that caused MeshColliders break on entering playmode.
- Fix bug where shortcut keys would sometimes not be recognized.
- When updating ProBuilder, the editor window is now force-reloaded.
- Editor window is now sized correctly for both dockable and non-dockable frames.
- Fix compile errors when building project in Unity 4.1.2+
- Fix bug that caused merged objects to incorrectly snap vertex points while ProGrids window is present.
- Fix NullReferenceError when clicking Merge button with nothing selected.
- Fix GUISkin issues in Unity 3.5.
- Fix GUISkin modifications affecting pb_Geometry_Editor incorrectly.
- Fix 'Delete Face' notification incorrectly displaying on OSX.
- Fix merged objects losing collisions.

## API

- ProBuilder.Shortcut is now pb_Shortcut.
- Add pb_Upgrade_Utility as a base class for all updating operations.

# ProBuilder 2.1.3

## Features

- New Vertex Color Interface.
- New 'Detach Face' action.
- New 'Toggle Mover Visibility' button.

## Changes

- pb_Mesh_Extension renamed to pb_Object_Extensions.
- Transition default shader to Diffuse Vertex Color.

## Bug Fixes

- Fix pb_Object breakage when upgrading to 2.1.2+ from <= 2.1.1.
- Fix bug where switching to Geometry mode would not always correctly set Tool.current to Tools.None.
- Fix bug where calling the distinctIndices member of a pb_Face would sometimes throw an exception.
- Fix null reference errors when deleting object faces.
- Fix regression in 2.1.2 that caused non-cube type primitives to lose entity data and mesh information.
- Fix regression that caused Nodraw Visiblity Toggle to break.

## API

- Remove unnecessary calls to the mesh reference when accessing vertex information (most notably in UV mapping functions).
- Cache distinct indices in pb_Face, replacing pb_Face::DistinctIndices() with pb_Face.distinctIndices.
- Add pb_Edge class, and accompanying methods to retrieve all face edges and selectively perimeter edges.
- Add SetColors32(Color32[] colors) to pb_Object class.
- Add DetachFace(pb_Face face) to pb_Object class.

## Internal

- Update to SVN 1.7, small adjustments to build scripts.
- Add shell script to build distributable packages on OSX.

# ProBuilder 2.1.2

## Features

- New interface for pb_Entity class in Inspector.
- Scale transform now supported.
- Double click pb_Object face to select all faces.
- New ProBuilder/About window provides more build information.
- Full prefab support (removes "Create Prefab" button from ProBuilder editor).

## Changes

- Rewrite context tip for Lightmapping button to reflect it's new purpose.
- Automatically freeze scale transform when applying any change to vertices.
- Always ZTest for selection graphic in face mode.
- 'G' key now toggles between Edit Levels.
- Remove face vertex handle information from scene view.
- Remove install script from package.

## Bug Fixes

- Fix bug where user would be allowed to add multiple collision components to pb_Object.
- Fix bug where geometry would shift on Undo/Redo incorrectly.
- Fix leak when deleting pb_Objects.
- Fix regression in 2.1.1 that introduced a leak on switching pb_Objects while in ModeBased vertex editing.
- Fix bug where selection graphics would occasionally not update on undo, redo, or prefab apply / revert.
- Fix bug where setting EntityType would destroy transform parent/child connections.
- Fix incorrecty window sizing in pb_Editor.
- Fix rare error log when duplicating prefab objects.

## API

- Add OnVertexMovementFinished event to pb_Editor.

## Internal

- Implement SixBySeven shared library.

# ProBuilder 2.1.1

## Features

- Add MirrorTool action.
- Add Prism primitive.
- Add ProBuilderizer action (API example).
- Add Flip Winding Order action (flips face normals).
- Add dimensions parameter to Prism and Cube in Geometry Interface.
- Add ability to delete faces (select faces and press backspace)

## Changes

- "Auto NoDraw" becomes "NoDraw Tool", and features a vastly improved interface.
- Scroll bars added to ProBuilder Preferences panel, allowing for unlimited preference additions.
- Add undo support to Set Pivot action.
- No longer force rename pb_Objects post-initialization.
- Comment out menu item for Project Wide Nodraw utility, leaving action available for advanced users.

## Bug Fixes

- Fix bug where handles in Seamless editing mode would not draw.
- Fix bug where selected objects would disappear at runtime.
- Fix bug where drag selection would not be recognized in Seamless editing mode.
- Fix Unity crash when importing packages while ProBuilder window is open.
- Fix regression in 2.1 where a MeshCollider would always be assigned to pb_Object, regardless of Collider settings.
- Fix cylinder generation code to properly account for height divisions (now accepts 0 as a parameter).
- Fix bug where undoing texture modifications would not consistently refresh pb_Object to original state.
- Fix bug where pb_Objects would disappear at runtime with static batching enabled.
- Add overload to TranslateVertices that accepts bool forceDisableSnap.
- Fix bug in PivotTool that caused vertices to incorrectly be snapped when setting new pivot with snapping enabled.

## API Changes

- Add pb_Object::InitWithObject
- Add ProBuilder::CreateObjectWithObject
- Add pb_Object::GetName
- Add ProBuilder::CreatePrimitive(ProBuilder.Shape shape)

## Internal

- Add DrawAllFaceNormals to #DEBUG flagged pb_Editor.
- Update Sublime Extension to version 3.

# ProBuilder 2.1

## Features

- Add Smoothing Group support.
- New face selection graphic system respects depth order + speed boost.
- Add drag selection support for faces.
- UV2 channel generation now totally automated.
- New Lightmap Window exposes UnwrapParam properties per-object for fine-grained UV2 generation control.
- Add smart object naming, with the convention "pb(Shape Type)([Entity Type])-(Object ID)" - ex: pb-Cube[Detail]-1701)
- Add new "Mover" entity type, which is non-static and allows complete control at runtime.
- Add support for n-gon faces.

## Changes

- 'World' is now default handle alignment.
- Update default materials with dedicated textures.
- Update QuickStart window with more explicit options.
- Default values for Cylinder are now slightly more sane.

## Bug Fixes

- Fix ProceduralMaterials throwing errors in Texture Editor.
- Fix rare bug where incorrect vertex indices would be selected in an UpdateSelection() call, throwing a NullReferenceException.
- Fix bug where toggling selected faces would not correctly remove vertices from internal selection list.
- Fix bug where pivot would center at 0,0,0 on merging objects.
- Hide ACG property in Inspector window.
- Fix bug where merged objects would lose EntityType information.
- Fix bug where prefab creation would not account for pb_Group data.
- Fix bug where merged objects would lose normal data.
- Fix bug where exiting Texture Mode would not consistently set Edit Mode to Top.
- Fix bug where generating UV2 channel would incorrectly hide NoDraw faces, breaking synchronization with pb_Editor UI.
- Fix bug where ListenForTopLevelMovement would incorrectly fire, significantly slowing scene navigation.
- Fix bug where duplicating multiple objects would result in referenced pb_Objects.
- Fix bug in pb_Group where SetActive would incorrectly be called in Unity 3.5.
- Fix bug where collision meshes would not correctly update after an Undo / Redo event.
- Fix bug where drag selection would not exit properly if a function key is pressed mid drag.
- Fix bug where vertex handles would incorrectly be drawn in Top level editing mode.
- Fix bug where deleting a pb_Object would occasionally cause a NullReferenceError in UpdateSelection().
- Fix bug where Occluder objects would not allow textures to be applied.
- Fix bug where box colliders would not properly inherit trigger boolean value.
- Fix bug where merging objects or creating groups would not snap pivot point to grid (this also introduces centered pivot points).
- Fix rare bug where get_localRotation would fail.
- Fix white flash in Texture Window preview.
- Fix bug where ProBuilder would not remember Handle Alignment setting.
- Fix bug where editor selection property would not correctly update on object deletion.
- Fix minor bug where vertex handles would sometimes not immediately draw on entering Geometry editing mode.
- Fix bug where closing Texture Window manually would not always exit EditLevel.Texture.
- Fix bug where an Undo/Redo event would sometimes cause pb_Editor to attempt to refresh every pb_Object in scene.
- Fix bug where exiting EditLevel.Texture to Geo Mode would not correctly remember the previous SelectionMode.
- Fix bug where cylinder object sometimes initialize with un-even side lengths.
- Fix bug where on deleting a pb_Object's MeshCollider, ProBuilder would not immediately re-initialize it (prevents common PEBKAC error).

## API

- Integrate Doxygen (Still a work in progress - feel free to drop by the forums with any questions).
- Add SharedTrianglesWithFacesExclusive for extracting shared triangle indices exclusive to passed faces.
- VerticesWithIndiceArray is now VerticesWithTriangleArray.
- Remove pb_Object::CreatePrimitive.  Use pb_Shape for object creation, or pb_Object::CreateCube(float scale).
- Add OnVertexMovement EventHandler to pb_Object.
- pb_Object::CreateObjectWithPointsfaces is now pb_Object::CreateObjectWithVerticesFaces.

## Actions

- Update AutoNodraw to cast from all vertices + center point when determining hidden flag.
- In PivotTool.cs, snap pivot point to grid if no vertices are selected.
- Refactor EntityType.Brush to EntityType.Detail.

## Internal

- Add pb_Profiler class
- Add UVee window + ProBuilder specific modifications
- Add internal preference to force update preference when necessary (usually means adding shortcut items).
- Significant performace improvements in handle drawing.
