Releases: nicklockwood/ShapeScript
Releases · nicklockwood/ShapeScript
1.4.0
- Added user-defined cameras
- Added boolean constants and operators
- Added comparison operators (greater than, equals, etc)
- Added
if
/else
statements - Added
assert
command - Improved suggestions for mistyped operators
- Replaced range expression with separate
to
andstep
operators - Failure to load an external model now displays an error instead of failing silently
- Added distinct error type for invalid text escape sequences
- Simplified identifier expression representation
- Converted
option
keyword to contextual keyword - Added
Geometry.worldTransform
property
1.3.10
- DAE files containing triangle strips or non-triangular polygons are now loaded correctly
- Fixed empty Geometry names not being set to nil
- Fixed broken footer links in help pages
- Bumped Euclid to version 0.5.14
1.3.9
- Added multiple camera options
- Added orthographic view option
- Reorganized camera menu and keyboard shortcuts
- View settings are now saved per-document instead of globally
- Fixed bug where camera would reset when toggling wireframe mode
- Documents now open in tabs automatically when tab bar is shown
1.3.8
- Added
svgpath
command for creating paths using SVG-compatible syntax - Added
bounds
member property for calculating dimensions of complex shapes - Added
wrapwidth
andlinespacing
options for text - Improved debug command behavior for children of CSG containers
- Fixed bug when setting
background
color with a single number (e.g.0
for black) - Fixed bug where only first expression argument was highlighted in a type-mismatch error
1.3.7
- Added debug command for highlighting invisible geometry
- Custom blocks can now return any value type, not just meshes or paths
- Infix expressions are now handled correctly when used in a statement position
- Improved type mismatch error messages for block parameters
- String values are no longer nullable and empty strings are handled more correctly
- Nested command calls without parentheses are now handled correctly
- Improved type reporting for single-value tuples in error messages
- Updated print behavior to better match text interpolation
1.3.6
- Added text interpolation, allowing text strings to be constructed dynamically
- Import and textures file paths can now be constructed dynamically
- Alpha component of colors can now be overridden with a convenient syntax
- Removed confusing references to "string" and "identifier" from error messages
- Added ability to load text fonts from a file name or path
- Fixed bug where font getter returned texture instead
- Improved help documentation
1.3.5
- Numbers can now be used in text blocks
- Fixed bug with times/divide operator associativity
- Fixed default zoom level in viewer when axes are shown
- Fixed bug in scene bounds calculation when children have a transform applied
- Improved error message for missing files specified by full path
- Limited maximum lineWidth when rendering paths
1.3.4
- The position/size/orientation options can now be used inside
text
blocks - Fixed parsing error when using inline expressions in loop range
- Unsupported string escape sequences are now treated as an error
- Command parameters are now included in assertion failure error highlighting
- Fixed bug with sequential escape sequences in text
1.3.3
- Fixed crash when font is set to an empty string
- Fixed incorrect suggestion of
option
for typos in contexts where it isn't available - Print logging in a long/infinite loop no longer freezes UI
- Help index is now generated automatically
- Improved help for colors and text
1.3.2
- Added stack overflow detection, preventing crashes due to infinite recursion
- Added support for underscores in identifiers
- Empty and single-element tuples are now permitted (useful in loops and data structures)
- Looping over vector, size and color values is no longer permitted (only tuples and ranges)
- Geometry
Hashable
implementation is now based on value rather than reference - Bumped Euclid to 0.5.12, which fixes the getters for
Rotation.pitch
/yaw
/roll
- Shape position/orientation/size are now read/write properties instead of setters
- Wireframes are now rendered with polygons instead of lines on x86, for better quality
- Added open/create document prompt when opening app
- Improved Welcome view