ROSE Math Library
Changes in release 19.0 (2020-10-01)
- Version 19 release.
- Renamed rose_xform_scale() to rose_xform_compose_scale(), because it
is actually building a scale matrix and composing it to apply the
scaling to both direction and origin.. Kept a temporary #define for
the old name. Added rose_xform_scale_dirs() which applies a scaling
factor to the direction portion of the matrix, which is how scaling
normally works in GL et al.
- Added functions useful for graphics transforms.
- Renamed RoseMeshFacetSet to RoseMesh and added many definitions from
the STEP and IFC meshers to share algorithms across the packages.
This includes the RoseSurface and RoseSurfaceSolver classes, and the
Changes in release 18.1 (2019-10-28)
- Version 18 Service Pack One release.
- Added AMF and 3MF export functions for meshes.
Changes in release 18.0 (2018-10-01)
- Version 18 release.
- Check if the given axis and reference direction vectors are
co-aligned in a call to rose_xform_put_dirs() and if they are,
generate a reference dir as if it were omitted.
- Pass through original value on unit conversion if either the
starting or ending unit is declared as roseunit_as_is. Previously,
we only checked ending unit.
- Added functions to project a point to a plane.
- Added functions for use with Euler angles and rotations.
- Disable XML entity expansion when reading XML mesh data to avoid
billion laughs attack.
Changes in release 17.1 (2017-12-29)
- Added RoseDelaunay2D::getPointCount() method.
- Updated RoseMeshFacetSet::getTriangleNormal to return a zero vector on
degenerate triangles and tweaked tolerance for degenerate values.
- Speed improvement to vector normalize.
Changes in release 17.0 (2017-04-07)
- Update for major revision.
- Updated RoseMeshTopology to allow partial shells to be processed.
(Useful for finding the boundaries of a set of facets.)
- Added RoseMeshXMLOpts to the XML writer API.
- Added bulletproofing against NULL values to topology handling code.
Changes in release 16.11 (2016-11-02)
- Updated topology validation to fail fast.
- Added getPoint method to RoseDelaunay code.
Changes in release 16.10 (2016-07-25)
Changes in release 16.9 (2016-06-30)
- Added RoseMeshFacetSet::appendNullFacet, clearFacetsOnly.
- Added rose_mesh_set_color (for a mesh face).
Changes in release 16.8 (2016-06-01)
- Released as ST-Developer v16 SP4
- Updated mesh topology validation code to check for anti-parallel
facets that share a single vertex
- Added overloads with RoseDirection and RosePoint to the put_x/y/zdir
functions and rose_xform_put_origin.
- Added some constant arrays for ordinal directions to accompany the
existing rose_vec_zero const array.
Changes in release 16.7 (2015-12-31)
- Added function to write mesh data in JSON format.
Changes in release 16.6 (2015-11-21)
- Version bump for ncpack 16.16
Changes in release 16.5 (2015-09-21)
- Updated RoseMeshTopologyVertexCursor to insure that the edges and
vertices returned by getNext are return in counter-clockwise order.
- Added void MeshMeshTopologyVertexCursor::facetEdgeVertex.
- Update for ST-Developer v16 SP3
Changes in release 16.4 (2015-08-25)
Changes in release 16.3 (2015-08-19)
- Version bump for latest ncpack.
Changes in release 16.2 (2015-08-18)
- Updated delaunay functionality to specify two types of edges:
border and internal. This is needed when refaceting triangles.
- Updated delaunay code to be more more robust numerically when computing
the intersection of two small line segments by scaling the direction
vector rather than using the existing values
- Update RoseMeshFacet::getFacetNormal to not crash when the facet index
- Fixed bugs in rose_mesh_topology: grow vertex list when calling
Update growFacetList to take a size parameter, rather than the max
facet to take (== sz+1).
- Updated RoseDelaunay2D::insertPoint to return ROSE_NOTFOUND when any of the
points in the list could not be inserted.
Changes in release 16.1 (2015-07-24)
- Added topology query methods to RoseDelaunay2D:
getEdgeCount(), getEdgeVertex(), getEdgeTriangle(), getTriangleEdge(),
- Facet, Face, Face properties and FacetSet basics.
- Added RoseReal2DArray and RoseReal3DArray to handle lists of points
- Added cartesian transformation operator initialization logic and
non-uniform scaling operations.
- Bounding box classes for 3D and 2D regions. Added bounds
computation for lists of points, facets and entire meshes.
- Added rose_pt_midpoint(), centerpt() for the bounding boxes, and
meshing XML output.
- Added 2D Delaunay triangularization helper class.
Changes in release 16.0 (2015-06-02)
- Matrix math, cross/dot products, etc for points, directions, and
coordinate system transforms.
- Unit enums and value conversion.
- Initial version, collecting math code scattered across stix,
stixmesh, stixsim, and ifc libraries. Bringing everything into one
place, documenting, and making sure everything is properly tested.
Copyright © 2021 STEP Tools Inc. All Rights Reserved