The version is of the bottom crate truck-rendimpl
.
- Implement
Transformed<Matrix4>
forPolygonMesh
. - Fix some step output.
cargo upgrade -i
- Create
CYLINDRICAL_SURFACE
bybuilder::rsweep
. - Step output for specified revoluted surface.
- Remove
println
for debugging. - Generalize
truck_modeling::builder
for apply step parsed geometries. - Review of the specifications for
IntersectionCurve
. - Fix STEP header description.
- Fix some typos.
- Implement
BSplineCurve::interpole
. - Implement
search_intersection_parameter
between surface and curve. - Add macros:
wire
andshell
. - Strict derivation and
search_parameter
ofIntersectionCurve
. - Prototyping for fillet surface with NURBS geometry.
- Implement abstract newton method.
- Minor correction of
double_projection
. - Update algorithm of
double_projection
. - More improve of
truck_geotrait::algo::surface::search_parameter
. - Simplify
truck_geotrait::algo::surface::search_parameter
. - Add the macro
truck_topology::prelude!
.
2025-02-06
truck_stepio::in
has been released!- Parse some geometries: B-spline, NURBS, elementary geometries, and so on.
- Parse topologies: shell and solid.
- JS wrappers.
- Implement
robust_triangulation
, trimming meshes bySearchNearestParameter
. - Output meshes by vtk formats.
- Split closed edges and faces, loaded from STEP (generated by other CAD systems).
- Calculate volume and center of the gravity of
PolygonMesh
. - Derive macros for implementing
StepLength
andDisplayByStep
. area
andinclude
function for a domain with several polyline boundaries.
- Add "periodic" identifier to
ParametricCurve
andParametricSurface
. - Remove the
Invertible
constraint from tessellating traits. - Features has been set up to use each module in
truck-meshalgo
separately. - Non-bounded parameter ranges has been supported. Updates
ParametricXXX
andBoundedXXX
. - Derive macros in
truck-derivers
are supported for cases with generics. - Implement
SearchNearestParameter
forProcessor
. - Expanded coverage of tessellation API.
- Enabled meshing when the boundary is not closed in the parameter space.
- Add tessellate test with ABC Dataset.
- Improve
put_together_each_attrs
.- Add an argument to
put_together_each_attrs
to specify the tolerance. - Transitive clustering instead of spatial partitioning by rounding
- Add an argument to
- Improve
Shell::face_adjacency
: Common edges are now also retrieved.
- Change the precision of floating point numbers when outputting STEP files.
- Updates
SearchNearestParameter
forRevolutedCurve
. - Fix a bug on partial
rsweep
with a negative angle. - Add a private function
spade_round
for fixing insert error.
- Replace
Mutex
andArc
more faster and compact mem. - Refactor and renew test for
truck_modeling::geom_impl
byproptest
. - Add tests for traits in
truck_modeling::topo_traits
. - Implementation for closed surface tessellation.
- Implelment
AsRef
,Borrow
, andExtend
forWire
andShell
.
- Changed some naming conventions to Rust standards.
- Make some struct naming canonical. ex: NURBSCurve -> NurbsCurve.
- Remove
get_
prefix fromVertex::get_point
,Edge::get_curve
, andFace::get_surface
.
- Put
truck_geometry::prelude
for resolve multiple re-export. - Tutorial for v0.6 series has been released.
- derive macros for geometric traits
truck-geoderive
- step output of open shell, worlds including several models, and
IntersectionCurve
- parallel iterators for topological structures
- direct tessellation of
CompressedShell
andCompressedSolid
- direct serialization for topological data structures.
- cubic B-spline approximation
builder::try_wire_homotopy
Solid::cut_face_by_edge
Face::edge_iter
andFace::vertex_iter
IntersectionCurve
betweenPlane
s can now be converted toLine
.Camera::ray
EntryMap
MeshableShape::triangulation
- the Euler operations
Face::cut_by_edge
- Refactoring
Search(Nearest)Parameter
.
- The orientation of the normal of
builder::try_attach_plane
. Shell::singular_vertices
- binary STL output of
PolygonMesh
- Data integrity check during deserialization of
KnotVec
,BSplineCurve
, and all structs constructed bytry_new
. - Improve meshing algorithm by parallelization.
- Intersection curve with B-spline leader.
- Implement some geometric traits for
TrimmedCurve
,UnitHyperbola
andUnitParabola
. - Use Line in modeling and simplify output shape of tsweep.
- Make
TextureFormat
of surfacesBrgaU8norm
. - Add an example with several boundaries.
- Updates
wgpu
tov0.14
- Updates
spade
tov2
. - Change the profile of
truck-js
and remove dependencies towee_alloc
.
- The first version of
truck-stepio
has been released! One can output shapes modeled bytruck-modeling
. - WGSL utility
math.wgsl
has been released! One can calculate invert matrices and rotation matrices. - The processing related to linear algebra has been isolated from
truck-base
tomatext4cgmath
. - New mesh filter
Subdivision::loop_subdivision
was implemented intruck-meshalgo
! - In
truck-geotrait
, the traitParametricCurve
is decomposed intoParametricCurve
andBoundedCurve
. - The method
swap_vertex
has been added toWireFrameInstance
. - Geometric traits has been derived to
Box
. - Some specified geometries has been added for STEP I/O
- Comparing
BoundingBox
by inclusion relationship. - In order to make meshing reproducible, we decided to implement random perturbations by means of a deterministic hash function.
- Some lints has been added.
- Specified surface for STEP I/O and modeling revolved sphere and cone.
- In
truck-base
, the traitSurface
is decomposed intoParametricSurface
,BoundedSurface
,IncludeCurve
andInvertible
. - In
truck-geometry
, specified surface,Plane
andSphere
, and some decorators are prepared.
- In
- STL handling module
stl
intruck-polymesh
. - In
truck-rendimpl
, wireframe for polygon.- Abort traits
Shape
andPolygon
, and add new traitsIntoInstance
andTryIntoInstance
.
- Abort traits
- Applied wgpu v0.11 and made all shaders WGSL, including shaders for test. Now, all dependence on cmake has been removed!
- The sample code
glsl-sandbox
becomeswgsl-sandbox
. You can easily experience WGSL shading.
- The sample code
- Split
truck-base::geom_trait
intotruck-geotrait
and added some algorithmsalgo
. Some methods in curves and surfaces were standardized. - Added a new crate
truck-meshalgo
. Moved the polygon processing algorithm from polymesh to meshalgo. - Added a new CAD meshing algorithm. Meshing trimmed surfaces. The same edge is made into the same polyline. A solid is made into a closed polygon.
- Added some meshing algorithms, including mesh collision.
ShapeInstance
has been removed. Tessellation should be done in advance bytruck-meshalgo
when drawing the modeled shape.BSplineCurve<Point3>
was made to beParametricCurve3D
. Conflicts related to methodssubs
have been resolved.- Added a new crate
truck-shapeops
, which provides solid boolean operator functions:and
andor
. - Added a new crate
truck-js
, which provides wasm bindings of CAD APIs. (not released to crates.io)
- a small behavior change:
NormalFilters::add_smooth_normals
. - fix a bug:
Splitting::into_components
. - an internal change:
RenderID::gen
.
- made
truck-polymesh
stable (well-tested and safety)- The member variables of
PolygonMesh
becomes private.- Destructive changes to the mesh are provided by
PolygonMeshEditor
, which checks the regularity of the mesh at dropped time.
- Destructive changes to the mesh are provided by
- Mesh handling algorithms are now a public API.
- The hidden structure
MeshHandler
was abolished and algorithms are managed as traits. - You can use them by importing
truck_polymesh::prelude::*
.
- The hidden structure
- The member variables of
- improved
truck-rendimpl
for higher performance and better usability- Wire frame rendering for shapes are now available.
- One can create
WireFrameInstance
byInstanceCreator::create_wire_frame_instance
. - Try to run
cargo run --example wireframe
.
- One can create
InstanceDescriptor
is separated intoPolygonInstanceDescriptor
andShapeInstanceDescriptor
.- One can specify the precision of meshing faces by
ShapeInstanceDescriptor::mesh_precision
. - The old
InstanceDescriptor
is renamed toInstanceState
. - The descriptor for wire frames is
WireFrameInstanceDescriptor
.
- One can specify the precision of meshing faces by
- added
InstanceCreator
for generating instances.InstanceCreator
has pre-compiled shader modules as member variables.CreateInstance
forScene
is abolished.InstanceCreator
is created byScene::instance_creator
.
- Face-wise rendering of shape is abolished.
- Now,
ShapeInstance
is oneRendered
struct. RenderFace
was abolished.
- Now,
- abolished implementations
Clone
for*Instance
. Use*Instance::clone_instance
. - The texture of
InstanceState
was changedwgpu::Texture
fromimage::DynamicImage
.
One can generateTexture
fromDynamicImage
byInstanceCreator::create_texture
.
- Wire frame rendering for shapes are now available.
- added inherit methods of
truck_geometry::NURBSSurface
fromBSplineSurface
. - added a feature
serde
tocgmath
attruck-base
.- remove the explicit dependency to
cgmath
fromtruck-polymesh
. - plans to add
nalgebra
as an alternative backend (unreleased in this version).
- remove the explicit dependency to
- abolished
truck_platform::RenderID::default
and addedRenderID::gen
. - added
Error
totruck_modeling
. - made
truck_topology::CompressedShell
public API and addedtruck_topology::CompressedSolid
.
- changed a behavior of
truck_topology::try_add_boundary
andtruck_topology::add_boundary
.- flip the boundary over when adding a boundary to a face with a flipped orientation
- renew the id of the face which was added boundary
- add a method:
truck_rendimpl::*Instance::clone_instance
Clone::clone for *Instance
is deprecated, and will be abolished in v0.2.
- fixed two bugs
truck_modeling::builder::homotopy
, the vertices were in the wrong order.truck_modeling::Mapped for Shell
, the orientation of surface was wrong.
- fixed a bug:
truck_modeling::builder::try_attach_plane
, the orientation of plane was incorrect.
- fixed a bug:
truck_modeling::builder::rsweep
, the boundary was incorrect.
- first version