Added GeomMath.Snap to snap values to some multiple.
Renamed PreviewForm.AlignToGrid to SnapToGrid, and added Vector3 overload.
Added VibRibbon render flag, which can be used in the future to build triangles where only the first two vertices are used.
When the VibRibbon flag is present or Scene.VibRibbonWireframe is on, ModelEntity meshes will be built into MeshDataType.Lines.
Added LightDirection, LightIntensity, and AmbientColor options to MeshRenderInfo and MeshBatch, these can be used to override the scene's default settings. For example, the light rotation ray will always use the opposite light direction so that the face where the line comes out is lit up. This is also useful to have scene visuals that aren't completely ruined when setting the ambient color to black, or turning off lighting, when lighting might be useful to understand the visual.
MeshRenderInfo.Thickness is now enforced to a minimum value of 0f.
Fixed CubeNormals being reversed in TriangleMeshBuilder.
Added new TriangleMeshBuilder and LineMeshBuilder shapes: Cylinder, Cone, Ring, Sphere (both standard and octahedron), RectangleOutline, and CircleOutline.
Added AddTriangle function that takes 3 normals instead of just one.
Added debug functions to MeshBuilders to create model entities and root entities for testing in the scene viewer.
AddTriangle now allows a null color, which will default to White.
Added delay timer to modelPropertyGrid refreshing if the selected object is unchanged. This prevents huge amounts of lag when using the mover gizmo.
Fixed selected triangle moving to next triangle in the remembered list if the user unselected a triangle first.
Gizmo mover now accounts for scale and rotation, however non-uniform scale with rotation is not accounted for...