GeomSS Changelog

What's new in GeomSS 0.7.00 Alpha

Oct 10, 2020
  • This is a minor update that adds a few new features and fixes a few bugs.
  • Added a new geometry reader that can read in ASCII Tecplot triangle files into a list of triangles.
  • Added ability to create a parameter from a string representation of the number and its units; e.g.: a = newParameter("10 ft").
  • Added an initial ability to create an unstructured grid on a planar region bounded by a string of points (still not completely working).
  • Added a "normal2D()" function that returns the in-plane normal vector to an input 2D vector.
  • Added a series of methods that test the PointString:
  • isDegenerate() -- Collapsed to a point.
  • isLine() -- All the points along a line.
  • isPlanar() -- All the points lie in a single plane.
  • Improved error checking in CST curves.
  • Improved the robustness of the LineSegment.intersect() method.
  • Modified CurveUtils.arcLengthParameterize() to be more robust.
  • Fixed a bug with an underlying library (MRJAdapter) that wasn't compatible with recent versions of Java (Java 15 in particular).
  • Fixed bugs in the GGP format geometry reader.
  • Corrected an error that could occur if the user creates a Plane (intended to be immutable) using a mutable GeomVector object to define the normal vector.
  • Fixed a bug that could cause transformed versions of geometry objects to loose track of the user data associated with the child objects.

New in GeomSS 0.6.01 Alpha (Nov 9, 2017)

  • This release fixes a serious bug that could make it impossible to draw some surfaces.

New in GeomSS 0.6.00 Alpha (Oct 30, 2017)

  • This is a minor update that fixes a couple of bugs and adds a few new features.
  • Added a "glob" command that matches file patterns in a way similar to the Python glob.glob() function.
  • Added normSq() and distanceSq() methods to all GeomPoint objects.
  • Added a new version of the newTFISurface() command that takes an unordered list of 4 boundary curves (and assumes the 1st one to be the s=0 curve).
  • Modified GeomUtil to:
  • Added a method that detects corners in a a list of 2D points which represent a planar curve.
  • Added methods for computing the ordered points that represent the convex hull of a collection of unordered 2D points.
  • Added averagePoints() methods that average the points in an array or list of points.
  • Made some surface intersections more robust.
  • Modified AbstractCurve to:
  • Improved the performance of the getClosest() and pointAtArcLength() methods.
  • Rewrote gridToTolerance() algorithm to return fewer points in many common (but not all) situations while still meeting the general contract. In curves with a lot of knots, a coarse tolerance will now return a lot fewer gridded points than before. Also, the gridded points will now generally have better parametric spacing.
  • Modified AbstractSurface.gridToTolerance() to do a better job of minimizing the number of points required to meet the requested tolerance similar to what was done for AbstractCurve.gridToTolerance().
  • Fixed a bug in CurveFactory.parameterizationCheck() where the wrong tolerance was being used to test for something being approx. equal to zero.
  • Modified PointArray to:
  • Add a getColumn() method that returns the specified column of points from the array as a new PointString.
  • Fixed an inconsistency where "thinRows()" and "thinColumns()" as well as "enrichRows()" and "enrichColumns()" were each swapped (columns and rows were confused).
  • Modified Parameter class to be compatible with (not clash with) the jscience 4.3's Amount class.
  • Improved some of the airfoil analysis scripts provided with the Sample Geometry.
  • Modified crvTest.bsh and surfaceTst.bsh to use "assert" type tests in most cases instead of just printing to the terminal.

New in GeomSS 0.5.03 Alpha (Mar 22, 2017)

  • Released on January 31, 2017
  • Fixed a bug in the surfaceTest.bsh script.
  • Fixed a bug that could prevent triangles from being drawn.

New in GeomSS 0.5.02 Alpha (Oct 31, 2016)

  • Modified "plotXY()" command to accept lists of any Number type (not just Double).
  • Added a "fitPlane" command that will fit a plane to a list of points in a least-squared orthogonal error sense.
  • Added a set of "rangeList" commands for creating an returning lists of integers that range between input values (somewhat similar to the Python "range" command, but as a List).
  • Added the ability to serialize a CircleInfo record to XML. This allows it to be saved in an XGSS file.
  • Fixed a bug in Vector.toDimension() that could cause a NullPointerException to be thrown under certain circumstances.
  • Fixed a bug that could cause a NullPointerException to be thrown when drawing GeomNote objects contained in GeometryList objects.
  • Fixed a bug where the "list()" command could sometimes throw an exception.
  • Fixed a bug that caused Plane objects retrieved from XML to loose the reference points they were saved with.
  • Modified IGES reader to respect the Plane reference points when reading in planes from a file. Previously, the reference point would be ignored in favor of the "D" coefficient (which is somewhat, but not completely redundant).

New in GeomSS 0.5.01 Alpha (Aug 29, 2016)

  • This is a minor update to fix a few bugs that have cropped up:
  • Fixed a bug that caused the fitting of surfaces to arrays with a collapsed edge to sometimes result in bad parametric spacing.
  • Fixed a problem that could cause the CurveUtils. arcLengthParameterize() method to take an unreasonably long time to complete.
  • Fixed a bug in CurveUtils. thinKnotsToTolerance() that caused it to remove far to many knots resulting in curves that did not meet the tolerance requirement.
  • Greatly improved the performance of the commonly used 'GeometryList.containsGeomety()' method dramatically.

New in GeomSS 0.5.00 Alpha (Aug 12, 2016)

  • This is a fairly significant update that adds a number of new methods, commands, and a new curve type. This update also fixes a number of bugs:
  • Added initial support for Class-Shape-Transform (CST) type curves including some examples of how they are used.
  • Added methods for extracting the transformation matrix from the GTransform object.
  • Added an enumeration of grid spacing type constants that can be used to provide the desired spacing values directly: e.g.: GridSpacing.COS.spacing(10); returns 10 values spaced between 0 and 1 inclusive using a cosine distribution.
  • Added multi-processing to the STA, BUT and WAT commands when they are provided lists of objects to intersect. On multiprocessor machines, this results in a significant speedup in these commands.
  • Added the OBL command. This is similar to STA, BUT & WAT, but allows the user to specify an arbitrary (oblique) cutting plane.
  • Added a "getEdges()" command for returning the 4 boundaries of a Surface or PointArray.
  • Added a "joinArrays()" command that joins together two adjacent arrays along a common edge.
  • Modified digitize() command to optionally take an existing list of subrange points on the curve or surface (for editing).
  • Added some new example scripts for working with airfoils (getAirfoilMaxThickness.bsh, getTEThicknessPoints.bsh, scaleAirfoil.bsh and setAirfoilTE.bsh).
  • Updated to Apache Commons to version 3.5
  • Changed the program's null philosophy. Previously, many methods silently ignored null inputs. Now nulls are generally considered an error and an exception is thrown unless otherwise stated in the documentation. This may require users to modify existing scripts.
  • Made curve-plane intersections more robust.
  • Made the IGES reader more robust.
  • Fixed a bug that caused a null pointer exception to be thrown incorrectly in TFISurface.
  • Fixed a bug where a list containing a LoftedSurface would not draw correctly.
  • Fixed a bug where the wrong vector type was used internal to doing curve-surface intersections.
  • Fixed a bug in the "intersect" command where the wrong Ldir type was being used.
  • Fixed a bug in the example "getAirfoilParams.bsh" script that caused the twist angle to always be zero.
  • Updated to make use of some of the new features in Java 1.8.
  • Program now requires Java 1.8 or later.

New in GeomSS 0.4.00 Alpha (Aug 12, 2016)

  • This update primarily adds support for creating simple 2D X-Y type plots and fixes a few bugs:
  • Added a basic ability to create 2D XY type plots using the "plotXY()" command. The returned PlotXYWindow object and it's chart can be heavily customized and then displayed.
  • Added a new version of "GeomUtil.linePlaneIntersect()" that takes a tolerance on the intersection in the inputs.
  • Added an "immutable()" method to NurbsCurves that will always return a BasicNurbsCurve (essentially the same behavior as "copyToReal()").
  • Fixed a bug that caused GeomVector objects to loose their origin point when retrieved from an XGSS file (or any XML serialization).
  • Fixed bugs in the calculation of the bounding box points for a LinearComboCurve.
  • Fixed a bug in SubrangeCurve where user data was not being copied correctly.
  • Picked up a new version of JOGL (2.3.2) which fixed a display problem that could sometimes happen when drawing arrays.
  • Fixed a long-standing bug that caused the items under the "Windows" menu to get out of synch with the list of open windows.

New in GeomSS 0.3.00 Alpha (Aug 12, 2016)

  • This update adds support for a linear combination curve and fixes a number of bugs:
  • Added support for a LinearComboCurve which is a weighted linear combination of a list of curves.
  • Added a “digitize” command that allows the user to interactively digitize points off of a Curve or Surface.
  • Added a method to PointString that returns the average of all the points in the string.
  • Added a method to PointString that returns a new string of points sorted in the particular physical dimension requested.
  • Fixed a bug in LoftedSurface that prevented reading it in from an XGSS file.
  • Fixed a bug that could cause line-surface intersections to fail in many instances where they should work.
  • Fixed bugs that could allow incorrect item types and dimensions to be inserted into geometry lists.
  • Fixed bugs that could cause geometry written to BDS, STL and TRI files to be output in inconsistent dimensions.

New in GeomSS 0.2.00 Alpha (Aug 12, 2016)

  • This update adds support for triangles as a first-class geometry object:
  • Added support for triangles as an elemental type in GeomSS. There are new Triangle classes and a TriangleList to represent a collection of triangles.
  • PointArray objects can now be triangulated and converted into a TriangleList.
  • Added the ability to read/write some triangle file formats including binary STL, and Cart3D ASCII TRI.
  • Added support for approximating general super-ellipses with dissimilar exponents. The program could already exactly produce super-ellipses with like exponents on each term.
  • Changed GeomReader objects to accept whatever the geometry units are when writing geometry to non-unit aware file formats (rather than converting the geometry to a default set of units as was done before). This allows the user much more control (and was what was originally intended).
  • Updated to JOGL version 2.3.1 and Java3D version 1.6.0-pre12.
  • Fixed a few obscure bugs.
  • Improved the API documentation in many places.
  • Rewrote the “buildWing.bsh” example script to demonstrate more features including writing an STL file.

New in GeomSS 0.1.06 Alpha (Nov 13, 2014)

  • This update is primarily a bug fix release:
  • Corrected an error in the WAT, BUT and STA commands where they would sometimes return lists of lists of intersections rather than just lists of intersections (per their documentation).
  • Fixed a series of bugs where the GUI could hang under certain circumstances.
  • Changed the default DEGREE_ANGLE symbol to "deg" and added "lbm" and "lbs" as aliases for POUND.
  • Updated to the latest versions of JOGL (2.2) and Java3D (1.6.0 pre 11).
  • Modified to use AppBuilder to create the MacOS X executable and fixed an error in the Solaris executable (error in the build script that copied in the wrong native code for JOGL).
  • Added a version of the setDrawTolerance() command that automatically sets a tolerance that is appropriate for a specified geometry element that is going to be drawn.
  • Added a new version of the newTranslation() command that uses the elements of a GeomPoint as offsets for the translation.

New in GeomSS 0.1.05 Alpha (Apr 16, 2014)

  • Added new variations on "newParameter" that take strings (CharSequence actually) for the value and the units.
  • Modified the line-surface intersector to be more robust and to not return duplicate points.
  • GridSpacing.tanh() will now throw an exception if an illegal combination of number of grid points combined with end spacings are input.
  • Corrected an error that caused the repeated drawing of objects to fail under certain circumstances.
  • Fixed a problem where images were not getting captured properly for saving or printing under certain circumstances.
  • Fixed the centerAndZoom() feature to work properly when only points are drawn.
  • Modified to write out geometry files in the proper format no matter the user's locale. Most of the supported file formats are required to be in ASCII with U.S. number formatting rules.

New in GeomSS 0.1.04 Alpha (Mar 26, 2014)

  • This update is primarily a bug fix release.
  • Added initial support for reading/writing NASA GridTool restart files . I had to reverse engineer the format, so there are likely major issues at this time.
  • Added an additional newFillet() method that takes two line curves, a radius, and a tolerance.
  • Added isApproxEqual() methods that determine if a GeomPoint or GeomVector have coordinate values that are approximately equivalent to either machine epsilon or the specified tolerance.
  • Updated to the latest version of BeanShell2.
  • Made LoftedSurface a proper List object since it is really a list of defining section curves and corrected errors with how indexing was handled if the user inputs a negative index.
  • Added a class to geomss.ui that allows you to easily dump a LogContext to the BeanShell terminal.
  • Added a unit test suite for Curves: CurveTestSuite.
  • Added BeanShell commands, "runTestSuite()", "runRegressions()", and "runBenchmarks()" that execute the suite of unit tests that are being built up for the GeomSS library (currently, the tests are limited to curves).
  • Completely rewrote GeomUtil.threePointCircle() to use a new algorithm that is significantly more robust. The previous algorithm would fail for 2D points specified in a clockwise direction as well as for nD curves where the 2nd point is greater than the circle radius away from the 1st or last points.
  • Replaced some of the GeomSS BeanShell commands with native Java commands in order to use variable length argument lists. This is essentially invisible to the user other than the additional variable length argument list capability on some built-in commands.
  • Corrected a unit error that could occur under certain circumstances in GeomUtil. lineLineIntersect().
  • Fixed a bug that caused objects redrawn with different draw tolerances to have their original copies incorrectly erased.
  • Fixed a bug that caused surfaces to be drawn incorrectly when some of the surface properties were changed such as alpha, or shininess.
  • Corrected a bug in getCurvature() that would return a negative value for curvature for certain 2D curves.
  • Corrected problems with some classes missing "equals()" and "hashCode()" methods.
  • Corrected a typo that prevented list() from working on Subrange geometry.
  • Fixed a bug in "CurveFactory.createBlend()" that caused an exception to be thrown incorrectly if unitFlag is false and tanlen of

New in GeomSS 0.1.03 Alpha (Mar 3, 2014)

  • This update is primarily a bug fix release.
  • Improved the robustness of Curve.getClosestPoint(), Curve-Surface intersection, Plane-Surface and Surface-Surface intersection.
  • Greatly improved the performance of the closest point and Surface-Surface interjector.
  • Rewrote Point and Vector classes to improve performance. Rewrote MutablePoint and MutableVector to eliminate large amounts of duplicated code.
  • Modified Curve.guessGrid2TolPoints() to handle the case of a 1D curve.
  • Replaced the JScience matrix solver with Apache Commons Math matrix solver. The JScience solver was using to much memory and was slower.
  • Improved internationalization support by using MessageFormat for compound messages rather than a custom solution.
  • Corrected errors with intersecting degenerate curves with other curves, planes or surfaces.
  • Corrected errors in many of the equals() and hashCode() methods.

New in GeomSS 0.1.02 Alpha (Feb 12, 2014)

  • Added a "pick" command where the user can select geometry from whatever is currently drawn by control-clicking or control-dragging a selection rectangle. The user is then presented with a list of geometry that was selected and given the opportunity to filter out unwanted items.
  • Added an "orientArrays" command that allows the user to interactively orient the points in a list of arrays.
  • Added an "orientSurfaces" command that allows the user to interactively orient the parameterization on a list of surfaces.
  • Added support for text notes/labels that are displayed on the screen at a fixed size in font points and are always oriented face-on to the user but are associated with a point in the model. These can be created with the "newNote" command.
  • Added support for notes/labels that are represented by a fixed size and orientation in the model space. These notes can be created with the "newModelNote" command.
  • Added new "drawAxes" variants that will draw axes on Curve, PointArray and PointString objects.
  • Added a new "drawLabels" command that draws labels next to any objects in a list that have names or variables associated with them.
  • Modified the "drawTriad", and "drawAxes" commands to also draw labels next to the axes.
  • Greatly improved the performance of Curve.getArcLength(), Surface.getArea(), Surface.getVolume() and Curve.getEnclosedArea() for most cases.
  • Fixed a problem were the Open dialog could fail to open on some Linux systems.
  • Corrected a bug in "toDimension()" for transformed objects. Transformed objects may only be 3D

New in GeomSS 0.1.01 Alpha (Jan 13, 2014)

  • Fixed a bug that could cause some objects not to render properly.
  • Fixed some roundoff errors that made IGES import/exports unreliable in some instances.
  • Fixed a bug that could cause curve on surface entities to not write out to IGES correctly.
  • Changed the tolerance used to convert parametric curves (that define SubrangeCurves) to NURBS curves when writing to an IGES file.

New in GeomSS 0.0.20 Alpha (Dec 6, 2013)

  • Changes include:
  • Added "getLimitPoint" method to all GeomElement objects. This method finds the accurate limiting point in the specified coordinate direction.
  • Added a "newRotation" command that takes three Euler angles as doubles in degrees.
  • Added a "grid" command for a curve that takes a grid rule and a number of equally spaced points.
  • Added a "newUnitVector" command that takes 3 parameter objects.
  • Improved the robustness of Plane-Surface and Surface-Surface intersections. Can now handle intersections that pass through a collapsed surface edge. Surface-Surface intersections still have a ways to go.
  • Improved performance of "isDegenerate()" method for surfaces.
  • Fixed a bug in the BSH command "intersect" for intersecting a line segment with a curve.
  • Fixed a bug that prevented the VECCGeomReader from reading GEO files created by HEAT-TK.
  • Corrected "copyToReal()" to correctly remove subranges and transformations on the control points for the curve or surface.

New in GeomSS 0.0.19 Alpha (Jul 15, 2013)

  • Added a new "native" XML based file format for GeomSS, XGSS, that can fully save and restore all geometry elements as well as certain other objects.
  • Added "save" and "open" BeanShell scripts that save and read back in all the geometry and non-geometry variables found in the BeanShell console global workspace.
  • Modified File menu so that "Save..." and "Open..." save and restore the console workspace and a new item "Import..." is used to read in other geometry files (the previous function of "Open...").
  • All geometry objects can now be easily serialized to XML (as was always intended, just never completely implemented until now).
  • Added the ability to calculate the signed area of the region enclosed or subtended by a planar curve or list of co-planar curves.
  • Added a constructor for a circle where the xhat and yhat directions are specified.
  • Improved the robustness of Plane-Surface and Surface-Surface intersections, but more work is required (these intersectors are not hard to break).
  • Added new STA, BUT, and WAT commands that make planar station (constant X), buttock line (constant Y), and water line (constant Z) cuts through curves or surfaces.
  • Further improved the IGES reader to better read Curve-On-Surface (Type 142) entities as well as better handling of writing geometry that is other than 3D (it is converted to 3D by dropping additional dimensions or padding with zero if less than 3D).
  • Corrected a bug that would cause the 3D view to blank when the mouse button was released after a rotation on the Windows platform.
  • Picked up the new Open Source Java3D 1.6.0 pre 7 and bundled Java3D with the application (a separation installation of Java3D is no longer required!).

New in GeomSS 0.0.18 Alpha (May 8, 2013)

  • Added a new TFISurface type that represents a bilinearly blended trans-finite interpolated from boundary curves surface or Coon's Patch.
  • Added a new SubrangeSurface type that represents a surface that is mapped onto another surface. This can be used to form trimmed surfaces from boundary curves on another surface.
  • Added a method to CurveUtils that creates a NurbsCurve that is approximately the same as the input NurbsCurve but with an arc-length parametric spacing.
  • Added the ability to merge another knot vector with the existing knot vector in a NURBS surface.
  • Added a method to CurveFactory that creates a NURBS representation of a 1st quadrant super-elliptical arc with the same exponent on both axes.
  • Major improvements to the IGES reader including:
  • Added reading in of IGES Type 112 Parametric Spline curves (converted to NURBS curves).
  • Modified to convert Type 102 Composite Curve entities into a single NurbsCurve element with the original segments stored in the curve's user data as "IGES_102_CCSegs".
  • When reading a file, any IGES parameters are now stored in the "user data" of each returned geometry element.
  • Added ability to read Type 106, Form 3 and 13 (3D points with associated vectors returned in a list: GeomList).
  • Added ability to write a Type 106, Form 13 from a list of GeomVector objects (GeomList)
  • Added ability to read a Type 118 Ruled Surface (both forms) and return it as a LoftedSurface
  • Added ability to read a Type 120 Surface of Revolution returning it as a NurbsSurface
  • Added ability to read a Type 142 Curve on Surface returning it as either a single SubrangeCurve or a list of SubrangeCurves (if the IGES curve entity is a Composite Curve).
  • Added ability to read a Type 144 Trimmed Surface. This reader attempts to convert such surfaces into a SubrangeSurface if possible (it is not always possible), otherwise, it is returned as the underlying surface with separate SubrangeCurves for the boundaries.
  • Corrected the IGESGrain user data property

New in GeomSS 0.0.16 Alpha (Oct 8, 2012)

  • Fixed a bug with connecting a list of curves that contain control point weights other than 1.0.
  • Fixed a bug with calculating the tangency point on a curve from another point.
  • Corrected a round-off error that could occur when creating a revolved surface.
  • Modified SurfaceFactory.fitPoints() to work properly with an input array that has a collapsed edge.
  • Added GeomSS commands to easily create an arbitrary rotation (with axis-angle, or Euler angles, or Quaternions).
  • Added a "geomss.ui.Colors" class that contains a larger selection of pre-defined color constants than what is found in java.awt.Colors.
  • Added a "drawMultiColored" GeomSS command that will draw a list of geometry elements with each element drawn a different color.
  • Added a "getTotalTransformation()" method that returns the total transformation that results from a chain of GeomTransform objects nested one inside the other.
  • Added the ability to find the closest point between a surface and a plane.
  • Added a method that will return the limit point, in the given coordinate direction, on a surface.
  • Added an "isValid" method that determines if a particular geometry element is numerically valid and doesn't contain NaN or Inf values.
  • Modified to no longer automatically draw a geometry after loading it by choosing "Open..." from the file menu.

New in GeomSS 0.0.15 Alpha (Aug 17, 2012)

  • Added a GeomSS command that will convert a transform about the origin to a transform about the specified point.
  • Added SurfaceFactory.createSkinnedSurface() that will fit a surface through a series of defining section curves.
  • Corrected a bug that caused an exception to be thrown when drawing lists containing empty lists.
  • Corrected a round-off error that could occur under certain circumstances in the "splitAt" method.
  • Improved performance and reduced memory footprint of the IGES reader. Corrected an error that could occur under certain circumstances when converting a LoftedSurface to a NurbsSurface with LoftedSurface.toNurbs().

New in GeomSS 0.0.7 Dev (Oct 1, 2010)

  • Added the ability to reverse the parametric direction of a curve and to reverse either of the parametric directions of a surface.
  • Added the ability to transpose the parametric directions of a surface.
  • Added the ability to elevate the degree of a NURBS curve or surface.
  • Added the ability to split a curve into two curves at an arbitrary parametric position.
  • Added the ability to split a surface into two surfaces at an arbitrary S or T parametric position.
  • Added the ability to thin out every other point in a string or every other column or row in an array of points.
  • Made the closest point algorithms for curves and surfaces more robust.
  • Modified "decomposeToBezier" methods to return actual curve and surface representations of the segments/patches (rather than lists of control points only).
  • Fixed a bug that caused some geometry readers/writers to not close their output streams.
  • Corrected errors with NurbsSurface.getS0Curve(), getS1Curve(), getT0Curve(), and getT1Curve().

New in GeomSS 0.0.6 Dev (Oct 1, 2010)

  • Added the ability to read and write a limited set of entities from/to an IGES file
  • Redesigned the interfaces and methods for reading/writing geometry files to be more general.
  • Added new command options for creating points, and the various geometry lists.
  • Added a method that will return the length of a PointString where "length" is defined as the sum of the distances between each consecutive point in the string.
  • Modified CurveFactory as follows:
  • Added a method for creating a degenerate point curve. This is a curve that is defined only at a single point (it has zero length).
  • Added a method for creating an elliptical arc segment.
  • Added a method for creating a parabolic arc segment.
  • Reversed the parametric direction of all circular/elliptical arcs so that they are counterclockwise when viewed looking down the normal vector (consistent with the right hand rule). This change will break existing scripts that use circular or elliptical arcs created using CurveFactory.
  • Added the ability to run GeomSS from the command line in a "batch" mode that runs the specified script without bringing up the interactive GUI.

New in GeomSS 0.0.5 (Oct 1, 2010)

  • Added methods for inserting one or many new knots into the knot vector(s) of existing curves (surfaces).
  • Added methods for attempting to remove knots from a curve or surface maintaining the curve or surface shape to within a certain tolerance.
  • Added methods for easily extracting the S & T curves that correspond to the columns & rows of the surface's control point network.
  • Added methods that decompose a NurbsCurve (or NurbsSurface) into Bézier curve segments (or surface patches). GeomSS doesn't support dedicated Bézier curve or surface objects, so these methods return lists of lists of control points or control point networks.
  • Added variants of the draw() command that will draw control points and any List containing geometry objects (or containing other Lists containing geometry, etc).
  • Added a command for creating a 1-degree straight line NurbsCurve between any two points (in any dimension).
  • Fixed some misc. bugs that cropped up in testing.

New in GeomSS 0.0.4 (Oct 1, 2010)

  • Added the ability to find the closest and farthest point on a surface to a specified point or array (list of lists) of points.
  • Added methods for finding the closest/farthest point on a curve for each point in a list of points.
  • Added methods for finding closest and farthest points on a curve or surface that are near the specified parametric position (allowing the user to identify the particular local minima to be returned).
  • Corrected errors in the calculation of curve arc length, surface area and surface enclosed volume that greatly increased the accuracy of these methods.
  • Improved type safety of the various geometry lists (so that you can't add a PointArray to a PointString for instance).

New in GeomSS 0.0.3 (Oct 1, 2010)

  • Fixed a bug that prevented "Change Working Directory…" in the "File" menu from working.

New in GeomSS 0.0.2b (Oct 1, 2010)

  • Fixed a bug that prevented "Change Working Directory…" in the "File" menu from working.

New in GeomSS 0.0.2 (Oct 1, 2010)

  • Added support for Lofted Surfaces (surfaces made from a list of defining curves).
  • Added calculation of surface normal vector, tangent plane, mean curvature, Gaussian curvature, twist vector, surface area and enclosed volume.
  • Greatly improved unit support for parametric objects (curves & surfaces).
  • Corrected an error that caused an invalid error message to be displayed when Java3D 1.5+ could not be found.
  • Newly drawn objects now honor the previously set mirroring and render type settings. CenterAndZoom now honors the mirroring setting.
  • Fixed a bug with the calculation of derivatives on a SubrangeCurve.
  • Corrected an error in ControlPointNet.to() method.