All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Added implementation of
RhinoBrep.fillet()
andRhinoBrep.filleted()
tocompas_rhino
. - Added
Frame.invert
andFrame.inverted
. - Added
Frame.flip
andFrame.flipped
as alias for invert and inverted. - Added
Vector.flip
andVector.flipped
as alias for invert and inverted.
- Fixed
native_edge
property ofRhinoBrepEdge
. - Expose the parameters
radius
andnmax
fromcompas.topology._face_adjacency
tocompas.topology.face_adjacency
and further propagate them tounify_cycles
andMesh.unify_cycles
. - Modify
face_adjacency
to avoid usingcompas.topology._face_adjacency
by default when there are more than 100 faces, unless one of the parametersradius
,nmax
is passed. - Changed
unify_cycles
to use the first face in the list as root if no root is provided.
- Added attribute
start_vertex
tocompas.geometry.BrepTrim
. - Added attribute
end_vertex
tocompas.geometry.BrepTrim
. - Added attribute
vertices
tocompas.geometry.BrepTrim
. - Added attribute
start_vertex
tocompas_rhino.geometry.RhinoBrepTrim
. - Added attribute
start_vertex
tocompas_rhino.geometry.RhinoBrepTrim
. - Added attribute
vertices
tocompas_rhino.geometry.RhinoBrepTrim
.
- Fixed
PluginNotInstalledError
when usingBrep.from_boolean_*
in Rhino. - Added support for
Polyline
as input forcompas_rhino.Brep.from_extrusion
.
- Fixed bug in
compas_rhino.scene.RhinoMeshObject.clear()
.
- Added key conversion map to
compas.colors.ColorDict
to avoid serialisation problems with tuple keys when used in combination with edges. - Added
Scene.find_all_by_itemtype
.
- Fixed bug in
VolMesh.delete_cell
. - Fixed
NoneType
error when callingcompas.geometry.Sphere.edges
. - Fixed bug in
VolMesh.vertex_halffaces
. - Fixed bug in
VolMesh.vertex_cells
. - Fixed bug in
VolMesh.is_halfface_on_boundary
.
- Removed
VolMesh.halfface_adjacent_halfface
because of general nonsensicalness, and because it is (and probably always has been) completely broken.
- Added instructions for creating new data types to the dev guide.
- Added
compact=False
,minimal=False
tocompas.data.Data.to_json()
tocompas.data.Data.to_jsonstring()
. - Added
copy_guid=False
tocompas.data.Data.copy()
. If true, the copy has the same guid as the original. - Added implementation of
Brep.from_loft()
tocompas_rhino
.
- Fixed
RuntimeError
when usingcompas_rhino.unload_modules
in CPython`. - Fixed bug in
Box.scaled
causing aTypeError
due to incorrect parameter forwarding. - Changed argument names of
Box.scale()
tox
,y
,z
, instead offactor
and madey
andz
optional to keep positional arguments backwards compatible. - Fixed import errors in
compas_rhino.conduits
for Rhino 8. - Fixed doctest failures.
- Fixed bug in serialization when
compas.datastructures.attributes.AttributeView
is used. - Fixed bug in the serialisation of empty scenes.
- Fixed bug in serialisation process due to
name
attribute appearing in json representation after copy even if not present before copy.
- Fixed support for
compas_gpython
in Rhino 8 Grasshopper CPython components. - Changed installation instructions for Rhino 8 in the user guide.
- Fixed
Graph.from_edges
always returningNone
.
- Removed deprecated module
compas_ghpython.utilities
. For drawing functions, usecompas_ghpython.drawing
directly.
- Added
compas.scene.Scene.find_by_name
to find the first scene object with the given name. - Added
compas.scene.Scene.find_by_itemtype
to find the first scene object with a data item of the given type.
- Fixed args for
SceneObject
on GrasshopperDraw
component. - Replaced use of
Rhino.Geometry.VertexColors.SetColors
with a for loop andSetColor
incompas_ghpyton
since the former requires aSystem.Array
. - Fixed
Mesh.face_circle
.
- Changed supported Blender versions to latest LTS versions (3.3, 3.6, 4.2).
- Fixed bug in
compas_rhino.conversions.cone_to_compas
. - Fixed bug in
compas_rhino.conversions.cylinder_to_compas
. - Fixed bug in
compas_rhino.scene.RhinoMeshObject.draw_vertexnormals
(scale not used). - Fixed bug in
compas_rhino.scene.RhinoMeshObject.draw_facenormals
(scale not used). - Changed scene object registration to stop printing messages.
- Added
compas.scene.Scene.redraw
. - Added
compas.scene.Scene.context_objects
representing all objects drawn in the visualisation context by the scene. - Added
compas.scene.Scene.clear_context
with optionalguids
to clear some or all objects from the visualisation context. - Added
clear_scene
andclear_context
parameters tocompas.scene.Scene.clear
to differentiate between removing objects from the scene internally or removing corresponding objects from the viz context, or both (default). - Added
compas_rhino.conversions.extrusion_to_compas_box
as direct conversion of extrusion breps.
- Changed the
__str__
ofcompas.geometry.Frame
,compas.geometry.Plane
,compas.geometry.Polygon
,compas.geometry.Polyhedron
,compas.geometry.Quaternion
to use a limited number of decimals (determined byTolerance.PRECISION
). Note:__repr__
will instead maintain full precision. - Changed the
__str__
ofcompas.geometry.Pointcloud
to print total number of points instead of the long list of points. Note:__repr__
will still print all the points with full precision. - Fixed bug in
Pointcloud.from_box()
. - Changed
compas.scene.MeshObject
to not use vertex coordinate caching because it is too fragile. - Changed
compas_rhino.scene.RhinoMeshObject
to keep track of element-guid pairs in dicts. - Changed
compas.scene.Scene._guids
to a default value of[]
. - Fixed bug due to missing import in
compas_rhino.scene.graphobject
. - Changed
compas_rhino.scene.RhinoMeshObject.draw_vertexnormals
to use the same selection of vertices asdraw_vertices
. - Changed
compas_rhino.scene.RhinoMeshObject.draw_vertexnormals
to use the corresponding vertex color if no color is specified. - Changed
compas_rhino.scene.RhinoMeshObject.draw_facenormals
to use the same selection of vertices asdraw_faces
. - Changed
compas_rhino.scene.RhinoMeshObject.draw_facenormals
to use the corresponding face color if no color is specified.
- Added code coverage report uploads to codecov.io.
- Added
compas.geometry.surfaces.surface.Surface.from_native
. - Added
compas.geometry.surfaces.nurbs.NurbsSurface.from_plane
. - Added
compas.geometry.surfaces.nurbs.NurbsSurface.from_cylinder
. - Added
compas.geometry.surfaces.nurbs.NurbsSurface.from_extrusion
. - Added
compas.geometry.surfaces.nurbs.NurbsSurface.from_frame
. - Added
compas.geometry.surfaces.nurbs.NurbsSurface.from_interpolation
. - Added
compas.geometry.surfaces.nurbs.NurbsSurface.from_revolution
. - Added
compas.geometry.surfaces.nurbs.NurbsSurface.from_sphere
. - Added
compas.geometry.surfaces.nurbs.NurbsSurface.from_torus
. - Added
compas_rhino.geometry.surfaces.surface_from_native
. - Added
compas_rhino.geometry.surfaces.nurbssurface_from_native
. - Added
compas_rhino.geometry.surfaces.nurbssurface_from_cylinder
. - Added
compas_rhino.geometry.surfaces.nurbssurface_from_fill
. - Added
compas_rhino.geometry.surfaces.nurbssurface_from_torus
. - Added
compas_rhino.geometry.surfaces.nurbs.NurbsSurface.from_corners
. - Added
compas_rhino.geometry.surfaces.nurbs.NurbsSurface.from_cylinder
. - Added
compas_rhino.geometry.surfaces.nurbs.NurbsSurface.from_frame
. - Added
compas_rhino.geometry.surfaces.nurbs.NurbsSurface.from_sphere
. - Added
compas_rhino.geometry.surfaces.nurbs.NurbsSurface.from_torus
. - Added
compas.geometry.curves.curve.Curve.from_native
. - Added
compas_rhino.geometry.curves.curve.Curve.from_native
. - Added
compas_rhino.geometry.curves.nurbs.NurbsCurve.from_native
. - Added
compas_rhino.conversions.breps.brep_to_compas_mesh
. - Added
compas_rhino.conversions.docobjects.brepobject_to_compas
. - Added
compas_rhino.conversions.docobjects.curveobject_to_compas
. - Added
compas_rhino.conversions.docobjects.meshobject_to_compas
. - Added
compas_rhino.conversions.docobjects.pointobject_to_compas
. - Added
compas.datastructures.HashTree
andcompas.datastructures.HashNode
.
- Fixed bug in
compas.geometry.curves.curve.Curve.reversed
by adding missing parenthesis. - Fixed all doctests so we can run
invoke test --doctest
. - Changed
compas.geometry.surfaces.surface.Surface.__new__
to prevent instantiation ofSurface
directly. - Changed
compas.geometry.surfaces.nurbs.NurbsSurface.__new__
to prevent instantiation ofNurbsSurface
directly. - Fixed bug in
compas.geometry.surfaces.nurbs.NurbsSurface.__data__
. - Changed
compas.geometry.surfaces.nurbs.new_nurbssurface_from_...
tonurbssurface_from_...
. - Changed
compas.geometry.curves.curve.Curve.__new__
to prevent instantiation ofCurve
directly. - Changed
compas.geometry.curves.nurbs.new_nurbscurve_from_...
tonurbscurve_from_...
. - Changed
compas.geometry.curves.nurbs.NurbsCurve.__new__
to prevent instantiation ofNurbsCurve
directly. - Changed
compas_rhino.geometry.curves.new_nurbscurve_from_...
tonurbscurve_from_...
. - Fixed
compas_ghpython
Grasshopper components not included in published pakcage. - Changed
compas.colors.Color.coerce
to take color as is, if it is already an instance ofcompas.colors.Color
. - Changed
compas_rhino.conversions.surfaces.surface_to_compas
to work only with surface geometry. - Changed
compas_rhino.conversions.curves.curve_to_compas_line
to work only with geometry. - Changed
compas_rhino.conversions.curves.curve_to_compas_circle
to work only with geometry. - Changed
compas_rhino.conversions.curves.curve_to_compas_ellipse
to work only with geometry. - Changed
compas_rhino.conversions.curves.curve_to_compas_polyline
to work only with geometry. - Changed
compas_rhino.objects.get_point_coordinates
to deprecated (removed in v2.3). - Changed
compas_rhino.objects.get_line_coordinates
to deprecated (removed in v2.3). - Changed
compas_rhino.objects.get_polyline_coordinates
to deprecated (removed in v2.3). - Changed
compas_rhino.objects.get_polygon_coordinates
to deprecated (removed in v2.3). - Fixed a bug in
worldtransformation
ofcompas.scene.SceneObject
to include the object's own frame.
- Removed pluggable
compas.geometry.surfaces.surface.new_surface
. - Removed pluggable
compas.geometry.surfaces.surface.new_surface_from_plane
. - Removed
compas.geometry.surfaces.surface.Surface.from_plane
. - Removed
compas.geometry.surfaces.surface.ConicalSurface.__new__
. - Removed
compas.geometry.surfaces.surface.CylindricalSurface.__new__
. - Removed
compas.geometry.surfaces.surface.PlanarSurface.__new__
. - Removed
compas.geometry.surfaces.surface.SphericalSurface.__new__
. - Removed
compas.geometry.surfaces.surface.ToroidalSurface.__new__
. - Removed
compas.geometry.surfaces.nurbs.NurbsSurface.__init__
. - Removed
compas_rhino.geometry.surfaces.new_surface
. - Removed
compas_rhino.geometry.surfaces.new_nurbssurface
. - Removed
compas_rhino.geometry.surfaces.nurbs.NurbsSurface.__from_data__
. - Removed
compas_rhino.geometry.surfaces.surface.Surface.from_corners
. - Removed
compas_rhino.geometry.surfaces.surface.Surface.from_cylinder
. - Removed
compas_rhino.geometry.surfaces.surface.Surface.from_frame
. - Removed
compas_rhino.geometry.surfaces.surface.Surface.from_sphere
. - Removed
compas_rhino.geometry.surfaces.surface.Surface.from_torus
. - Removed
compas.geometry.curves.arc.Arc.__new__
. - Removed
compas.geometry.curves.bezier.Bezier.__new__
. - Removed
compas.geometry.curves.conic.Conic.__new__
. - Removed
compas.geometry.curves.polyline.Polyline.__new__
. - Removed
compas.geometry.curves.curve.new_curve
. - Removed
compas.geometry.curves.curve.new_nurbscurve
. - Removed
compas_rhino.geometry.curves.new_curve
. - Removed
compas_rhino.geometry.curves.new_nurbscurve
. - Removed
compas_rhino.conversions.surfaces.data_to_rhino_surface
. - Removed
compas_rhino.conversions.surfaces.surface_to_compas_data
. - Removed
compas_rhino.conversions.surfaces.surface_to_compas_quadmesh
. - Removed
compas_rhino.conversions.curves.curve_to_compas_data
.
- Fixed error in
compas_ghpython
causingScene
to fail in Grasshopper.
- Added
maxiter
parameter tocompas.geometry.icp_numpy
. - Added
resolution_u
andresolution_v
tocompas.geometry.Shape
to control discretisation resolution. - Added
vertices
,edges
,faces
,triangles
tocompas.geometry.Shape
. - Added
points
,lines
,polygons
tocompas.geometry.Shape
. - Added abstract
compute_vertices
,compute_edges
,compute_faces
,compute_triangles
tocompas.geometry.Shape
. - Added implementation of
compute_vertices
,compute_edges
,compute_faces
tocompas.geometry.Box
. - Added implementation of
compute_vertices
,compute_edges
,compute_faces
tocompas.geometry.Capsule
. - Added implementation of
compute_vertices
,compute_edges
,compute_faces
tocompas.geometry.Cone
. - Added implementation of
compute_vertices
,compute_edges
,compute_faces
tocompas.geometry.Cylinder
. - Added implementation of
compute_vertices
,compute_edges
,compute_faces
tocompas.geometry.Sphere
. - Added implementation of
compute_vertices
,compute_edges
,compute_faces
tocompas.geometry.Torus
. - Added
compas_blender.scene.ShapeObject
. - Added
compas.geometry.vector.__radd__
. - Added
compas.geometry.vector.__rsub__
. - Added
compas.geometry.vector.__rmul__
. - Added
compas.geometry.vector.__rtruediv__
. - Added
VolMesh.cell_lines
,VolMesh.cell_polygons
. - Added
VolMesh.vertex_edges
. - Added
VolMesh.from_meshes
. - Added
VolMesh.from_polyhedrons
.
- Changed
compas_ghpython/utilities/drawing.py
to removeSystem
dependency. - Fixed bug in
compas.geometry.ic_numpy
, which was caused by returning only the last transformation of the iteration process. - Changed
compas.geometry.Geometry.scaled
to usecompas.geometry.Geometry.scale
on a copy. - Changed
compas.geometry.Geometry.translated
to usecompas.geometry.Geometry.translate
on a copy. - Changed
compas.geometry.Geometry.rotated
to usecompas.geometry.Geometry.rotate
on a copy. - Changed
VolMesh._plane
back to point to a cell for every triplet of vertices. - Fixed
VolMesh.add_halfface
,VolMesh.add_cell
,VolMesh.vertex_halffaces
,VolMesh.vertex_cells
,VolMesh.edge_halffaces
,VolMesh.halfface_cell
,VolMesh.halfface_opposite_cell
,VolMesh.halfface_opposite_halfface
,VolMesh.cell_neighbors
. - Changed ordering of
Volmesh.edges()
to be deterministic. - Changed ordering and direction of
Volmesh.vertex_edges()
to be deterministic. - Changed check for empty vertices and faces to use
is None
to add support fornumpy
arrays. - Changed order of
u
andv
ofcompas.geometry.SphericalSurface
to the match the excpected parametrisation. - Changed
compas.geometry.Shape.to_vertices_and_faces
to useShape.vertices
andShape.faces
orShape.triangles
. - Changed default of
compas.scene.descriptors.color.ColorAttribute
toNone
to support native coloring in CAD contexts. - Changed
compas.colors.ColorDict.__data__
andcompas.colors.ColorDict.__from_data__
to properly support serialisation. - Moved
compas_blender.utilities.drawing
tocompas_blender.drawing
with backward compatible imports and deprecation warning. - Moved
compas_ghpython.utilities.drawing
tocompas_ghpython.drawing
with backward compatible imports and deprecation warning. - Moved
compas_rhino.utilities.drawing
tocompas_rhino.drawing
with backward compatible imports and deprecation warning. - Changed
draw_nodes
anddraw_edges
ofcompas_blender.scene.GraphObject
,compas_ghpython.scene.GraphObject
, andcompas_rhino.scene.GraphObject
to use only attributes instead of parameters. - Changed
draw_vertices
,draw_edges
anddraw_faces
ofcompas_blender.scene.MeshObject
,compas_ghpython.scene.MeshObject
, andcompas_rhino.scene.MeshObject
to use only attributes instead of parameters. - Changed
draw_vertices
,draw_edges
anddraw_faces
ofcompas_blender.scene.VolMeshObject
,compas_ghpython.scene.VolMeshObject
, andcompas_rhino.scene.VolMeshObject
to use only attributes instead of parameters. - Changed registration of
Capsule
,Cone
,Cylinder
,Sphere
,Torus
toShapeObject
incompas_blender.scene
. - Updated
compas.geometry.vector.__mul__
to allow element-wise multiplication with another vector. - Updated
compas.geometry.vector.__truediv__
to allow element-wise division with another vector. - Fixed bug in registration
shapely
boolean plugins. - Temporarily restrict
numpy
to versions lower than2.x
.
- Removed
System
dependency incompas_ghpython/utilities/drawing.py
. - Removed GH plugin for
compas.scene.clear
since it clashed with the Rhino version.
- Added
compas.geometry.Line.point_from_start
andcompas.geometry.Line.point_from_end
. - Added
compas.geometry.Line.flip
andcompas.geometry.Line.flipped
. - Added an
compas.geometry.Frame.interpolate_frame(s)
method - Added
compas.colors.Color.contrast
. - Added
compas.geometry.Brep.from_plane
. - Added
compas.tolerance.Tolerance.angulardeflection
. - Added
compas.tolerance.Tolerance.update_from_dict
. - Added
compas.scene.SceneObject.scene
attribute. - Added
compas.datastructures.CellNetwork.is_faces_closed
- Added
compas.datastructures.CellNetwork.delete_edge
- Added
compas.datastructures.CellNetwork.delete_cell
- Added
compas.datastructures.CellNetwork.delete_face
- Added
compas.datastructures.CellNetwork.cells_to_graph
- Added
compas.datastructures.CellNetwork.face_plane
- Added
compas.datastructures.CellNetwork.cell_volume
- Added
compas.datastructures.CellNetwork.cell_neighbors
- Changed and update the
compas_view2
examples intocompas_viewer
. - Changed and updated the
compas_view2
examples intocompas_viewer
. - Changed
compas.scene.Scene
to inherent fromcompas.datastructrues.Tree
. - Changed
compas.scene.SceneObject
to inherent fromcompas.datastructrues.TreeNode
. - Changed
compas.geoemetry._core.predicates_3
bug fix inis_coplanar
while loop when there are 4 points. - Changed to implementation of
Mesh.unify_cycles
to use the corresponding function ofcompas.topology.orientation
. - Fixed bug in
compas.topology.orientation.unify_cycles
. - Fixed bug in
Mesh.thickened
. - Fixed various bugs in
compas.geometry.Quaternion
. - Changed repo config to
pyproject.toml
. - Fixed broken import in
copas.geometry.trimesh_smoothing_numpy
. - Changed
RhinoBrep.trimmed
to return single result or raiseBrepTrimmingError
instead of returning a list. - Changed order of imports according to
isort
and changed line length to179
. - Changed use of
compas.geometry.allclose
tocompas.tolerance.TOL.is_allclose
. - Changed use of
compas.geometry.close
tocompas.tolerance.TOL.is_close
. - Changed imports of itertools to
compas.itertools
instead ofcompas.utilities
. - Changed
compas.tolerance.Tolerance
to a singleton, to ensure having only library-wide tolerance values. - Updated
compas_rhino.conversions.point_to_compas
to allow forRhino.Geometry.Point
as input. - Changed
compas.datastructures.Tree.print_hierarchy
tocompas.datastructures.Tree.__str__
. - Changed
compas.scene.SceneObject.__init__
to acceptitem
as kwarg. - Fixed
compas.geometry.bbox_numpy.minimum_volume_box
to avoidnumpy.linalg.LinAlgError
.
- Removed
compas.scene.SceneObjectNode
, functionalities merged intocompas.scene.SceneObject
. - Removed
compas.scene.SceneTree
, functionalities merged intocompas.scene.Scene
. - Removed default implementation of
compas.geometry.trimesh_geodistance
since nonexistent. - Removed
compas.utilities.geometric_key
and replaced it bycompas.tolerance.TOL.geometric_key
. - Removed
compas.utilities.geometric_key_xy
and replaced it bycompas.tolerance.TOL.geometric_key_xy
. - Removed indexed attribute access from all geometry classes except
Point
,Vector
,Line
,Polygon
,Polyline
. - Removed
compas.datastructures.Tree.print_hierarchy
.
- Added optional argument
cap_ends
toBrep.from_extrusion()
. - Added implementation in
RhinoBrep.from_extrusion()
. - Added
max_depth
tocompas.datastructures.Tree.print_hierarchy()
. - Added
compas.datastructures.Tree.to_graph()
.
- Changed
compas.datastructures.TreeNode
to skip serialisingattributes
,name
andchildren
if being empty. - Changed
compas.datastructures.TreeNode.__repr__
to omitname
ifNone
. - Fix bug in
compas_rhino.geometry.NurbsCurve.from_parameters
andcompas_rhino.geometry.NurbsCurve.from_points
related to the value of the parameterdegree
. - Changed
compas.scene.descriptors.ColorDictAttribute
to accept acompas.colors.ColorDict
as value. - Changed
compas_rhino.scene.RhinoMeshObject.draw
to preprocess vertex and face color dicts into lists. - Changed
compas_rhino.conversions.vertices_and_faces_to_rhino
to handle vertex color information correctly. - Changed
compas_rhino.conversions.average_color
return typecompas.colors.Color
instead of tuple.
- Fixed bug in
compas_rhino.scene
.
- Added
compas.linalg
. - Added
compas.matrices
. - Added
compas.itertools
. - Added
compas_rhino.scene.helpers
. - Added
compas.scene.SceneObject.contrastcolor
.
- Fixed bug in
compas.geometry.oriented_bounding_box_numpy
to support points in plane. - Changed
compas_rhino.scene.RhinoSceneObject
to pass on positional arguments. - Changed
compas_rhino.scene.RhinoBoxObject.draw
to use attributes only. - Changed
compas_rhino.scene.RhinoBrepObject.draw
to use attributes only. - Changed
compas_rhino.scene.RhinoCapsuleObject.draw
to use attributes only. - Changed
compas_rhino.scene.RhinoCircleObject.draw
to use attributes only. - Changed
compas_rhino.scene.RhinoConeObject.draw
to use attributes only. - Changed
compas_rhino.scene.RhinoCurveObject.draw
to use attributes only. - Changed
compas_rhino.scene.RhinoCylinderObject.draw
to use attributes only. - Changed
compas_rhino.scene.RhinoEllipseObject.draw
to use attributes only. - Changed
compas_rhino.scene.RhinoFrameObject.draw
to use attributes only. - Changed
compas_rhino.scene.RhinoGraphObject.draw
to use attributes only. - Changed
compas_rhino.scene.RhinoLineObject.draw
to use attributes only. - Changed
compas_rhino.scene.RhinoMeshObject.draw
to use attributes only. - Changed
compas_rhino.scene.RhinoPlaneObject.draw
to use attributes only. - Changed
compas_rhino.scene.RhinoPointObject.draw
to use attributes only. - Changed
compas_rhino.scene.RhinoPolygonObject.draw
to use attributes only. - Changed
compas_rhino.scene.RhinoPolyhedronObject.draw
to use attributes only. - Changed
compas_rhino.scene.RhinoPolylineObject.draw
to use attributes only. - Changed
compas_rhino.scene.RhinoSphereObject.draw
to use attributes only. - Changed
compas_rhino.scene.RhinoSurfaceObject.draw
to use attributes only. - Changed
compas_rhino.scene.RhinoTorusObject.draw
to use attributes only. - Changed
compas_rhino.scene.RhinoVectorObject.draw
to use attributes only. - Changed
compas_rhino.scene.RhinoVolMeshObject.draw
to use attributes only.
- Removed
compas.geometry.linalg
. - Removed
compas.topology.matrices
. - Removed
compas.utilities.itertools
.
- Added Blender paths for Windows.
- Added
compas_rhino.print_python_path
. - Added
compas_blender.print_python_path
.
- Fixed bug in
compas.tolerange.Tolerance.format_number()
related to IronPython environment.
- Added pluggable
compas.geometry.surfaces.nurbs.new_nurbssurface_from_native
. - Added
compas.geometry.NurbsSurface.from_native
. - Added plugin
compas_rhino.geometry.surfaces.new_nurbssurface_from_plane
.
- Fixed bug in
compas_blender.clear
. - Fixed bug in
compas_rhino.conversions.surface_to_compas
. - Fixed bug in
compas_rhino.conversions.surface_to_compas_mesh
. - Fixed bug in
compas_rhino.conversions.surface_to_compas_quadmesh
. - Fixed bug in plugin
compas_rhino.geometry.curves.new_nurbscurve_from_native
. - Fixed bug in plugin
compas_rhino.geometry.surfaces.new_nurbssurface_from_native
.
- Removed plugin
compas_rhino.geometry.surfaces.new_surface_from_plane
.
- Added
group
attribute tocompas_rhino.scene.RhinoSceneObject
. - Added
_guid_mesh
,_guids_vertices
,_guids_edges
,_guids_faces
,_guids_vertexlabels
,_guids_edgelables
,_guids_facelabels
,_guids_vertexnormals
,_guids_facenormals
,_guids_spheres
,_guids_pipes
,disjoint
attributes tocompas_rhino.scene.MeshObject
. - Added
_guids_nodes
,_guids_edges
,_guids_nodelabels
,_guids_edgelables
,_guids_spheres
,_guids_pipes
attributes tocompas_rhino.scene.GraphObject
. - Added
_guids_vertices
,_guids_edges
,_guids_faces
,_guids_cells
,_guids_vertexlabels
,_guids_edgelables
,_guids_facelabels
,_guids_celllabels
,disjoint
attributes tocompas_rhino.scene.MeshObject
. - Added test for
compas.scene.Scene
serialisation.
- Changed
compas.scene.Mesh
'sshow_vertices
,show_edges
,show_faces
to optionally accept a sequence of keys. - Changed
compas.scene.Graph
'sshow_nodes
,show_edges
to optionally accept a sequence of keys. - Changed
compas.scene.VolMesh
'sshow_vertices
,show_edges
,show_faces
,show_cells
to optionally accept a sequence of keys. - Fixed missing implementation of
Sphere.base
. - Fixed bug in
intersection_sphere_sphere
.
- Removed kwargs from
compas_rhino.scene.MeshObject.draw
. - Removed kwargs from
compas_rhino.scene.GraphObject.draw
. - Removed kwargs from
compas_rhino.scene.VolMeshObject.draw
.
- Added
compas_rhino.objects
. - Added
compas_rhino.layers
. - Added
compas_rhino.install_with_pip
. - Added
before_draw
pluggable tocompas.scene.Scene.draw
. - Added
after_draw
pluggable tocompas.scene.Scene.draw
. - Added description in tutorial about
compas.scene.context
. - Added
compas_blender.data
. - Added
compas_blender.collections
. - Added
compas_blender.objects
. - Added
compas_rhino.ui
. - Added
compas_rhino.unload_modules
. - Added
compas_ghpython.unload_modules
. - Added
compas_ghpython.sets
. - Added
compas_ghpython.timer
. - Added
scale
andscaled
tocompas.datastructures.Datastructure
. - Added
rotate
androtated
tocompas.datastructures.Datastructure
. - Added
translate
andtranslated
tocompas.datastructures.Datastructure
.
- Changed
compas.tolerance.Tolerance
into singleton. - Changed
compas_rhino.geometry.curves.nursb.RhinoNurbsCurve
to use private data API. - Changed
compas_rhino.geometry.surfaces.nursb.RhinoNurbsSurface
to use private data API. - Changed
compas.scene.Scene.redraw
todraw
. - Fixed
register_scene_objects
not called when there is a context given in kwargs ofSceneObject
.
- Removed
compas_blender.geometry.curves
. - Removed
compas_rhino.utilities.objects
. - Removed
compas_rhino.utilities.layers
. - Removed
compas_rhino.utilities.constructors
. - Removed
compas_rhino.utilities.document
. - Removed
compas_rhino.utilities.geometry
. - Removed
compas_rhino.utilities.misc
. - Removed
compas_blender.utilities.data
. - Removed
compas_blender.utilities.collections
. - Removed
compas_blender.utilities.objects
. - Removed
compas_ghpython.utilities.sets
. - Removed
compas_ghpython.utilities.timer
.
- Added
compas.dtastructures.Network
as alias ofcompas.datastructures.Graph
. - Added
compas.data.Data.name
and included it in serialisation in casecompas.data.Data._name is not None
.
- Merged
compas.datastructures.Halfedge
intocompas.datastructures.Mesh
. - Merged
compas.datastructures.Network
intocompas.datastructures.Graph
. - Merged
compas.datastructures.Halfface
intocompas.datastructures.VolMesh
. - Fixed
RhinoBrep
doesn't get capped after trimming. - Changed
compas.data.Data.data
tocompas.data.Data.__data__
. - Changed
compas.data.Data.dtype
tocompas.data.Data.__dtype__
. - Changed
compas.data.Data.from_data
tocompas.data.Data.__from_data__
. - Changed
compas.geometry.triangulation_earclip
face vertex index reversion when the polygon is flipped.
- Removed
compas.datastructures.Network
. - Removed
compas.datastructures.Halfedge
. - Removed
compas.datastructures.Halfface
. - Removed
compas.data.Data.attributes
. - Removed
compas.data.Datastructure.attributes
. - Removed
attributes
fromcompas.datastructures.Assembly.data
. - Removed
attributes
fromcompas.datastructures.CellNetwork.data
. - Removed
attributes
fromcompas.datastructures.Graph.data
. - Removed
attributes
fromcompas.datastructures.Mesh.data
. - Removed
attributes
fromcompas.datastructures.Tree.data
. - Removed
attributes
fromcompas.datastructures.VolMesh.data
. - Removed
compas.data.Data.to_data
. - Removed
compas.rpc.XFunc
.
- Added
viewerinstance
incompas.scene.Scene
to support viewers context detection. - Added
compas_rhino8
as starting point for Rhino8 support. - Added
compas.scene.SceneObjectNode
. - Added
compas.scene.SceneTree
. - Added
compas.scene.SceneObject.node
. - Added
compas.scene.SceneObject.frame
. - Added
compas.scene.SceneObject.worldtransformation
. - Added
compas.scene.SceneObject.parent
. - Added
compas.scene.SceneObject.children
. - Added
compas.scene.SceneObject.add()
. - Added tutorial for
compas.datastructures.Tree
. - Added Serialisation capability to
compas.scene.Scene
. - Added
show
flag tocompas.scene.SceneObject
. - Added
show_points
flag tocompas.scene.GeometryObject
. - Added
show_lines
flag tocompas.scene.GeometryObject
. - Added
show_surfaces
flag tocompas.scene.GeometryObject
. - Added
show_vertices
flag tocompas.scene.MeshObject
. - Added
show_edges
flag tocompas.scene.MeshObject
. - Added
show_faces
flag tocompas.scene.MeshObject
. - Added
show_nodes
flag tocompas.scene.NetworkObject
. - Added
show_edges
flag tocompas.scene.NetworkObject
. - Added
show_vertices
flag tocompas.scene.VolMeshObject
. - Added
show_edges
flag tocompas.scene.VolMeshObject
. - Added
show_faces
flag tocompas.scene.VolMeshObject
. - Added
show_cells
flag tocompas.scene.VolMeshObject
. - Added
compas.data.Data.to_jsonstring
andcompas.data.Data.from_jsonstring
. - Added
compas.data.Data.attributes
. - Added optional param
working_directory
tocompas.rpc.Proxy
to be able to start services defined in random locations. - Added
compas.datastructures.Datastructure.transform
andcompas.datastructures.Datastructure.transformed
. - Added
compas.datastructures.Datastructure.transform_numpy
andcompas.datastructures.Datastructure.transformed_numpy
. - Added
compas.datastructures.Halfedge.flip_cycles
. - Added
compas.datastructures.Halfedge.is_connected
,compas.datastructures.Halfedge.connected_vertices
,compas.datastructures.Halfedge.connected_faces
. - Added
compas.datastructures.Mesh.join
. - Added
compas.datastructures.Mesh.weld
andcompas.datastructures.Mesh.remove_duplicate_vertices
. - Added
compas.datastructures.Mesh.quads_to_triangles
. - Added
compas.datastructures.Mesh.unify_cycles
. - Added
compas.datastructures.Mesh.aabb
andcompas.datastructures.Mesh.obb
. - Added
compas.datastructures.Mesh.offset
andcompas.datastructures.Mesh.thickened
. - Added
compas.datastructures.Mesh.exploded
. - Added
compas.datastructures.Mesh.adjacency_matrix
,compas.datastructures.Mesh.connectivity_matrix
,compas.datastructures.Mesh.degree_matrix
,compas.datastructures.Mesh.laplacian_matrix
. - Added
compas.topology.vertex_adjacency_from_edges
,compas.topology.vertex_adjacency_from_faces
,compas.topology.edges_from_faces
,compas.topology.faces_from_edges
. - Added
compas.datastructures.Network.split_edge
,compas.datastructures.Network.join_edges
. - Added
compas.datastructures.Network.smooth
. - Added
compas.datastructures.Network.is_crossed
,compas.datastructures.Network.is_xy
,compas.datastructures.Network.is_planar
,compas.datastructures.Network.is_planar_embedding
,compas.datastructures.Network.count_crossings
,compas.datastructures.Network.find_crossings
,compas.datastructures.Network.embed_in_plane
. - Added
compas.datastructures.Network.find_cycles
. - Added
compas.datastructures.Network.shortest_path
. - Added
compas.datastructures.Network.transform
. - Added
compas.datastructures.Graph.is_connected
. - Added
compas.datastructures.Graph.adjacency_matrix
,compas.datastructures.Graph.connectivity_matrix
,compas.datastructures.Graph.degree_matrix
,compas.datastructures.Graph.laplacian_matrix
.
- Changed the
__str__
ofcompas.geometry.Point
andcompas.geometry.Vector
to use a limited number of decimals (determined byTolerance.PRECISION
). Note:__repr__
will instead maintain full precision. - Changed
docs
Workflow to only be triggered on review approval in pull requests. - Changed
draw
implementations ofcompas.scene.SceneObject
to always use theworldtransformation
of theSceneObject
. - Fixed typo in name
Rhino.Geometry.MeshingParameters
incompas_rhino.geometry.RhinoBrep.to_meshes()
. - Fixed
TypeErrorException
when serializing aMesh
which has been converted from Rhino. - Fixed color conversions in
compas_rhion.conversions.mesh_to_compas
. - Changed
SceneObject
registration to allow forNone
context. - Changed
compas.data.Data.name
to be stored incompas.data.Data.attributes
. - Changed
compas.data.Data.__jsondump__
to includecompas.data.Data.attributes
if the dict is not empty. - Changed
compas.data.Data.__jsonload__
to updatecompas.data.Data.attributes
if the attribute dict is provided. - Changed
compas.datastructures.Graph
to take additional**kwargs
, instead of onlyname=None
specifically. - Changed
compas.datastructures.Network
to take additional**kwargs
, instead of onlyname=None
specifically. - Changed
compas.datastructures.Halfedge
to take additional**kwargs
, instead of onlyname=None
specifically. - Changed
compas.datastructures.Mesh
to take additional**kwargs
, instead of onlyname=None
specifically. - Moved registration of
ping
andremote_shutdown
of the RPC server tocompas.rpc.Server.__init__()
. - Moved
FileWatcherService
tocompas.rpc.services.watcher
so it can be reused. - Changed
compas.datastructures.Mesh.subdivide
tocompas.datastructures.Mesh.subdivided
. - Moved
compas.numerical.pca_numpy
tocompas.geometry.pca_numpy
. - Moved
compas.numerical.scalafield_contours
tocompas.geometry.scalarfield_contours
. - Moved
compas.numerical.matrices
tocompas.topology.matrices
. - Moved
compas.numerical.linalg
tocompas.geometry.linalg
. - Changed
watchdog
dependency to be only required for platforms other thanemscripten
. - Changed
compas.geometry.earclip_polygon
algorithm because the current one does not handle several cases.
- Removed
compas_rhino.forms
. Forms will be moved tocompas_ui
. - Removed
compas.scene.NoSceneObjectContextError
. - Removed
compas.datastructures.Datastructure.attributes
andcompas.datastructures.Datastructure.name
(moved tocompas.data.Data
). - Removed
attributes
fromcompas.datastructures.Graph.data
. - Removed
attributes
fromcompas.datastructures.Network.data
. - Removed
attributes
fromcompas.datastructures.Halfedge.data
. - Removed
attributes
fromcompas.datastructures.Mesh.data
. - Removed
compas.datastructures.mesh_bounding_box
andcompas.datastructures.mesh_bounding_box_xy
. - Removed
compas.datastructures.mesh_oriented_bounding_box_numpy
andcompas.datastructures.mesh_oriented_bounding_box_xy_numpy
. - Removed
compas.datastructures.mesh_delete_duplicate_vertices
. - Removed
compas.datastructures.mesh_is_connected
andcompas.datastructures.mesh_connected_components
. - Removed
compas.datastructures.mesh_isolines_numpy
andcompas.datastructures.mesh_contours_numpy
. - Removed
compas.datastructures.trimesh_gaussian_curvature
. - Removed
compas.datastructures.trimesh_descent
. - Removed
compas.datastructures.mesh_disconnected_vertices
,compas.datastructures.mesh_disconnected_faces
andcompas.datastructures.mesh_explode
. - Removed
compas.datastructures.mesh_geodesic_distances_numpy
. - Removed
compas.datastructures.trimesh_face_circle
. - Removed
compas.datastructures.mesh_weld
,compas.datastructures.meshes_join
,compas.datastructures.meshes_join_and_weld
. - Removed
compas.datastructures.mesh_offset
andcompas.datastructures.mesh_thicken
. - Removed
compas.datastructures.mesh_face_adjacency
andcompas.datastructures.mesh_unify_cycles
. - Removed
compas.datastructures.mesh_transform
,compas.datastructures.mesh_transformed
,compas.datastructures.mesh_transform_numpy
,compas.datastructures.mesh_transformed_numpy
. - Removed
compas.datastructures.mesh_quads_to_triangles
. - Removed
compas.datastructures.volmesh_bounding_box
. - Removed
compas.datastructures.volmesh_transform
andcompas.datastructures.volmesh_transformed
. - Removed
compas.topology.unify_cycles_numpy
andcompas.topology.face_adjacency_numpy
. - Removed
compas.topology.unify_cycles_rhino
andcompas.topology.face_adjacency_rhino
. - Removed
compas.datastructures.network_is_connected
. - Removed
compas.datastructures.network_complement
. - Removed
compas.datastructures.network_disconnected_nodes
,compas.datastructures.network_disconnected_edges
,compas.datastructures.network_explode
. - Removed
compas.datastructures.network_adjacency_matrix
,compas.datastructures.network_connectivity_matrix
,compas.datastructures.network_degree_matrix
,compas.datastructures.network_laplacian_matrix
. - Removed
compas.datastructures.network_transform
,compas.datastructures.network_transformed
. - Removed
compas.datastructures.network_shortest_path
. - Removed
compas.numerical
.
- Added
compas.geometry.Box.to_brep()
. - Added
compas.geometry.Cone.to_brep()
. - Added
compas.geometry.Cylinder.to_brep()
. - Added
compas.geometry.Sphere.to_brep()
. - Added
compas.geometry.Torus.to_brep()
. - Added
compas.brep.Brep.from_iges()
. - Added
compas.brep.Brep.to_iges()
. - Added
compas.tolerance
. - Added
compas.tolerance.Tolerance
. - Added
compas.tolerance.Tolerance.ABSOLUTE
andcompas.tolerance.Tolerance.absolute
. - Added
compas.tolerance.Tolerance.RELATIVE
andcompas.tolerance.Tolerance.relative
. - Added
compas.tolerance.Tolerance.ANGULAR
andcompas.tolerance.Tolerance.angular
. - Added
compas.tolerance.Tolerance.APPROXIMATION
andcompas.tolerance.Tolerance.approximation
. - Added
compas.tolerance.Tolerance.PRECISION
andcompas.tolerance.Tolerance.precision
. - Added
compas.tolerance.Tolerance.LINEARDEFLECTION
andcompas.tolerance.Tolerance.lineardeflection
. - Added
compas.tolerance.Tolerance.is_zero
. - Added
compas.tolerance.Tolerance.is_positive
. - Added
compas.tolerance.Tolerance.is_negative
. - Added
compas.tolerance.Tolerance.is_between
. - Added
compas.tolerance.Tolerance.is_angle_zero
. - Added
compas.tolerance.Tolerance.is_close
. - Added
compas.tolerance.Tolerance.is_allclose
. - Added
compas.tolerance.Tolerance.is_angles_close
. - Added
compas.tolerance.Tolerance.geometric_key
. - Added
compas.tolerance.Tolerance.format_number
. - Added
compas.tolerance.Tolerance.precision_from_tolerance
. - Added
compas.scene.Scene
. - Added
compas.json_loadz()
andcompas.json_dumpz()
to support ZIP compressed JSON files. - Added
compas.datastructures.assembly.delete_part()
. - Added
compas.datastructures.assembly.delete_connection()
. - Added
compas.geometry.Brep.from_breps()
. - Added
compas.geometry.Brep.from_planes()
. - Added
compas.geometry.Brep.to_iges()
. - Added
compas.geometry.Brep.to_meshes()
. - Added
compas.geometry.Brep.to_polygons()
. - Added
compas.geometry.Brep.to_stl()
. - Added
compas.geometry.Brep.heal()
. - Added
compas.geometry.Brep.edge_faces()
. - Added
compas.geometry.Brep.edge_loop()
. - Added
compas.geometry.Brep.fillet()
. - Added
compas.geometry.Brep.filleted()
. - Added
compas.geometry.BrepFilletError
. - Added
compas.geometry.Brep.is_shell
. - Added
compas.geometry.Brep.contains()
. - Added
compas.geometry.BrepFace.adjacent_faces()
. - Added
compas_rhino.geometry.RhinoBrep.is_manifold
. - Added
compas_rhino.geometry.RhinoBrep.contains()
. - Added
compas_rhino.geometry.RhinoBrepFace.adjacent_faces()
. - Added
compas_rhino.geometry.RhinoBrepFace.as_brep()
. - Added
compas.geometry.BrepEdge.orientation
. - Added
compas.geometry.BrepEdge.type
. - Added
compas.geometry.BrepEdge.length
. - Added
compas.geometry.BrepFace.type
. - Added
compas.geometry.BrepFace.add_loop()
. - Added
compas.geometry.BrepFace.add_loops()
. - Added
compas.geometry.BrepFace.to_polygon()
with generic implementation. - Added
compas.geometry.BrepFace.try_get_nurbssurface()
. - Added
compas_rhino.geometry.RhinoBrepFace.area
. - Added
compas_rhino.geometry.RhinoBrepFace.centroid
. - Added
compas_rhino.geometry.RhinoBrepFace.edges
. - Added
compas_rhino.geometry.RhinoBrepFace.is_cone
. - Added
compas_rhino.geometry.RhinoBrepFace.is_cylinder
. - Added
compas_rhino.geometry.RhinoBrepFace.is_torus
. - Added
compas_rhino.geometry.RhinoBrepFace.is_sphere
. - Added
compas_rhino.geometry.RhinoBrepFace.nurbssurface
. - Added
compas_rhino.geometry.RhinoBrepFace.vertices
. - Added
compas_rhino.geometry.RhinoBrepLoop.trims
. - Added
compas_rhino.geometry.RhinoBrepEdge.length
. - Added
compas_rhino.geometry.RhinoBrepEdge.centroid
. - Added
compas.geometry.BrepFace.native_face
. - Added
compas.geometry.BrepEdge.native_edge
. - Added
compas.geometry.BrepLoop.native_loop
. - Added
compas.geometry.BrepTrim.native_trim
. - Added
compas.geometry.BrepVertex.native_vertex
. - Added
compas_rhino.geometry.RhinoBrepFace.native_face
. - Added
compas_rhino.geometry.RhinoBrepEdge.native_edge
. - Added
compas_rhino.geometry.RhinoBrepLoop.native_loop
. - Added
compas_rhino.geometry.RhinoBrepTrim.native_trim
. - Added
compas_rhino.geometry.RhinoBrepVertex.native_vertex
. - Added
color
,opacity
attributes tocompas.scene.SceneObject
. - Added
pointcolor
,linecolor
,surfacecolor
,pointsize
,linewidth
attributes tocompas.scene.GeometryObject
. - Added
compas_rhino.geometry.brep.RhinoBrep.to_meshes()
. - Added
compas_blender.
- Added
compas.geometry.Brep.trimmed()
. - Added
compas.geometry.RhinoBrep.slice()
.
- Changed
compas.geometry.NurbsSurface.u_space
tospace_u
. - Changed
compas.geometry.NurbsSurface.v_space
tospace_v
. - Changed
compas.geometry.NurbsSurface.u_isocurve
toisocurve_u
. - Changed
compas.geometry.NurbsSurface.v_isocurve
toisocurve_v
. - Changed
compas.brep.Brep.from_step_file
tofrom_step
. - Moved
compas.brep
tocompas.geometry.brep
. - Updated
compas-actions.docs
workflow tov3
. Artists
classes are renamed toSceneObject
classes and now undercompas.scene
,compas_rhino.scene
,compas_ghpython.scene
,compas_blender.scene
.- Context related functions like
register
,build
,redraw
andclear
are moved tocompas.scene.context
fromcompas.scene.SceneObject
. - Changed plugin selection to fall back to a default implementation if possible.
- Fixed
AttributeError
_edges
incompas_rhino.geometry.RhinoBrepLoop.edges
. - Fixed
compas_rhino.geometry.RhinoBrep
serialization. - Naming convention for
ColorDictAttributes
incompas.scene.MeshObject
,compas.scene.NetworkObject
andcompas.scene.VolmeshObject
is changed e.g. fromvertex_color
tovertexcolor
. - The building of correct type of
SceneObject
is moved backed to__new__
ofSceneObject
itself. - Changed
compas_blender.install
to use symlinks. - Moved
URDF
parsing fromcompas.files
to thecompas_robots
extension (compas_robots.files.URDF
). - Changed signature of
compas.geometry.Brep.slice()
- Removed
compas_rhino.geometry.RhinoBrepFace.data.setter
. - Removed
compas_rhino.geometry.RhinoBrepEdge.data.setter
. - Removed
compas_rhino.geometry.RhinoBrepLoop.data.setter
. - Removed
compas_rhino.geometry.RhinoBrepTrim.data.setter
. - Removed
compas_rhino.geometry.RhinoBrepVertex.data.setter
. - Removed
compas.PRECISION
. - Removed
compas.set_precision
.
- Added
Frame.axes
- Added
compas.datastructures.TreeNode
andcompas.datastructures.Tree
classes. - Added
EllipseArtist
tocompas_rhino
andcompas_ghpython
. - Added
compas.scene.Scene
.
- Changed
Network.is_planar
to rely onNetworkX
insteadplanarity
for planarity checking. - Removed
planarity
from requirements. - Fixed argument order at
compas.geometry.cone.circle
. - Pinned
jsonschema
version to >=4.17, <4.18 to avoid Rust toolchain - Fixed
box_to_compas
incompas_rhino.conversions
to correctly take in the center of the box as the center point of the frame. - Removed
cython
from requirements. - Made X and Y axis optional in the constructor of
Frame
. - Moved
compas.geometry.brep
tocompas.brep
. - Changed
networkx
version to>=3.0
to ensure support foris_planar
. - Moved
compas.geometry.curves.nurbs_.py
andcompas.geometry.surfaces.nurbs_.py
tocompas_nurbs
. - Fixed
mesh_to_compas
returning an emptyMesh
when colors and/or face normals are missing.
- Added
create_id
tocompas_ghpython.utilities
. (moved fromcompas_fab
) - Added representation for features in
compas.datastructures.Part
. - Added
split
andsplit_by_length
tocompas.geometry.Polyline
. - Added
compas.rpc.XFunc
. - Added attribute
compas.color.Color.DATASCHEMA
. - Added attribute
compas.data.Data.DATASCHEMA
. - Added attribute
compas.datastructures.Graph.DATASCHEMA
. - Added attribute
compas.datastructures.Halfedge.DATASCHEMA
. - Added attribute
compas.datastructures.Halfface.DATASCHEMA
. - Added attribute
compas.geometry.Arc.DATASCHEMA
. - Added attribute
compas.geometry.Bezier.DATASCHEMA
. - Added attribute
compas.geometry.Box.DATASCHEMA
. - Added attribute
compas.geometry.Capsule.DATASCHEMA
. - Added attribute
compas.geometry.Circle.DATASCHEMA
. - Added attribute
compas.geometry.Cone.DATASCHEMA
. - Added attribute
compas.geometry.Cylinder.DATASCHEMA
. - Added attribute
compas.geometry.Ellipse.DATASCHEMA
. - Added attribute
compas.geometry.Frame.DATASCHEMA
. - Added attribute
compas.geometry.Line.DATASCHEMA
. - Added attribute
compas.geometry.NurbsCurve.DATASCHEMA
. - Added attribute
compas.geometry.NurbsSurface.DATASCHEMA
. - Added attribute
compas.geometry.Plane.DATASCHEMA
. - Added attribute
compas.geometry.Point.DATASCHEMA
. - Added attribute
compas.geometry.Pointcloud.DATASCHEMA
. - Added attribute
compas.geometry.Polygon.DATASCHEMA
. - Added attribute
compas.geometry.Polyhedron.DATASCHEMA
. - Added attribute
compas.geometry.Polyline.DATASCHEMA
. - Added attribute
compas.geometry.Sphere.DATASCHEMA
. - Added attribute
compas.geometry.Torus.DATASCHEMA
. - Added attribute
compas.geometry.Quaternion.DATASCHEMA
. - Added attribute
compas.geometry.Vector.DATASCHEMA
. - Added implementation of property
compas.color.Color.data
. - Added
compas.data.Data.validate_data
. - Added
compas.data.Data.__jsondump__
. - Added
compas.data.Data.__jsonload__
. - Added
compas.data.schema.dataclass_dataschema
. - Added
compas.data.schema.dataclass_typeschema
. - Added
compas.data.schema.dataclass_jsonschema
. - Added
compas.data.schema.compas_jsonschema
. - Added
compas.data.schema.compas_dataclasses
. - Added
compas.datastructures.Graph.to_jsondata
. - Added
compas.datastructures.Graph.from_jsondata
. - Added
compas.datastructures.Halfedge.halfedge_loop_vertices
. - Added
compas.datastructures.Halfedge.halfedge_strip_faces
. - Added
compas.datastructures.Mesh.vertex_point
. - Added
compas.datastructures.Mesh.vertices_points
. - Added
compas.datastructures.Mesh.set_vertex_point
. - Added
compas.datastructures.Mesh.edge_start
. - Added
compas.datastructures.Mesh.edge_end
. - Added
compas.datastructures.Mesh.edge_line
. - Added
compas.datastructures.Mesh.face_points
. - Added
compas.datastructures.Mesh.face_polygon
. - Added
compas.datastructures.Mesh.face_circle
. - Added
compas.datastructures.Mesh.face_frame
. - Added
compas.datastructures.Graph.node_index
andcompas.datastructures.Graph.index_node
. - Added
compas.datastructures.Graph.edge_index
andcompas.datastructures.Graph.index_edge
. - Added
compas.datastructures.Halfedge.vertex_index
andcompas.datastructures.Halfedge.index_vertex
. - Added
compas.geometry.Hyperbola
. - Added
compas.geometry.Parabola
. - Added
compas.geometry.PlanarSurface
. - Added
compas.geometry.CylindricalSurface
. - Added
compas.geometry.SphericalSurface
. - Added
compas.geometry.ConicalSurface
. - Added
compas.geometry.ToroidalSurface
. - Added
compas.geometry.trimesh_descent_numpy
. - Added
compas.geometry.trimesh_gradient_numpy
. - Added
compas.geometry.boolean_union_polygon_polygon
pluggable. - Added
compas.geometry.boolean_intersection_polygon_polygon
pluggable. - Added
compas.geometry.boolean_difference_polygon_polygon
pluggable. - Added
compas.geometry.boolean_symmetric_difference_polygon_polygon
pluggable. - Added
compas.geometry.boolean_union_polygon_polygon
Shapely-based plugin. - Added
compas.geometry.boolean_intersection_polygon_polygon
Shapely-based plugin. - Added
compas.geometry.boolean_difference_polygon_polygon
Shapely-based plugin. - Added
compas.geometry.boolean_symmetric_difference_polygon_polygon
Shapely-based plugin. - Added
compas.geometry.Pointcloud.from_ply
. - Added
compas.geometry.Curve.to_points
. - Added
compas.geometry.Curve.to_polyline
. - Added
compas.geometry.Curve.to_polygon
. - Added
compas.geometry.Surface.to_vertices_and_faces
. - Added
compas.geometry.Surface.to_triangles
. - Added
compas.geometry.Surface.to_quads
. - Added
compas.geometry.Surface.to_mesh
. - Added
compas.geometry.Curve.point_at
. - Added
compas.geometry.Curve.tangent_at
. - Added
compas.geometry.Curve.normal_at
. - Added
compas.geometry.Surface.point_at
. - Added
compas.geometry.Surface.normal_at
. - Added
compas.geometry.Surface.frame_at
. - Added
compas.geometry.Polyline.parameter_at
. - Added
compas.geometry.Polyline.divide_at_corners
. - Added
mesh_to_rhino
tocompas_rhino.conversions
. - Added
vertices_and_faces_to_rhino
tocompas_rhino.conversions
. - Added
polyhedron_to_rhino
tocompas_rhino.conversions
. - Added
from_mesh
plugin tocompas_rhino.geometry.RhinoBrep
. - Added
compas.geometry.Plane.worldYZ
andcompas.geometry.Plane.worldZX
. - Added
compas.datastructures.CellNetwork
. - Added
compas_rhino.conversions.brep_to_compas_box
. - Added
compas_rhino.conversions.brep_to_compas_cone
. - Added
compas_rhino.conversions.brep_to_compas_cylinder
. - Added
compas_rhino.conversions.brep_to_compas_sphere
. - Added
compas_rhino.conversions.brep_to_rhino
. - Added
compas_rhino.conversions.capsule_to_rhino_brep
. - Added
compas_rhino.conversions.cone_to_rhino_brep
. - Added
compas_rhino.conversions.curve_to_rhino
. - Added
compas_rhino.conversions.cylinder_to_rhino_brep
. - Added
compas_rhino.conversions.extrusion_to_compas_box
. - Added
compas_rhino.conversions.extrusion_to_rhino_cylinder
. - Added
compas_rhino.conversions.extrusion_to_rhino_torus
. - Added
compas_rhino.conversions.polyline_to_rhino_curve
. - Added
compas_rhino.conversions.surface_to_compas
. - Added
compas_rhino.conversions.surface_to_compas_mesh
. - Added
compas_rhino.conversions.surface_to_compas_quadmesh
. - Added
compas_rhino.conversions.surface_to_rhino
. - Added
compas_rhino.conversions.torus_to_rhino_brep
. - Added
compas_rhino.artists._helpers.attributes
. - Added
compas_rhino.artists._helpers.ngon
. - Added
compas.geometry.find_span
. - Added
compas.geometry.construct_knotvector
. - Added
compas.geometry.knotvector_to_knots_and_mults
. - Added
compas.geometry.knots_and_mults_to_knotvector
. - Added
compas.geometry.compute_basisfuncs
. - Added
compas.geometry.compute_basisfuncsderivs
. - Added
compas.geometry.DefaultNurbsCurve
as try-last, Python-only plugin forcompas.geometry.NurbsCurve
. - Added
compas.geometry.DefaultNurbsSurface
as try-last, Python-only plugin forcompas.geometry.NurbsSurface
. - Added color count to constructor functions of
compas.colors.ColorMap
.
- Temporarily skip testing for python 3.7 due to a bug related to MacOS 13.
- Fixed bug that caused a new-line at the end of the
compas.HERE
constant in IronPython for Mac. - Fixed unbound method usage of
.cross()
onPlane
,Vector
andFrame
. - Fixed Grasshopper
draw_polylines
method to returnPolylineCurve
instead ofPolyline
because the latter shows as only points. - Fixed bug in the
is_polygon_in_polygon_xy
that was not correctly generating all the edges of the second polygon before checking for intersections. - Fixed
area_polygon
that was, in some cases, returning a negative area. - Fixed uninstall post-process.
- Fixed support for
System.Decimal
data type on json serialization. - Fixed
offset_polygon
raising a TypeError when inputing a Polygon instead of a list of Points. - Simplified
compas.datastructures.Part
for more generic usage. - Changed
GLTFMesh.from_mesh
to read texture coordinates, vertex normals and colors if available and add toGLTFMesh
- Fixed bug in
VolMeshArtist.draw_cells
for Rhino, Blender and Grasshopper. - Changed edge parameter of
compas.datastructures.Halfedge.edge_faces
to 1 edge identifier (tuple of vertices) instead of two serparate vertex identifiers. - Changed edge parameter of
compas.datastructures.Halfedge.halfedge_face
to 1 edge identifier (tuple of vertices) instead of two serparate vertex identifiers. - Changed edge parameter of
compas.datastructures.Halfedge.is_edge_on_boundary
to 1 edge identifier (tuple of vertices) instead of two serparate vertex identifiers. - Changed edge parameter of
compas.datastructures.Halfedge.halfedge_after
to 1 edge identifier (tuple of vertices) instead of two serparate vertex identifiers. - Changed edge parameter of
compas.datastructures.Halfedge.halfedge_before
to 1 edge identifier (tuple of vertices) instead of two serparate vertex identifiers. - Changed edge parameter of
compas.datastructures.trimesh_edge_cotangent
to 1 edge identifier (tuple of vertices) instead of two serparate vertex identifiers. - Changed edge parameter of
compas.datastructures.trimesh_edge_cotangents
to 1 edge identifier (tuple of vertices) instead of two serparate vertex identifiers. - Changed edge parameter of
compas.datastructures.Mesh.edge_coordinates
to 1 edge identifier (tuple of vertices) instead of two serparate vertex identifiers. - Changed edge parameter of
compas.datastructures.Mesh.edge_length
to 1 edge identifier (tuple of vertices) instead of two serparate vertex identifiers. - Changed edge parameter of
compas.datastructures.Mesh.edge_vector
to 1 edge identifier (tuple of vertices) instead of two serparate vertex identifiers. - Changed edge parameter of
compas.datastructures.Mesh.edge_point
to 1 edge identifier (tuple of vertices) instead of two serparate vertex identifiers. - Changed edge parameter of
compas.datastructures.Mesh.edge_midpoint
to 1 edge identifier (tuple of vertices) instead of two serparate vertex identifiers. - Changed edge parameter of
compas.datastructures.Mesh.edge_direction
to 1 edge identifier (tuple of vertices) instead of two serparate vertex identifiers. - Changed edge parameter of
compas.datastructures.is_collapse_legal
to 1 edge identifier (tuple of vertices) instead of two serparate vertex identifiers. - Changed edge parameter of
compas.datastructures.mesh_collapse_edge
to 1 edge identifier (tuple of vertices) instead of two serparate vertex identifiers. - Changed edge parameter of
compas.datastructures.trimesh_collapse_edge
to 1 edge identifier (tuple of vertices) instead of two serparate vertex identifiers. - Changed edge parameter of
compas.datastructures.mesh_insert_vertex_on_edge
to 1 edge identifier (tuple of vertices) instead of two serparate vertex identifiers. - Changed edge parameter of
compas.datastructures.mesh_split_edge
to 1 edge identifier (tuple of vertices) instead of two serparate vertex identifiers. - Changed edge parameter of
compas.datastructures.trimesh_split_edge
to 1 edge identifier (tuple of vertices) instead of two serparate vertex identifiers. - Changed edge parameter of
compas.datastructures.trimesh_swap_edge
to 1 edge identifier (tuple of vertices) instead of two serparate vertex identifiers. - Changed
compas.datastructures.Mesh.vertex_laplacian
to returncompas.geometry.Vector
. - Changed
compas.datastructures.Mesh.neighborhood_centroid
to returncompas.geometry.Point
. - Changed
compas.datastructures.Mesh.vertex_normal
to returncompas.geometry.Vector
. - Changed
compas.datastructures.Mesh.edge_vector
to returncompas.geometry.Vector
. - Changed
compas.datastructures.Mesh.edge_direction
to returncompas.geometry.Vector
. - Changed
compas.datastructures.Mesh.edge_point
to returncompas.geometry.Point
. - Changed
compas.datastructures.Mesh.edge_midpoint
to returncompas.geometry.Point
. - Changed
compas.datastructures.Mesh.face_normal
to returncompas.geometry.Vector
. - Changed
compas.datastructures.Mesh.face_centroid
to returncompas.geometry.Point
. - Changed
compas.datastructures.Mesh.face_center
to returncompas.geometry.Point
. - Changed
compas.datastructures.Mesh.face_plane
to returncompas.geometry.Plane
. - Changed JSON validation to Draft202012.
- Changed
compas.data.Data.to_json
to includecompact=False
parameter. - Changed
compas.data.Data.to_jsonstring
to includecompact=False
parameter. - Changed
compas.data.json_dump
to includecompact=False
parameter. - Changed
compas.data.json_dumps
to includecompact=False
parameter. - Changed
compas.data.DataEncoder
andcompas.data.DataDecoder
to supportto_jsondata
andfrom_jsondata
. - Moved all API level docstrings from the
__init__.py
to the correspoding.rst
file in the docs. - Fixed
AttributeError
in Plotter'sPolylineArtist
andSegementArtist
. - Fixed wrong key type when de-serializing
Graph
with integer keys leading to node not found. - Changed base class for
compas.geometry.Transformation
tocompas.data.Data
. - Moved all core transformation functions to
compas.geometry._core
. - Changed base class of
compas.geometry.Arc
tocompas.geometry.Curve.
- Changed base class of
compas.geometry.Bezier
tocompas.geometry.Curve.
- Changed base class of
compas.geometry.Circle
tocompas.geometry.Curve.
- Changed base class of
compas.geometry.Ellipse
tocompas.geometry.Curve.
- Changed base class of
compas.geometry.Line
tocompas.geometry.Curve.
- Changed base class of
compas.geometry.Polyline
tocompas.geometry.Curve.
- Changed
compas.geometry.oriented_bounding_box_numpy
to minimize volume. - Fixed data interface
compas.datastructures.Assembly
andcompas.datastructures.Part
. - Changed data property of
compas.datastructures.Graph
to contain only JSON compatible data. - Changed data property of
compas.datastructures.Halfedge
to contain only JSON compatible data. - Changed data property of
compas.datastructures.Halfface
to contain only JSON compatible data. - Changed
__repr__
ofcompas.geometry.Point
andcompas.geometry.Vector
to not use limited precision (compas.PRECISION
) to ensure proper object reconstruction througheval(repr(point))
. - Changed
compas.datastructures.Graph.delete_edge
to delete invalid (u, u) edges and not delete edges in opposite directions (v, u) - Fixed bug in
compas.datastructures.Mesh.insert_vertex
. - Fixed bug in
compas.geometry.angle_vectors_signed
. - Fixed bug in
compas.geometry.Polyline.split_at_corners
where angles were sometimes wrongly calculated. - Changed
compas.artists.MeshArtist
default colors. - Fixed bug in
compas.geometry.curves.Polyline
shorten and extend methods. - Changed internal _plane storage of the
compas.datastructures.Halfface
from_plane[u][v][w]
to_plane[u][v][fkey]
- Fixed
SyntaxError
when importing COMPAS in GHPython.
- Removed all
__all__
beyond second level package. - Removed deprecated
compas.utilities.coercing
. - Removed deprecated
compas.utilities.encoders
. - Removed deprecated
compas.utilities.xfunc
. - Removed
compas.datastructures.Halfedge.get_any_vertex
. - Removed
compas.datastructures.Halfedge.get_any_vertices
. - Removed
compas.datastructures.Halfedge.get_any_face
. - Removed "schemas" folder and all contained
.json
files fromcompas.data
. - Removed
compas.data.Data.jsondefinititions
. - Removed
compas.data.Data.jsonvalidator
. - Removed
compas.data.Data.validate_json
. - Removed
compas.data.Data.validate_jsondata
. - Removed
compas.data.Data.validate_jsonstring
. - Removed
compas.data.Data.__getstate__
. - Removed
compas.data.Data.__setstate__
. - Removed setter of property
compas.data.Data.data
and similar setters in all data classes. - Removed properties
compas.data.Data.DATASCHEMA
andcompas.data.Data.JSONSCHEMANAME
. - Removed properties
compas.datastructures.Graph.DATASCHEMA
andcompas.datastructures.Graph.JSONSCHEMANAME
. - Removed properties
compas.datastructures.Halfedge.DATASCHEMA
andcompas.datastructures.Halfedge.JSONSCHEMANAME
. - Removed properties
compas.datastructures.Halfface.DATASCHEMA
andcompas.datastructures.Halfface.JSONSCHEMANAME
. - Removed properties
compas.geometry.Arc.DATASCHEMA
andcompas.geometry.Arc.JSONSCHEMANAME
. - Removed properties
compas.geometry.Bezier.DATASCHEMA
andcompas.geometry.Bezier.JSONSCHEMANAME
. - Removed properties
compas.geometry.Box.DATASCHEMA
andcompas.geometry.Box.JSONSCHEMANAME
. - Removed properties
compas.geometry.Capsule.DATASCHEMA
andcompas.geometry.Capsule.JSONSCHEMANAME
. - Removed properties
compas.geometry.Circle.DATASCHEMA
andcompas.geometry.Circle.JSONSCHEMANAME
. - Removed properties
compas.geometry.Cone.DATASCHEMA
andcompas.geometry.Cone.JSONSCHEMANAME
. - Removed properties
compas.geometry.Cylinder.DATASCHEMA
andcompas.geometry.Cylinder.JSONSCHEMANAME
. - Removed properties
compas.geometry.Ellipse.DATASCHEMA
andcompas.geometry.Ellipse.JSONSCHEMANAME
. - Removed properties
compas.geometry.Frame.DATASCHEMA
andcompas.geometry.Frame.JSONSCHEMANAME
. - Removed properties
compas.geometry.Line.DATASCHEMA
andcompas.geometry.Line.JSONSCHEMANAME
. - Removed properties
compas.geometry.NurbsCurve.DATASCHEMA
andcompas.geometry.NurbsCurve.JSONSCHEMANAME
. - Removed properties
compas.geometry.NurbsSurface.DATASCHEMA
andcompas.geometry.NurbsSurface.JSONSCHEMANAME
. - Removed properties
compas.geometry.Plane.DATASCHEMA
andcompas.geometry.Plane.JSONSCHEMANAME
. - Removed properties
compas.geometry.Point.DATASCHEMA
andcompas.geometry.Point.JSONSCHEMANAME
. - Removed properties
compas.geometry.Pointcloud.DATASCHEMA
andcompas.geometry.Pointcloud.JSONSCHEMANAME
. - Removed properties
compas.geometry.Polygon.DATASCHEMA
andcompas.geometry.Polygon.JSONSCHEMANAME
. - Removed properties
compas.geometry.Polyhedron.DATASCHEMA
andcompas.geometry.Polyhedron.JSONSCHEMANAME
. - Removed properties
compas.geometry.Polyline.DATASCHEMA
andcompas.geometry.Polyline.JSONSCHEMANAME
. - Removed properties
compas.geometry.Sphere.DATASCHEMA
andcompas.geometry.Sphere.JSONSCHEMANAME
. - Removed properties
compas.geometry.Torus.DATASCHEMA
andcompas.geometry.Torus.JSONSCHEMANAME
. - Removed properties
compas.geometry.Quaternion.DATASCHEMA
andcompas.geometry.Quaternion.JSONSCHEMANAME
. - Removed properties
compas.geometry.Vector.DATASCHEMA
andcompas.geometry.Vector.JSONSCHEMANAME
. - Removed
compas.datastructures.Graph.key_index
andcompas.datastructures.Graph.index_key
. - Removed
compas.datastructures.Graph.uv_index
andcompas.datastructures.Graph.index_uv
. - Removed
compas.datastructures.Halfedge.key_index
andcompas.datastructures.Halfedge.index_key
. - Removed
compas.numerical.dr
andcompas.numerical.dr_numpy
(moved to separatecompas_dr
). - Removed
compas.numerical.fd_numpy
to (moved to separatecompas_fd
). - Removed
compas.numerical.topop_numpy
(moved to separatecompas_topopt
). - Removed
compas.numerical.mma
andcompas.numerical.lma
. - Removed
compas.numerical.descent
,compas.numerical.devo
, andcompas.numerical.ga
. - Removed
compas.numerical.utilities
. - Removed class attribute
CONTEXT
fromcompas.artists.Artist
. - Removed class attribute
AVAILABLE_CONTEXTS
formcompas.artists.Artist
. - Removed
compas.geometry.Primitive
. - Removed classmethod
compas.color.Color.from_data
. - Removed
validate_data
fromcompas.data.validators
. - Removed
json_validate
fromcompas.data.json
. - Removed
compas_rhino.conversions.Box
. - Removed
compas_rhino.conversions.Circle
. - Removed
compas_rhino.conversions.Cone
. - Removed
compas_rhino.conversions.Curve
. - Removed
compas_rhino.conversions.Cylinder
. - Removed
compas_rhino.conversions.Ellipse
. - Removed
compas_rhino.conversions.Line
. - Removed
compas_rhino.conversions.Mesh
. - Removed
compas_rhino.conversions.Plane
. - Removed
compas_rhino.conversions.Point
. - Removed
compas_rhino.conversions.Polyline
. - Removed
compas_rhino.conversions.Vector
. - Removed
compas_rhino.artists.NetworkArtist.draw_nodelabels
. - Removed
compas_rhino.artists.NetworkArtist.draw_edgelabels
. - Removed
compas_rhino.artists.MeshArtist.draw_vertexlabels
. - Removed
compas_rhino.artists.MeshArtist.draw_edgelabels
. - Removed
compas_rhino.artists.MeshArtist.draw_facelabels
. - Removed
compas_rhino.artists.VolMeshArtist.draw_vertexlabels
. - Removed
compas_rhino.artists.VolMeshArtist.draw_edgelabels
. - Removed
compas_rhino.artists.VolMeshArtist.draw_facelabels
. - Removed
compas_rhino.artists.VolMeshArtist.draw_celllabels
. - Removed
compas.robots
, replaced withcompas_robots
package. - Removed
compas.artists.robotmodelartist
. - Removed
compas_blender.artists.robotmodelartist
. - Removed
compas_ghpython.artists.robotmodelartist
. - Removed
compas_rhino.artists.robotmodelartist
.
- Added conversion function
frame_to_rhino_plane
tocompas_rhino.conversions
. - Added
RhinoSurface.from_frame
tocompas_rhino.geometry
. - Added representation for trims with
compas.geometry.BrepTrim
. - Added
Arc
tocompas.geometry
. - Added
Arc
conversion functions tocompas_rhino.conversions
. - Added
from_sphere
alternative constructor toRhinoBrep
. - Added support for singular trims to
RhinoBrep
.
- Patched CVE-2007-4559 vulnerability.
- Updated workflows to v2.
- Fixed attribute error in
compas_rhino.conversions.ellipse_to_compas
. - Changed deepcopy of
RhinoBrep
to use the nativeRhino.Geometry
mechanism. - The normal of the cutting plane is no longer flipped in
compas_rhino.geometry.RhinoBrep
. - Planar holes caused by
RhinoBrep.trim
are now automatically capped. - Fixed
Polygon
constructor to not modify the input list of points. - Fixed serialization of sphere and cylinder Breps in
RhinoBrep
. - Fixed serialization of some trimmed shapes in
RhinoBrep
. - Freeze black version to 22.12.0.
- Fixed
is_point_in_circle_xy
second argument to access the origin of the plane of the circle. - Changed
compas.datastructures.Graph.data
to contain unprocessednode
andedge
dicts. - Changed
compas.datastructures.Halfedge.data
to contain unprocessedvertex
,face
,facedata
, andedgedata
dicts. - Changed
compas.datastructures.Halfface.data
to contain unprocessedvertex
,cell
,edge_data
,face_data
, andcell_data
dicts. - Changed
compas.geometry.Arc.data
to contain unprocessed COMPAS geometry objects, instead of their data dicts. - Changed
compas.geometry.Bezier.data
to contain unprocessed COMPAS geometry objects, instead of their data dicts. - Changed
compas.geometry.Box.data
to contain unprocessed COMPAS geometry objects, instead of their data dicts. - Changed
compas.geometry.Capsule.data
to contain unprocessed COMPAS geometry objects, instead of their data dicts. - Changed
compas.geometry.Circle.data
to contain unprocessed COMPAS geometry objects, instead of their data dicts. - Changed
compas.geometry.Cone.data
to contain unprocessed COMPAS geometry objects, instead of their data dicts. - Changed
compas.geometry.Cylinder.data
to contain unprocessed COMPAS geometry objects, instead of their data dicts. - Changed
compas.geometry.Ellipse.data
to contain unprocessed COMPAS geometry objects, instead of their data dicts. - Changed
compas.geometry.Frame.data
to contain unprocessed COMPAS geometry objects, instead of their data dicts. - Changed
compas.geometry.Line.data
to contain unprocessed COMPAS geometry objects, instead of their data dicts. - Changed
compas.geometry.NurbsCurve.data
to contain unprocessed COMPAS geometry objects, instead of their data dicts. - Changed
compas.geometry.NurbsSurface.data
to contain unprocessed COMPAS geometry objects, instead of their data dicts. - Changed
compas.geometry.Plane.data
to contain unprocessed COMPAS geometry objects, instead of their data dicts. - Changed
compas.geometry.Pointcloud.data
to contain unprocessed COMPAS geometry objects, instead of their data dicts. - Changed
compas.geometry.Polygon.data
to contain unprocessed COMPAS geometry objects, instead of their data dicts. - Changed
compas.geometry.Polyhedron.data
to contain unprocessed COMPAS geometry objects, instead of their data dicts. - Changed
compas.geometry.Polyline.data
to contain unprocessed COMPAS geometry objects, instead of their data dicts. - Changed
compas.geometry.Sphere.data
to contain unprocessed COMPAS geometry objects, instead of their data dicts. - Changed
compas.geometry.Torus.data
to contain unprocessed COMPAS geometry objects, instead of their data dicts. - Changed
compas.geometry.Quaternion.data
to contain unprocessed COMPAS geometry objects, instead of their data dicts.
- Added option for per-vertex color specification to
compas_rhino.utilities.drawing.draw_mesh
.
- Fixed strange point values in RhinoNurbsCurve caused by conversion
ControlPoint
to COMPAS instead ofControlPoint.Location
. - Fixed flipped order of NURBS point count values when creating RhinoNurbsSurface from parameters.
- Changed serialization format and reconstruction procedure of
RhinoBrep
.
- Removed Python 3.6 from build workflows as it reached end-of-life at the end of 2021.
- Added
compas_rhino.INSTALLATION_ARGUMENTS
.
- Fixed bug in Rhino installation due to redefinition of command line arguments in
compas_ghpython.components.get_version_from_args
.
- Changed
compas._os._polyfill_symlinks
to use junction (/J) instead of symbolic link (/D).
- Added
compas_rhino.geometry.RhinoCurve.offset
. - Added
compas.geometry.Surface.from_plane
. - Added
compas.geometry.surfaces.surface.new_surface_from_plane
pluggable. - Added
compas_rhino.geometry.surfaces.new_surface_from_plane
plugin. - Added
compas_rhino.geometry.RhinoSurface.intersections_with_curve
.
- Fixed bug in
compas_rhino.geometry.RhinoCurve.frame_at
. - Changed implementation of
compas.datastructures.mesh_planarize_faces
to include edge midpoints.
- Added gltf extensions:
KHR_materials_transmission
,KHR_materials_specular
,KHR_materials_ior
,KHR_materials_clearcoat
,KHR_Texture_Transform
,KHR_materials_pbrSpecularGlossiness
- Added
GLTFContent.check_extensions_texture_recursively
- Added
GLTFContent.get_node_by_name
,GLTFContent.get_material_index_by_name
- Added
GLTFContent.add_material
,GLTFContent.add_texture
,GLTFContent.add_image
- Added pluggable
Brep
support withcompas.geometry.brep
. - Added Rhino
Brep
plugin incompas_rhino.geometry.brep
. - Added boolean operations to the
compas_rhino
Brep
backend. - Added boolean operation operator overloads in
compas.geometry.Brep
- Added
format
task usingblack
formatter. - Added a
test_intersection_circle_circle_xy
in thetest_intersections
- Added split operation to
compas_rhino.geometry.Brep
. - Added a
RhinoArtist
incompas_rhino
. - Added a
RhinoArtist
incompas_ghpython
.
- Based all gltf data classes on
BaseGLTFDataClass
- Fixed
Color.__get___
AttributeError. - Fixed
RhinoSurface.curvature_at
not returning a Vector, but a Rhino SurfaceCurvature class object - Fixed
cylinder_to_rhino
conversion to matchcompas.geometry.Cylinder
location. - Changed identification of cylinder brep face to non-zero in
compas_rhino.conversions.cylinder.Cylinder
. - Changed linter to
black
. - Automatically trigger
invoke format
duringinvoke release
. - Fixed bug in
intersections.intersection_circle_circle_xy
where the Circle's Plane was accessed instead of the centre. - Fixed bug in
_core.tangent
where the Circle's Plane was accessed instead of the centre. - Fixed the
test_tangent
to work with a properly defined circle RhinoBrep
serialization works now with surface types other than NURBS.- Fixed bug in finding halfedge before a given halfedge if that halfedge is on the boundary (
Mesh.halfedge_before
). - Renamed
Brep.from_brep
toBrep.from_native
.
- Added
Polyline.extend
,Polyline.extended
,Polyline.shorten
,Polyline.shortened
. - Added
Data.sha256
for computing a hash value of data objects, for example for comparisons during version control. - Added optional
path
parameter tocompas.rpc.Proxy
to allow for non-package calls. - Added Grasshopper component to call RPC functions.
- Added alternative installation procedure for Blender on Windows.
- Added
Mesh.to_lines
method and tests. - Added
Data.guid
to JSON serialization. - Added
Data.guid
to pickle state. - Added
Assembly.find_by_key
to locate parts by key. - Added
clear_edges
andclear_nodes
toNetworkArtist
for ghpython. - Added
ToString
method toData
to ensure that Rhino/Grasshopper correctly casts objects to string.
- Set
jinja >= 3.0
to dev dependencies to fix docs build error. - Fixed removing of collections for
compas_plotters
. - Fixed bug in
compas_plotters.plotter.Plotter.add_from_list
. - Fixed bug in
compas.robots.Configuration
. - Rebuild part index after deserialization in
Assembly
. - Fixed bug in
compas.artists.colordict.ColorDict
. - Change
Mesh.mesh_dual
with option of including the boundary. - Fixed type error in
compas_rhino.conversions.box_to_rhino
. - Moved from
autopep8
toblack
- Fixed bug in
compas.utilities.linspace
for number series with high precision start and stop values. - Fixed uncentered viewbox in
Plotter.zoom_extents()
- Changed
RobotModelArtists.atteched_tool_models
to dictionary to support multiple tools. - Locked
sphinx
to 4.5. - Changed
GLTFExporter
such that generated gltfs can be viewed with webxr - Fixed source directory path in
compas_ghpython.uninstall
plugin. - Fixed bug in
compas_ghpython.components
that ignored input list of.ghuser
objects to uninstall. - Fixed conversion bug of transformed
Box
incompas_rhino.conversions
- Removed unused
compas_rhino.objects
(moved tocompas_ui
). - Removed unused
compas_rhino.ui
(moved tocompas_ui
).
- Added optional
triangulated
flag toMesh.to_vertices_and_faces
. - Added geometry information of active meshes to the serialization/deserialization of robot model's
MeshDescriptor
. - Added Grasshopper component to draw any COMPAS object.
- Added new icons to Grasshopper components and default to icon style.
- Fixed bug in
normal_polygon
incompas.geometry
. - Fixed bug in Blender mesh conversion.
- Changed Rhino plugin installer to check for and install required plugin packages.
- Refactor robot model artists to use the same
Mesh.to_vertices_and_faces
everywhere. - Fix debug print on Blender artist.
- Added descriptor support to
compas.colors.Color
. - Added descriptor protocol metaclass to
compas.artists.Artist
. - Added
compas.artists.colordict.ColorDict
descriptor. - Added
allclose
to doctest fixtures. - Added
compas.colors.Color.coerce
to construct a color out og hex, RGB1, and RGB255 inputs. - Added
compas.datastructures.Network.from_pointcloud
. - Added
compas.datastructures.VolMesh.from_meshgrid
. - Added
vertices_where
,vertices_where_predicate
,edges_where
,edges_where_predicate
tocompas.datastructures.HalfFace
. - Added
faces_where
,faces_where_predicate
,cells_where
,cells_where_predicate
tocompas.datastructures.HalfFace
. - Added
VolMeshArtist
to registered Blender artists. - Added
3.1
to supported versions for Blender installer. - Added
compas.artist.NoArtistContextError
.
- Changed
compas.geometry.surfaces.nurbs.from_fill
to accept up to 4 curves as input. - Changed
compas_rhino.artists.MeshArtist.draw
to draw the mesh only. - Changed
compas_blender.artists.MeshArtist.draw
to draw the mesh only. - Changed
compas_ghpython.artists.MeshArtist.draw
to draw the mesh only. - Changed
compas_rhino.artists.MeshArtist.draw_vertexlabels
to use the colors of the vertex color dict. - Changed
compas_rhino.artists.MeshArtist.draw_edgelabels
to use the colors of the edge color dict. - Changed
compas_rhino.artists.MeshArtist.draw_facelabels
to use the colors of the face color dict. - Changed
compas_blender.artists.MeshArtist.draw_vertexlabels
to use the colors of the vertex color dict. - Changed
compas_blender.artists.MeshArtist.draw_edgelabels
to use the colors of the edge color dict. - Changed
compas_blender.artists.MeshArtist.draw_facelabels
to use the colors of the face color dict. - Changed
compas_ghpython.artists.MeshArtist.draw_vertexlabels
to use the colors of the vertex color dict. - Changed
compas_ghpython.artists.MeshArtist.draw_edgelabels
to use the colors of the edge color dict. - Changed
compas_ghpython.artists.MeshArtist.draw_facelabels
to use the colors of the face color dict. - Fixed
compas_blender.uninstall
. - Changed
planarity
to optional requirement on all platforms. - Changed
numba
to optional requirement on all platforms. - Changed raw github content path for
compas.get
. - Changed
compas.datastructures.Graph.nodes_where
to accept conditions as kwargs. - Changed
compas.datastructures.Graph.edges_where
to accept conditions as kwargs. - Changed
compas.datastructures.Halfedge.vertices_where
to accept conditions as kwargs. - Changed
compas.datastructures.Halfedge.edges_where
to accept conditions as kwargs. - Changed
compas.datastructures.Halfedge.faces_where
to accept conditions as kwargs. - Changed
compas.datastructures.Halfface.vertices_where
to accept conditions as kwargs. - Changed
compas.datastructures.Halfface.edges_where
to accept conditions as kwargs. - Changed
compas.datastructures.Halfface.faces_where
to accept conditions as kwargs. - Changed
compas.datastructures.Halfface.cells_where
to accept conditions as kwargs. - Fixed
compas_blender.artists.VolMeshArtist.draw
andcompas_blender.artists.VolMeshArtist.draw_cells
. - Fixed
compas_ghpython.artists.VolMeshArtist.draw
andcompas_ghpython.artists.VolMeshArtist.draw_cells
. - Fixed
compas_rhino.artists.VolMeshArtist.draw
andcompas_rhino.artists.VolMeshArtist.draw_cells
. - Improved error messages when artist instance cannot be created.
- Fixed exception when calculating geometry of
compas.datastructures.Part
without features. - Fixed bug in
compas_rhino.conversions.RhinoCurve.to_compas
. - Fixed bug in
compas_rhino.conversions.RhinoSurface.to_compas
.
- Removed
compas.numerical.drx
.
- Added doc test step in CI/CD.
- Fixed symlink expansion for directories relative to the COMPAS installation folder, eg.
compas.DATA
when used from IronPython. - Fixed the result of
compas.__version__
on dev installs to properly include git hash. - Move
data
files inside the folder included in the source distribution (ie. non-dev installs). - Fixed IronPython detection on ipy 2.7.12 and higher.
- Added
compas.colors.Color
. - Added
compas.colors.ColorMap
. - Added
compas_blender.conversions.BlenderGeometry
. - Added
compas_blender.conversions.BlenderCurve
. - Added
compas_blender.conversions.BlenderMesh
. - Added option to return strip faces from
compas.datastructure.Halfedge.edge_strip
. - Added
compas.geometry.Bezier.transform
. - Added
compas.geometry.Curve
as base class for curves. - Added
compas.geometry.Surface
as base class for surfaces. - Added
compas_rhino.geometry.RhinoCurve
as Rhino plugin for basic curves. - Added
compas_rhino.geometry.RhinoSurface
as Rhino plugin for basic surfaces. - Added pluggable
compas.geometry.curves.curve.new_curve
. - Added pluggable
compas.geometry.surfaces.surface.new_surface
. - Added
compas.artists.CurveArtist
. - Added
compas.artists.SurfaceArtist
. - Added
compas_rhino.artists.CurveArtist
. - Added
compas_rhino.artists.SurfaceArtist
. - Added
compas_ghpython.artists.CurveArtist
. - Added
compas_ghpython.artists.SurfaceArtist
. - Added
compas_blender.artists.CurveArtist
. - Added
compas_blender.artists.SurfaceArtist
. - Added
compas_rhino.utilities.draw_curves
. - Added
compas_rhino.utilities.draw_surfaces
. - Added
compas_blender.utilities.draw_curves
. - Added
compas_blender.utilities.draw_surfaces
. - Added
rgba
andrgba255
properties tocompas.colors.Color
. - Added
from_name
method tocompas.colors.Color
. - Added Python 3.10 support.
- Added
RobotModel.ur5
for the sake of example.
- Fixed bug in
mesh_slice_plane()
,Mesh.slice_plane()
. - Changed
compas_rhino.geometry.RhinoNurbsSurface.closest_point
to fix bug of rhino_curve to rhino_surface, plus return tuple instead. - Changed
compas_plotters.plotter.Plotter
to normal class instead of singleton. - Moved functionality of
compas.utilities.coercion
tocompas.data
. - Fixed bug in
compas.geometry.NurbsSurface.to_triangles()
. - Renamed docs site folders
latest
tostable
anddev
tolatest
. - Rebased
compas.geometry.NurbsCurve
oncompas.geometry.Curve
. - Rebased
compas.geometry.NurbsSurface
oncompas.geometry.Surface
. - Rebased
compas_rhino.geometry.RhinoNurbsCurve
oncompas.geometry.NurbsCurve
andcompas_rhino.geometry.RhinoCurve
. - Rebased
compas_rhino.geometry.RhinoNurbsSurface
oncompas.geometry.NurbsSurface
andcompas_rhino.geometry.RhinoSurface
. - Fixed error message for unsupported joint types.
- Fixed support for non-standard URDF attributes on limit and mesh geometry.
- Fixed data serialization for URDF materials without color.
- Removed geometric primitives (
Origin
,Box
,Sphere
,Cylinder
andCapsule
) fromcompas.robots
and replaced them with the core ones fromcompas.geometry
. The old names are still available but deprecated. - Deprecated the
load_mesh
method ofcompas.robots.AbstractMeshLoader
and its sub-classes in favor ofload_meshes
. - Fixed bug in
compas_rhino.conversions.RhinoGeometry.transform
.
- Removed
compas.geometry.Collection
. - Removed
compas.geometry.CollectionNumpy
. - Removed
compas.geometry.PointCollection
. - Removed
compas.geometry.PointCollectionNumpy
. - Removed
compas.interop
. - Removed
numba
;compas.numerical.drx
will be moved to a dedicated extension package. - Removed
ezdxf
(unused). - Removed
laspy
(unused). - Removed
compas_rhino.artists.MeshArtist.draw_mesh
. - Removed
compas_blender.artists.MeshArtist.draw_mesh
.
- Added
compas_plotters.artists.NetworkArtist.draw_nodelabels
. - Added
compas_plotters.artists.NetworkArtist.draw_edgelabels
. - Added
compas_plotters.Plotter.fontsize
. - Added
INSTALLED_VERSION
variable tocompas_rhino.install
to interally inform rhino version context post-installation steps. - Added
compas_rhino.geometry.RhinoNurbsSurface
. - Added
compas_rhino.geometry.surfaces.new_nurbssurface
plugin. - Added
compas_rhino.geometry.surfaces.new_nurbssurface_from_parameters
plugin. - Added
compas_rhino.geometry.surfaces.new_nurbssurface_from_points
plugin. - Added
compas_rhino.geometry.surfaces.new_nurbssurface_from_fill
plugin. - Added
compas_rhino.geometry.surfaces.new_nurbssurface_from_step
plugin. - Added
compas_rhino.conversions.RhinoSurface.to_compas
.
- Fixed bug in inheritance of
compas_plotters.artists.NetworkArtist
. - Changed
compas_plotters.artists.MeshArtist.draw_edges
to ignore edge direction for assignment of edge colors and widths. - Changed
compas_plotters.artists.MeshArtist.draw_vertexlabels
to usecompas_plotters.Plotter.fontsize
. - Changed
compas_plotters.artists.MeshArtist.draw_edgelabels
to usecompas_plotters.Plotter.fontsize
. - Changed
compas_plotters.artists.MeshArtist.draw_facelabels
to usecompas_plotters.Plotter.fontsize
. - Fixed bug in
compas_rhino.conversions.plane_to_compas_frame
. - Changed implementation of
compas.geometry.NurbsSurface.xyz
. - Fixed bug in
compas.geometry.NurbsSurface.to_mesh
. - Changed
compas_rhino.geometry.RhinoNurbsSurface.from_points
to use transposed points. - Fixed bug in
compas_rhino.conversions.RhinoSurface.to_compas_mesh
.
- Added
compas_ghpython.fetch_ghio_lib
to simplify the loading of Grasshopper's IO library for extension developers.
- Fixed bug in
Grasshopper
plugin path on Windows. - Fixed bug in
Grasshopper
UserObjects
uninstall.
- Added
compas_rhino.DEFAULT_VERSION
. - Added
clean
option tocompas_rhino.install
to remove existing symlinks if they cannot be imported from the current environment. - Added basic implementation of
compas.datastructures.Assembly
. - Added
compas.is_grasshopper
. - Added
compas.GH
. - Added
compas.artists.Artist.CONTEXT
. - Added
compas.artists.Artist.AVAILABLE_CONTEXTS
. - Added
compas.artists.artist.register_artists
pluggable.
- Updated
pr-checks
workflow for checking Changelog entry. - Fixed return value of attributes of empty
compas_rhino.geometry.RhinoNurbsCurve
. - Fixed error in parameter list of
compas_rhino.geometry.curves.new_nurbscurve
. - Fixed error in parameter list of
compas_rhino.geometry.curves.new_nurbscurve_from_interpolation
. - Fixed error in parameter list of
compas_rhino.geometry.curves.new_nurbscurve_from_step
. - Changed
compas_rhino.install
to remove broken symlinks. - Changed
compas_rhino.install
to reinstall broken symlinks if they can be imported from the current environment. - Changed
compas_rhino.uninstall
to remove broken symlinks. - Changed
compas_rhino.install_plugin
to remove broken symlinks. - Changed default Rhino version for installation to
7.0
. - Fixed bug in
compas_ghpython
related to importingGrasshopper
prematurely. - Changed
compas.artists.Artist.ITEM_ARTIST
to context-based dict. - Changed
compas_rhino.__init__.py
functions. - Changed
compas_ghpython.__init__.py
functions. - Renamed
compas_ghpython.get_grasshopper_plugin_path
tocompas_ghpython.get_grasshopper_managedplugin_path
.
- Removed
compas.artists.artist.new_artist
pluggable.
- Moved import of
subprocess
to top of filecompas._os.py
.
- Fixed bug in
compas_rhino.conversions.RhinoPoint.from_geometry
. - Changed
compas_rhino.install
to remove broken symlinks. - Changed
compas_rhino.install
to reinstall broken symlinks if they can be imported from the current environment. - Changed
compas_rhino.uninstall
to remove broken symlinks. - Changed
compas_rhino.install_plugin
to remove broken symlinks.
- Added
CircleArtist
,LineArtist
,PointArtist
,PolygonArtist
,PolylineArtist
, andVectorArtist
tocompas_blender
. - Added
draw_circles
anddraw_planes
tocompas_blender
. - Added
compas_rhino.geometry.curves
plugins forcompas.geometry.curves
pluggables. - Added
compas_rhino.geometry.RhinoNurbsCurve
. - Added
to_compas_quadmesh
tocompas_rhino.conversions.RhinoSurface
.
- Replaced implementation of
RGBColour
andFloat
with deprecation warning incompas.utilities.descriptors
. - Moved all Rhino geometry and objects wrappers to
compas_rhino.conversions
. - Fixed bug in
compas_rhino.conversions.RhinoSurface.from_geometry
. - Changed
compas_rhino.conversions.RhinoLine.from_geometry
to accept line curves. - Fixed bug in
compas_rhino.geometry.RhinoNurbsCurve.closest_point
. - Modify
to_compas_mesh
incompas_rhino.conversions.RhinoSurface
to use brep loops.
- Changed
compas_rhino.uninstall
to also remove broken symlinks if no specific packages are provided for un-installation. - Changed
compas_rhino.install
to also remove broken symlinks.
- Added halfedge loops in
compas.datastructures.Halfedge.halfedge_loop
. - Added halfedge strips in
compas.datastructures.Halfedge.halfedge_strip
. - Added
compas.datastructures.mesh_split_strip
andcompas.datastructures.Mesh.split_strip
. - Added boundingbox to
compas_rhino.conduits.BaseConduit
- Fixed bug in combination of
compas_rhino.artists.MeshArtist.draw_mesh
andcompas_rhino.utilities.drawing.draw_mesh
. - Fixed bug in continuous loops in
compas.datastructures.Halfedge.edge_loop
. - Fixed bug in continuous strips in
compas.datastructures.Halfedge.edge_strip
. - Changed abstract method
compas.artists.MeshArtist.draw_mesh
to implemented method incompas_plotters.artists.MeshArtist.draw_mesh
.
- Added
compas.geometry.Curve
andcompas.geometry.NurbsCurve
. - Added
compas.geometry.Surface
andcompas.geometry.NurbsSurface
. - Added pluggables for
compas.geometry.NurbsCurve.__new__
,compas.geometry.NurbsCurve.from_parameters
,compas.geometry.NurbsCurve.from_points
,compas.geometry.NurbsCurve.from_interpolation
,compas.geometry.NurbsCurve.from_step
. - Added pluggables for
compas.geometry.NurbsSurface.__new__
,compas.geometry.NurbsSurface.from_parameters
,compas.geometry.NurbsSurface.from_points
,compas.geometry.NurbsSurface.from_fill
,compas.geometry.NurbsSurface.from_step
. - Added missing implementations for abstract clear methods of
compas_rhino.artists.volmeshartist
. - Added
compas_rhino.geometry.RhinoBox
,compas_rhino.geometry.RhinoCircle
,compas_rhino.geometry.RhinoCone
,compas_rhino.geometry.RhinoCurve
,compas_rhino.geometry.RhinoCylinder
,compas_rhino.geometry.RhinoEllipse
,compas_rhino.geometry.RhinoLine
,compas_rhino.geometry.RhinoMesh
,compas_rhino.geometry.RhinoPlane
,compas_rhino.geometry.RhinoPoint
,compas_rhino.geometry.RhinoPolyline
,compas_rhino.geometry.RhinoSphere
,compas_rhino.geometry.RhinoSurface
,compas_rhino.geometry.RhinoVector
as wrappers for working with Rhino geometry through geometry conversions or coercion of doc objects. - Added
compas_rhino.conversions
from COMPAS geometry to Rhino geometry and vice versa, for primitives, shapes, curves, surfaces, meshes. - Added
compas_rhino.coercion
from Rhino doc objects to Rhino geometry compatible with COMPAS geometry.
- Fixed bug in directions of
compas.datastructures.Mesh.from_meshgrid
. - Fixed bug in Rhino mesh face drawing.
- Fixed bug related to legacy uninstall on Rhino for Mac.
- Changed default path for Rhino 7 legacy install cleanup to Rhino7.app in
compas_rhino.__init__.py
. - Changed z-coordinate of
compas.datastructures.Mesh.from_meshgrid
to0.0
instead of0
.
- Added
draw_mesh
method tocompas_ghpython.artists.MeshArtist
to match all other mesh artists.
- Changed new artist registration to check if subclass.
- Fixed
RobotModelArtist
for blender: missing abstract method impl and handle init order.
- Added
Plane.offset
. - Added
is_mesh_closed
property tocompas.datastructures.mesh_slice_plane
.
- Fixed backward compatibility problem with artists by adding back
Artist.build
andArtist.build_as
. - Fixed backward compatibility problem with artists by adding
compas_rhino.artists.BaseArtist
alias forcompas_rhino.artists.RhinoArtist
.
- Added
draw_vertexlabels
,draw_edgelabels
,draw_facelabels
,draw_vertexnormals
, anddraw_facenormals
tocompas_blender.artists.MeshArtist
. - Added optional
triangulated
flag toto_vertices_and_faces
of all shapes. - Added
compas.geometry.Geometry
base class. - Added
__add__
,__sub__
,__and__
tocompas.geometry.Shape
for boolean operations using binary operators. - Added
is_closed
tocompas.geometry.Polyhedron
. - Added
Plane.offset
. - Added
compas.artists.Artist
. - Added pluggable
compas.artists.new_artist
. - Added plugin
compas_rhino.artists.new_artist_rhino
. - Added plugin
compas_blender.artists.new_artist_blender
. - Added
compas.artist.DataArtistNotRegistered
. - Added
draw_node_labels
anddraw_edgelabels
tocompas_blender.artists.NetworkArtist
. - Added
compas_blender.artists.RobotModelArtist.clear
. - Added
compas_blender.geometry.booleans
as plugin for boolean pluggables. - Added version-based installation for Blender.
- Added several shape artists to
compas_ghpython
:BoxArtist
,CapsuleArtist
,ConeArtist
,CylinderArtist
,PolygonArtist
,PolyhedronArtist
,SphereArtist
,TorusArtist
andVectorArtist
. - Added support for CLR generic dictionaries to the
compas.data
decoders. - Added
Graph.node_sample
,Graph.edge_sample
. - Added
Halfedge.vertex_sample
,Halfedge.edge_sample
,Halfedge.face_sample
. - Added
Halfface.vertex_sample
,Halfface.edge_sample
,Halfface.face_sample
,Halfface.cell_sample
. - Added
Mesh.from_meshgrid
.
- Fixed bug in
compas_blender.draw_texts
. - Changed
compas_rhino.artists.BaseArtist
tocompas_rhino.artists.RhinoArtist
. - Changed
compas_blender.artists.BaseArtist
tocompas_blender.artists.BlenderArtist
. - Changed default resolution for shape discretisation to 16 for both u and v where relevant.
- Changed base class of
compas.geometry.Primitive
andcompas.geometry.Shape
tocompas.geometry.Geometry
. compas_blender.artists.RobotModelArtist.collection
can be assigned as a Blender collection or a name.- Generalized the parameter
color
ofcompas_blender.draw_texts
and various label drawing methods. - Changed
compas.IPY
tocompas.RHINO
inorientation_rhino
. - Changed
planarity
torequires_extra
for pip installations. - Fixed bug in handling of ngonal meshes in
compas_ghpython
artists / drawing functions.
- Added pluggable function
trimesh_slice
incompas_rhino
. - Added equality comparison for pointclouds.
- Added
compas.data.is_sequence_of_uint
. - Added general plotter for geometry objects and data structures based on the artist registration mechanism.
- Added support for multimesh files to OBJ reader/writer.
- Added support for attaching and detaching meshes in
compas.robots.RobotModelArtist
and drawing them. - Added
reshape
incompas.utilities
. - Added
compas.geometry.NurbsCurve
. - Added
compas.geometry.NurbsSurface
. - Added
compas_rhino.conversions
. - Added
compas_rhino.geometry.RhinoBox
. - Added
compas_rhino.geometry.RhinoCone
. - Added
compas_rhino.geometry.RhinoCylinder
. - Added
compas_rhino.geometry.RhinoPolyline
. - Added
compas_rhino.geometry.RhinoSphere
. - Added basic implementation of
compas.datastructures.Assembly
. - Added
meshes
method to artists ofcompas.robots.RobotModel
. - Added
FrameArtist
class tocompas_blender
.
compas.robots.Axis
is now normalized upon initialization.- Fixed a bug in
compas.numerical.dr_numpy
when using numpy array as inputs. - Allowed for varying repository file structures in
compas.robots.GithubPackageMeshLoader
. - Fixed data schema of
compas.geometry.Polyline
,compas.geometry.Polygon
,compas.geometry.Pointcloud
. - Fixed
Configuration.from_data
to be backward-compatible with JSON data generated beforecompas 1.3.0
. - Changed
compas_rhino.drawing.draw_breps
to assume provided polygon is closed and automatically add missing corner to polycurve constructor. - Changed conversion of edges and faces to uniques keys for the data dicts to use the string representation of a sorted tuple of identifiers.
- Added
dtype
to JSON decoding error message. - Moved
compas.datastructures.mesh.core.halfedge.HalfEdge
tocompas.datastructures.halfedge.halfedge.HalfEdge
- Moved
compas.datastructures.network.core.graph.Graph
tocompas.datastructures.graph.graph.Graph
.
- Removed
compas.datastructures.mesh.core.mesh.BaseMesh
. - Removed
compas.datastructures.BaseNetwork
.
- Fixed bundling of ghuser components.
compas.robots.Axis
is now normalized upon initialization.- Fixed a bug in
compas.numerical.dr_numpy
when using numpy array as inputs. - Allowed for varying repository file structures in
compas.robots.GithubPackageMeshLoader
. - Remove default implementation of
__str__
for data objects.
- Fixed
Configuration.from_data
to be backward-compatible with JSON data generated beforecompas 1.3.0
.
- Fixed bundling of ghuser components.
- Added pluggable function
trimesh_gaussian_curvature
incompas_rhino
. - Added pluggable function
trimesh_mean_curvature
incompas_rhino
. - Added pluggable function
trimesh_principal_curvature
incompas_rhino
. - Added
copy
anddeepcopy
functionality tocompas.robots.Configuration
. - Added
compas.data.is_sequence_of_int
andcompas.data.is_sequence_of_float
. - Added
compas.data.Data.JSONSCHEMANAME
. - Added
kwargs
to all child classes ofcompas.data.Data
. - Added grasshopper component for drawing a frame.
- Added
draw_origin
anddraw_axes
. - Added
compas.PY2
.
- Allow str or int as joint type in
compas.robots.Joint
constructor. - Moved json schemas to
compas.data
. - Nested json schemas.
compas_ghpython.artists.FrameArtist.draw
now draws a Rhino Plane.- Fixed bugs in
compas.geometry.bestfit_circle_numpy
. - Changed directory where ghuser components are installed.
- Added ghuser components directory to those removed by the
clean
task. - Clean up the ghuser directory before building ghuser components.
- Exposed function
draw_breps
incompas_rhino.utilities
; example added. - Added
join
flag to functiondraw_breps
incompas_rhino.utilities
- Fixed bug in
compas.geometry.distance.closest_point_on_segment_xy
. - Fixed bug in Rhino implementations of
trimesh
curvature functions.
- Added
compas.topology.astar_lightest_path
. - Added JSONSCHEMA definitions for primitives and transformations.
- Added schema implementation to primitives and transformations.
- Added JSONSCHEMA implementation to primitives and transformations.
- Added
compas.data.is_int3
,compas.data.is_float3
,compas_data.is_float4x4
.
- Extended
compas.topology.astar_shortest_path
to work oncompas.datastructures.Mesh
andcompas.datastructures.Network
. - Fixed
compas.data.Data.to_jsonstring
. - Changed
compas.data.Data.data.setter
to raiseNotImplementedError
. - Changed annotations of
compas_blender.artists.BaseArtist
. - Fixed
__repr__
for primitives, shapes, transformations.
- Removed duplicate cases from
compas.data.DataEncoder
.
- Added infrastructure for building Grasshopper components for compas packages.
- Added first Grasshopper component: COMPAS Info.
- Added Grasshopper components for JSON serialization.
- Added
compas_rhino.utilities.set_object_attributes
. - Added
from_jsonstring
andto_jsonstring
. - Added Grasshopper component documentation.
- Moved json dump and load to data package.
- Changed parameters and return value of
compas_rhino.utilities.get_object_attributes
. - Removed
doctest
execution code from src. - Removed
if __name__ == '__main__'
section from src. - Optimized the conversion of Rhino Meshes to COMPAS meshes.
- Fix issue with GH User symlink created as directory symlink on some cases.
- Added support for file-like objects, path strings and URLs to most of the methods previously accepting only file paths, eg.
compas.datastructures.Datastructure
,compas.json_dump
,compas.json_load
, etc. - Added
pretty
parameter tocompas.json_dump
andcompas.json_dumps
. - Added
compas.data.Data
as base object for all data objects (geometry, data structures, ...).
- Moved
compas.utilities.DataEncoder
tocompas.data
. - Moved
compas.utilities.DataDecoder
tocompas.data
. - Changed base object of
compas.datastructures.Datastructure
tocompas.data.Data
. - Changed base object of
compas.geometry.Primitive
tocompas.data.Data
. - Renamed
Base
toData
for all data based classes. - Fixed calculation of triangle normals.
- Fixed calculation of triangle areas.
- Added Python 3.9 support.
- Added crease handling to catmull-clark subdivision scheme.
- Added
compas_ghpython.get_grasshopper_userobjects_path
to retrieve User Objects target folder. - Added direction option for mesh thickening.
- Added check for closed meshes.
- Added 'loop' and 'frames' to schemes of
compas.datastructures.mesh.subdivision.mesh_subdivide
.
- Fixed box scaling.
- Fixed a bug in
Polyline.divide_polyline_by_length
related to a floating point rounding error. - Fixed bug in
RobotModel.zero_configuration
. - Fixed bug in
compas.geometry.normals
. - Fixed bug in
compas.datastructures.mesh.subdivision.mesh_subdivide_frames
.
- Added a
invert
andinverted
methodcompas.geometry.Vector
. - Added unetary
__neg__
operator forcompas.geometry.Vector
. - Added
compas.robots.Configuration
, moved fromcompas_fab
.
- Fixed rhino packages installation to remove duplicates
- Fixed API removals from 1.0.0 -> 1.2.0
- Added
divide_polyline
,divide_polyline_by_length
,Polyline.split_at_corners
andPolyline.tangent_at_point_on_polyline
. - Added the magic method
__str__
tocompas.geoemetry.Transformation
. - Added
redraw
flag to thecompas_rhino
methodsdelete_object
,delete_objects
andpurge_objects
. - Added the
__eq__
method forcompas.geometry.Circle
andcompas.geometry.Line
. - Added support for Pylance through static API definitions.
- Added
halfedge_strip
method tocompas.datastructures.HalfEdge
.
- Fixed bug where mimic joints were considered configurable.
- Fixed bug where
!=
gave incorrect results in Rhino for some compas objects. - Fixed bug where
compas_rhino.BaseArtist.redraw
did not trigger a redraw. - Fixed minor bugs in
compas.geometry.Polyline
andcompas.geometry.Polygon
. - Fixed very minor bugs in
compas.geometry.Frame
andcompas.geometry.Quaternion
. - Fixed bug in
compas_rhino.objects.MeshObject.modify
. - Fixed bug in
compas_rhino.objects.MeshObject.modify_vertices
. - Fixed bug in
compas_rhino.objects.MeshObject.modify_edges
. - Fixed bug in
compas_rhino.objects.MeshObject.modify_faces
. - Fixed bug in
compas_rhino.objects.VolMeshObject.modify
. - Fixed bug in
compas_rhino.objects.VolMeshObject.modify_vertices
. - Fixed bug in
compas_rhino.objects.VolMeshObject.modify_edges
. - Fixed bug in
compas_rhino.objects.VolMeshObject.modify_faces
. - Fixed bug in
compas_rhino.objects.NetworkObject.modify
. - Fixed bug in
compas_rhino.objects.NetworkObject.modify_vertices
. - Fixed bug in
compas_rhino.objects.NetworkObject.modify_edges
. - Changed
compas_rhino.objects.inspect
tocompas_rhino.objects.inspectors
. - Changed
compas_rhino.objects.select
tocompas_rhino.objects._select
. - Changed
compas_rhino.objects.modify
tocompas_rhino.objects._modify
.
- Added
RobotModel.remove_link
,RobotModel.remove_joint
,RobotModel.to_urdf_string
, andRobotModel.ensure_geometry
. - Added Blender Python-example to the documentation section: Tutorials -> Robots
- Added
compas_blender.unload_modules
. - Added
after_rhino_install
andafter_rhino_uninstall
pluggable interfaces to extend the install/uninstall with arbitrary steps.
- Fixed bug in parameter list of function
mesh_bounding_box
bound as methodMesh.bounding_box
. - Fixed bug in
RobotModel/RobotModelArtist.update
which raised an error when the geometry had not been loaded. - Changed exception type when subdivide scheme argument is incorrect on
mesh_subdivide
. - The
compas_rhino.artist.RobotModelArtist
functionsdraw_visual
anddraw_collision
now return list of newly created Rhino object guids. - Added ability of
RobotModel.add_link
to accept primitives in addition to meshes. - Fixed bug regarding the computation of
Joint.current_origin
. - Fixed bug regarding a repeated call to
RobotModel.add_joint
. - Fixed bug in
compas_blender.RobotModelArtist.update
. - Fixed bug in
compas.datastructures.mesh_slice_plane
. - Fixed bug where initialising a
compas_blender.artists.Robotmodelartist
would create a new collection for each mesh and then also not put the mesh iton the created collection. - Changed the initialisation of
compas_blender.artists.Robotmodelartist
to include acollection
-parameter instead of alayer
-parameter to be more consistent with Blender's nomenclature. - Used a utility function from
compas_blender.utilities
to create the collection if none exists instead of using a new call to a bpy-method.
- Added
compas.datastructures.mesh.trimesh_samplepoints_numpy
.
- Fix Rhino7 Mac installation path
- Separate
compas.robots.Joint.origin
into the static parent-relativeorigin
and the dynamic world-relativecurrent_origin
. - Separate
compas.robots.Joint.axis
into the static parent-relativeaxis
and the dynamic world-relativecurrent_axis
. - Fixed support to convert back and forth between
compas.datastructures.Graph
and NetworkXDiGraph
.
- Fix bug in
compas.datastructures.Network.neighborhood
.
- Changed
compas._os.prepare_environment
to prepend environment paths (fixes problem with RPC on windows).
- Fix bug in
compas.datastructures.AttributesView
.
- Added
is_osx
.
- Fix default namespace handling in URDF documents.
- Allow custom/unknown attributes in URDF
Dynamics
element. - Moved os functions from
compas
tocompas._os
. - Fixed bug in
is_linux
. - Changed
is_windows
to work for CPython and IronPython. - Changed
compas._os
functions to useis_windows
,is_mono
,is_osx
. - Changed IronPython checks to
compas.IPY
instead ofcompas.is_ironpython
. - Fixed data serialization in
compas.datastructures.HalfFace
.
- Removed all implementations of
draw_collection
.
- Added URDF and XML writers.
- Added
compas.robots.RobotModel.to_urdf_file
. - Added
compas.files.URDF.from_robot
.
- Changed implementation of
Mesh.vertices_on_boundaries
to account for special cases. - Changed
Mesh.edges_on_boundaries
corresponding toMesh.vertices_on_boundaries
. - Changed
Mesh.faces_on_boundaries
corresponding toMesh.vertices_on_boundaries
. - Changed
Mesh.vertices_on_boundary
to return vertices of longest boundary. - Changed
Mesh.edges_on_boundary
to return edges of longest boundary. - Changed
Mesh.faces_on_boundary
to return faces of longest boundary. - Fixed default value for
compas.robots.Axis
. - Changed surface to mesh conversion to include cleanup and filter functions, and use the outer loop of all brep faces.
- Added
remap_values
tocompas_utilities
. - Added
compas.datastructures.mesh_slice_plane
. - Added
compas.json_dump
,compas.json_dumps
,compas.json_load
,compas.json_loads
.
- Fixed bug in
compas.datastructures.Network.delete_node
. - Fixed bug in
compas.datastructures.Network.delete_edge
. - Fixed bug in select functions for individual objects in
compas_rhino.utilities
. - Fixed bug in
compas.datastructures.mesh_merge_faces
. - changed base of
compas.geometry.Transformation
tocompas.base.Base
.
- Removed
compas.datastructures.mesh_cut_by_plane
.
- Fixed bug in
compas.geometry.is_coplanar
. - Fixed bug in
compas.datastructures.mesh_merg_faces
. - Fixed bug in
compas.robots.RobotModel.add_link
. - Fixed bug in
compas.datastructures.Volmesh.cell_to_mesh
.
- Fixed bug in
__getstate__
,__setstate__
ofcompas.base.Base
. - Fixed bug in
compas_rhino.artists.MeshArtist
andcompas_rhino.artists.NetworkArtist
. - Changed length and force constraints of DR to optional parameters.
- Removed
ABCMeta
from the list of base classes of several objects in compas.
- Added
compas_rhino.artists.BoxArtist.draw_collection
. - Added option to show/hide vertices, edges, and faces in
compas_rhino.artists.CapsuleArtist.draw
. - Added option to show/hide vertices, edges, and faces in
compas_rhino.artists.ConeArtist.draw
. - Added option to show/hide vertices, edges, and faces in
compas_rhino.artists.CylinderArtist.draw
. - Added option to show/hide vertices, edges, and faces in
compas_rhino.artists.PolyhedronArtist.draw
. - Added option to show/hide vertices, edges, and faces in
compas_rhino.artists.SphereArtist.draw
. - Added option to show/hide vertices, edges, and faces in
compas_rhino.artists.TorusArtist.draw
. - Added option to show/hide vertices, edges, and faces in
compas_rhino.artists.PolygonArtist.draw
. - Added option to show/hide vertices, edges, and faces in
compas_rhino.artists.PolylineArtist.draw
. - Added option to show/hide vertices, edges, and faces in
compas_rhino.artists.VectorArtist.draw
.
- Changed implementation of
compas_rhino.artists.BoxArtist.draw
. - Fixed bug in
compas.geometry.Capsule
. - Fixed bug in
compas.geometry.Cone
. - Changed
compas_rhino.draw_mesh
to support Ngons if available. - Fixed bug in polyhedron data.
- Removed
compas_rhino.artists.PointArtist.draw_collection
. - Removed
compas_rhino.artists.CircleArtist.draw_collection
. - Removed
compas_rhino.artists.LineArtist.draw_collection
.
- Added binary STL writer.
- Added constructor
from_euler_angles
tocompas.geometry.Transformation
. - Added method for adding objects from a list to
compas_plotters.GeometryPlotter
. - Added
compas_rhino.artists.BoxArtist
. - Added
compas_rhino.artists.CapsuleArtist
. - Added
compas.geometry.Polyhedron.from_halfspaces
andcompas.geometry.Polyhedron.from_planes
. - Added
compas.geometry.is_point_behind_plane
andcompas.geometry.is_point_in_polyhedron
. - Added
centroid
andbounding_box
properties tocompas.geometry.Pointcloud
. - Added
edges
property tocompas.geometry.Box
. - Added
edges
property tocompas.geometry.Polyhedron
. - Added
compas.datastructures.network_smooth_centroid
.
- Fixed bug in handling of keys in edge attribute functions of
compas.datastructures.Halfedge
. - Fixed bug in
compas.geometry.Polygon.lines
. - Fixed bug in
compas.geometry.Polyline.lines
. - Changed
compas.geometry.Shape.to_vertices_and_faces
toabstractmethod
. - Fixed bug in magic methods of
compas.geometry.Box
. - Fixed bug in
compas.geometry.Box.contains
. - Fixed bug in
delete_vertex
anddelete_face
incompas.datastructures.Halfedge
. - Fixed bug in
delete_node
ofcompas.datastructures.Graph
. - Fixed bug in
summary
method ofcompas.datastructures.Graph
andcompas.datastructures.Halfedge
.
- Added
RobotModelArtist
tocompas_rhino
,compas_ghpython
andcompas_blender
. - Added
ToolModel
. - Added
compas.geometry.Pointcloud
. - Added
compas.utilities.grouper
. - Added
PolygonArtist
,PolylineArtist
toGeometryPlotter
.
Mesh
takes name ofShape
inMesh.from_shape
.- Fixed
zoom_extents
ofGeometryPlotter
.
- Removed
SegmentArtist
fromcompas_plotters
.
- Added functionality to the RPC service to automatically reload modules if a change is detected.
- Added
compas_plotters.geometryplotter.GeometryPlotter
for COMPAS geometry objects.
- Changed
compas.base.Base.dtype
to property. - Changed JSON schema to draft 7.
- Changed version processing to
distutils.version.LooseVersion
.
- Added tests for halfedge data schemas.
- Fixed RGB color processing in
compas.utilities.color_to_colordict
. - Fixed Blender object and dat amanagement to avoid
malloc
problems. - Updated Blender data structure artists.
- Changed Blender unused data clearing to also clear collections.
- Fixed JSON data validation of base COMPAS object.
- Fixed bug in
compas.geometry.Box.vertices
. compas.scene.SceneObject
will now track a list of drawn Objects/GUIDs.
- Added abstract
DATASCHEMA
tocompas.base.Base
. - Added abstract
JSONSCHEMA
tocompas.base.Base
. - Added
validate_data
tocompas.base.Base
. - Added
validate_json
tocompas.base.Base
. - Added implementation of
DATASCHEMA
tocompas.datastructures.Halfedge
. - Added implementation of
JSONSCHEMA
tocompas.datastructures.Halfedge
. - Added
NodeAttributeView
. - Added implementation of
DATASCHEMA
tocompas.datastructures.Graph
. - Added implementation of
JSONSCHEMA
tocompas.datastructures.Graph
. - Added
compas.rpc.Proxy.restart_server
. - Added
compas_rhino.objects.NetworkObject
. - Added constructors
from_matrix
andfrom_rotation
tocompas.geometry.Quaternion
. - Added
draw_collection
methods to Grasshopper artists.
- Updated naming conventions in
compas.datastructures.HalfFace
andcompas.datastructures.VolMesh
- Moved
compas.datastructures.Datastructure
tocompas.datastructures.datastructure
. - Changed base class of
compas.datastructures.Datastructure
tocompas.base.Base
. - Changed
from_json
toto_json
of meshes to use encoders and decoders. - Moved
MutableMapping
tocompas.datastructures._mutablemapping
. - Moved attribute views to
compas.datastructure.attributes
.
- Removed
from_json
,to_json
,to_data
,copy
,transformed
from primitives, defaulting to the base implementation incompas.geometry.Primitive
. - Removed
from_json
,to_json
,to_data
,copy
,__str__
, from datastructures, defaulting to the base implementation incompas.datastructure.Datastructure
.
- Added plugin system based on decorators:
compas.plugins.pluggable
&compas.plugins.plugin
. - Added
compas_rhino
implementation of the boolean operation pluggable interfaces (union/difference/intersection). - Added
compas.datastructures.Mesh.transform_numpy
. - Added
PluginNotInstalledError
. - Added
compas.geometry.booleans
. - Added tolerance parameter to angle functions.
- Added support for Rhino 7 in install/uninstall routines.
- Added install/uninstall for Rhino plugins (with support for Rhino 7).
- Added base class for all COMPAS objects
compas.base.Base
. - Added base class for all Rhino objects representing COMPAS objects
compas_rhino.objects.Object
. - Added mesh object representing COMPAS meshes in Rhino
compas_rhino.objects.MeshObject
. - Added the methods
to_data
andfrom_data
tocompas.robots.RobotModel
.
- Restructure and reorganize volmesh datastructure
- Fixed scaling bug in
compas.geometry.Sphere
- Fixed bug in
compas.datastructures.Mesh.add_vertex
. - Fixed performance issue affecting IronPython when iterating over vertices and their attributes.
- Changed return value of drawing functions of
compas_rhino.artists.MeshArtist
to list of GUID. - Changed return value of drawing functions of
compas_rhino.artists.NetworkArtist
to list of GUID. - Moved "inspectors" to
compas_rhino.objects
. - Moved "modifiers" to
compas_rhino.objects
. - Connection attempts can now be set for
compas.Proxy.start_server
using the attributeProxy.max_conn_attempts
. Scale.from_factors
can now be created from anchor frame.- Changed vertex reading of PLY files to include all property information.
- Removed CGAL based boolean implementations.
- Removed artist mixins from
compas_rhino
. - Removed
clear_
functions fromcompas_rhino.artists.MeshArtist
. - Removed
clear_
functions fromcompas_rhino.artists.NetworkArtist
. - Removed
to_data
,from_data
fromcompas_rhino.artists
. - Removed
compas_rhino.artists.BoxArtist
stub. - Removed references to "edge" dict from
compas.datastructures.VolMesh
.
- Fixed scaling bug in
compas.geometry.Sphere
- Added
compas_rhino.geometry.RhinoVector
. - Added basic mesh cutting (
compas.datastructures.Mesh.cut()
). - Added
compas.datastructures.Mesh.join(other)
. - Added
compas.geometry.argmin
andcompas.geometry.argmax
. - Added STL witer.
- Added
compas.datastructures.Mesh.to_stl
. - Added
unweld
option to obj writing.
- Fixed bug in
FaceAttributeView.__get_item__
: access to default was tried before attrs. - Fixed bug in
EdgeAttributeView.__get_item__
: access to default was tried before attrs. - Changed
VertexAttributeView.__get_item__
to follow access logic ofFaceAttributeView
. - Fixed bug in
draw_edges
incompas_rhino
'sEdgeArtist
. - Fixed bug in
draw_edges
incompas_ghpython
'sEdgeArtist
. - Fixed bug in
compas_rhino.geometry.RhinoSurface.brep_to_compas
. - Fixed bug in
compas.geometry.Box.from_bounding_box
- Fixed bug in
compas.geometry.Box.from_width_height_depth
- Fixed inconsistencies in
compas.geometry._transformations
. - Renamed
compas.geometry.Frame.to_local_coords
tocompas.geometry.Frame.to_local_coordinates
- Renamed
compas.geometry.Frame.to_world_coords
tocompas.geometry.Frame.to_world_coordinates
- Renamed
compas.geometry.Transformation.change_basis
tocompas.geometry.Transformation.from_change_of_basis
- Renamed
compas.geometry.matrix_change_basis
tocompas.geometry.matrix_from_change_of_basis
- Renamed
compas.geometry.Projection.orthogonal
tocompas.geometry.Projection.from_plane
and changed input params - Renamed
compas.geometry.Projection.parallel
tocompas.geometry.Projection.from_plane_and_direction
and changed input params - Renamed
compas.geometry.Projection.perspective
tocompas.geometry.Projection.from_plane_and_point
and changed input params - Changed constructor of all
compas.geometry.Transformation
and derivatives. Preferred way of creating anycompas.geometry.Transformation
is with the classmethodsfrom_*
- Changed params (point, normal) into plane for
compas.geometry.matrix_from_parallel_projection
,compas.geometry.matrix_from_orthogonal_projection
andcompas.geometry.matrix_from_perspective_projection
- Extended glTF support.
- Added classmethod
from_geometry
toRhinoMesh
- Added
intersection_sphere_line
- Added
intersection_plane_circle
- Added
tangent_points_to_circle_xy
- Added basic OBJ file writing.
- Added
Mesh.to_obj
.
- Fixed bug in
Box.from_bounding_box
. - Updated Blender installation docs for latest release.
- Fixed
robot.forward_kinematics()
when requested for base link. - Fixed bug in
to_compas
conversion of Rhino meshes. - Fixed bug where
compas.geometry.Primitive
derived classes cannot be serialized by jsonpickle.
- Added classmethod
from_geometry
toRhinoMesh
. - Added conversion to polygons to
BaseMesh
. - Re-added length, divide, space methods of
RhinoCurve
. - Added basic OFF file writing.
- Added basic PLY file writing.
- Added
Mesh.to_ply
. - Added
Mesh.to_off
.
- Fixed object naming in artists of
compas_ghpython
. - Resizing of Rhino property form.
- Fixed orientation of
RhinoSurface
discretisation. - Check for existence of object in Rhino purge functions.
- Fixed bug in mesh boundary functions.
- Added algorithm for pulling points onto mesh.
- Added base ellipse class to geometry primitives.
- Added circle artist to plotters.
- Added mesh artist to plotters.
- Added ellipse artist to plotters.
- Added support for robot mimicking joints.
- Fixed bugs in
compas_rhino.artists.NetworkArtist
. - Add conda executable path to
compas_bootstrapper.py
.
- Added optional class parameter to
RhinoMesh.to_compas
. - Added max int key to serialization of graph.
- Changed name of base mesh implementation to
BaseMesh
. - Changed name of base network implementation to
BaseNetwork
. - Fixed bug in face finding function.
- Removed optional requirements from setup file.
- Removed parameters from default polyhedron constructor.
- Added glTF support.
- Added graph and halfedge data structures.
- Added Rhino line geometry.
- Added Rhino plane geometry.
- Fixed
compas_hpc
import problem. - Split up topology part from geometry part for network and mesh.
- Split up network and mesh naming conventions.
- Reworked network face cycle finding.
- Updated mesh from lines.
- Updated network plotter in correspondence with network.
- Integrated mixin functionality and removed mixins.
- Meshes are now initially hidden in
compas_blender.artists.RobotModelArtist
. compas_blender.artists.RobotModelArtist.draw_visual
andcompas_blender.artists.RobotModelArtist.draw_collision
now show those meshes.- Renamed the method
draw_geometry
ofcompas.robots.base_artist.RobotModelBaseArtist
tocreate_geometry
.
- Removed parallelization from network algorithms.
- Removed numba based dr implementations.
- Added
to_compas
tocompas_rhino.geometry.RhinoPoint
. - Added
to_compas
tocompas_rhino.geometry.RhinoLine
. - Added
to_compas
tocompas_rhino.geometry.RhinoCurve
. - Added
to_compas
tocompas_rhino.geometry.RhinoMesh
. - Added
brep_to_compas
tocompas_rhino.geometry.RhinoSurface
. - Added
uv_to_compas
tocompas_rhino.geometry.RhinoSurface
. - Added
heightfield_to_compas
tocompas_rhino.geometry.RhinoSurface
. - Added
compas.datastructures.mesh_pull_points_numpy
.
- Moved
compas_rhino.conduits
intocompas_rhino.artists
. - Fixed bug in
compas.datastructures.Mesh.edges_where
. - Fixed bug in
compas.datastructures.Mesh.faces_where
. - Fixed bug in
compas.datastructures.Mesh.edge_attributes
. - Fixed bug in
compas.datastructures.Mesh.face_attributes
. - Fixed bug in
compas.datastructures.Mesh.edges
. - Fixed bug in
compas.datastructures.Mesh.faces
. - Fixed bug in
compas.datastructures.Mesh.offset
.
- Removed deprecated
compas.geometry.xforms
. - Removed deprecated
compas_rhino.helpers
. - Removed
compas_rhino.constructors
.
- Added
compas.datastructures.mesh.Mesh.any_vertex
. - Added
compas.datastructures.mesh.Mesh.any_face
. - Added
compas.datastructures.mesh.Mesh.any_edge
. - Added
compas.datastructures.mesh.Mesh.vertex_attribute
. - Added
compas.datastructures.mesh.Mesh.vertex_attributes
. - Added
compas.datastructures.mesh.Mesh.vertices_attribute
. - Added
compas.datastructures.mesh.Mesh.vertices_attributes
. - Added
compas.datastructures.mesh.Mesh.edge_attribute
. - Added
compas.datastructures.mesh.Mesh.edge_attributes
. - Added
compas.datastructures.mesh.Mesh.edges_attribute
. - Added
compas.datastructures.mesh.Mesh.edges_attributes
. - Added
compas.datastructures.mesh.Mesh.face_attribute
. - Added
compas.datastructures.mesh.Mesh.face_attributes
. - Added
compas.datastructures.mesh.Mesh.faces_attribute
. - Added
compas.datastructures.mesh.Mesh.faces_attributes
. - Added mutable attribute view for mesh vertex/face/edge attributes.
- Default Mesh vertex, face, edge attributes are no longer copied and stored explicitly per vertex, face, edge, repesctively.
- Updating default attributes now only changes the corresponding default attribute dict.
- Updated
mesh_quads_to_triangles
to copy only customised face attributes onto newly created faces. - Fixed bug in
compas.geometry.is_point_in_circle
. - Fixed bug in
compas.geometry.is_polygon_convex
. - Fixed bug in
compas.geometry.Polygon.is_convex
. - Renamed
compas.datastructures.Mesh.has_vertex
tocompas.datastructures.Mesh.is_vertex
. - Renamed
compas.datastructures.Mesh.has_face
tocompas.datastructures.Mesh.is_face
. - Split
compas.datastructures.Mesh.has_edge
intocompas.datastructures.Mesh.is_edge
andcompas.datastructures.Mesh.is_halfedge
.
- Removed
compas.datastructures.mesh.Mesh.get_any_vertex
. - Removed
compas.datastructures.mesh.Mesh.get_any_face
. - Removed
compas.datastructures.mesh.Mesh.get_any_edge
. - Removed
compas.datastructures.mesh.Mesh.get_vertex_attribute
. - Removed
compas.datastructures.mesh.Mesh.get_vertex_attributes
. - Removed
compas.datastructures.mesh.Mesh.get_vertices_attribute
. - Removed
compas.datastructures.mesh.Mesh.get_vertices_attributes
. - Removed
compas.datastructures.mesh.Mesh.get_edge_attribute
. - Removed
compas.datastructures.mesh.Mesh.get_edge_attributes
. - Removed
compas.datastructures.mesh.Mesh.get_edges_attribute
. - Removed
compas.datastructures.mesh.Mesh.get_edges_attributes
. - Removed
compas.datastructures.mesh.Mesh.get_face_attribute
. - Removed
compas.datastructures.mesh.Mesh.get_face_attributes
. - Removed
compas.datastructures.mesh.Mesh.get_faces_attribute
. - Removed
compas.datastructures.mesh.Mesh.get_faces_attributes
. - Removed
compas.datastructures.mesh.Mesh.set_vertex_attribute
. - Removed
compas.datastructures.mesh.Mesh.set_vertex_attributes
. - Removed
compas.datastructures.mesh.Mesh.set_vertices_attribute
. - Removed
compas.datastructures.mesh.Mesh.set_vertices_attributes
. - Removed
compas.datastructures.mesh.Mesh.set_edge_attribute
. - Removed
compas.datastructures.mesh.Mesh.set_edge_attributes
. - Removed
compas.datastructures.mesh.Mesh.set_edges_attribute
. - Removed
compas.datastructures.mesh.Mesh.set_edges_attributes
. - Removed
compas.datastructures.mesh.Mesh.set_face_attribute
. - Removed
compas.datastructures.mesh.Mesh.set_face_attributes
. - Removed
compas.datastructures.mesh.Mesh.set_faces_attribute
. - Removed
compas.datastructures.mesh.Mesh.set_faces_attributes
. - Removed
print
statement from curvature module.
compas_rhino.artists.ShapeArtist
as base artist for all shape artists.- Added
layer
,name
,color
attributes tocompas_rhino.artists.PrimitiveArtist
. - Added
layer
,name
attributes tocompas_rhino.artists.ShapeArtist
. - Added
layer
,name
attributes tocompas_rhino.artists.MeshArtist
. - Added
clear_layer
method tocompas_rhino.artists.PrimitiveArtist
. - Added
clear_layer
method tocompas_rhino.artists.ShapeArtist
. - Added
clear_layer
method tocompas_rhino.artists.MeshArtist
.
- Renamed
compas.utilities.maps.geometric_key2
togeometric_key_xy
. - Fixed bug in mirror functions.
- Fixed mirroring tests.
- Moved
BaseMesh
,matrices
,operations
tocompas.datastructures.mesh.core
. - Added
transform
andtransformed
(and others) toMesh
.
compas_rhino.artists.BoxArtist
- Removed
layer
attribute fromcompas_rhino.artists.Artist
. - Removed
clear_layer
method fromcompas_rhino.artists.Artist
.
- File reading functions for ascii files in
compas.files
has moved from the individual reader classes to a new parent class,BaseReader
.
- Rebased
compas_rhino.artists.MeshArtist
on new-style artistcompas_rhino.artists.Artist
. - Renamed
compas_rhino.artists.MeshArtist.defaults
tocompas_rhino.artists.MeshArtist.settings
. - Changed usage of (nonexisting)
compas_rhino.get_object
tocompas_rhino.get_objects
. - Integrated vertex, face, edge mixins into
compas_rhino.artists.MeshArtist
. - Integrated vertex, edge mixins into
compas_rhino.artists.NetworkArtist
. - Rebased
compas_rhino.artists.VolMeshArtist
oncompas_rhino.artists.MeshArtist
.
- Added DOI to bibtex entry.
- Added conversion for old mesh JSON data.
- Indirectly changed mesh serialization to JSON (by changing key conversion and moving conversion into JSON methods).
- Moved conversion of int keys of mesh data to strings for json serialization to from/to json.
- Moved from/to methods for mesh into mesh definition.
- Subdivision algorithms use fast mesh copy.
- Support for non-integer vertex and face identifiers in mesh.
- Added
mesh_subdivide_frames
tocompas.datastructures.subdivision
- Added
intersection_segment_polyline
tocompas.geometry.intersections
- Added
intersection_segment_polyline_xy
tocompas.geometry.intersections
- Added
from_sides_and_radius
tocompas.geometry.Polygon
- Reworked docstrings of methods in
compas.geometry.queries
- Set default
tol
to1e-6
incompas.geometry.queries
- Added inherited methods to class docs.
- Added data structure mixins to the docs.
- Added
data
andfrom_data
tocompas.geometry.Polyhedron
- Added explicit support for collections to
compas_blender
- Bottom face of cylinder shape should be flipped.
- Face reading mechanism of OFF reader.
compas.geometry.Box
is now centred at origin by default.
- Removed
compas.remote
because it does not provide an advatage overcompas.rpc
.
- Added
compas_rhino.etoforms.ImageForm
. - Added
doc8
as dev requirement.
- Changed
compas_rhino.install_plugin
to use only the plugin name, w/o the GUID. - Changed
iterable_like
to prevent exhausting generators passed as targets.
- Removed
compas_rhino.ui.Controller
. - Removed
compas_rhino.ui.Button
.
- Added factory methods for
compas_rhino.artists._Artist
- Set
compas_rhino.artists.FrameArtist
layer clear to false by default. - Wrapped internals of RPC dispatch method in try-except to catch any import problems and report back on the client side.
- Stopping of HTTP server (
compas.remote
) is now handled properly through separate thread. - Fixed mutable init parameters of
RobotModel
- Fixed bug in
mesh_quads_to_triangles
that caused face data to be deleted even when not necessary. - Switched to
compas.geometry.KDTree
as fallback forscipy.spatial.cKDTree
instead of RhinoRTree
because it currently fails.
- Added
iterable_like
tocompas.utilities.itertools_
- Added
compas.geometry.icp_numpy
for pointcloud alignment using ICP. - Added RPC command-line utility:
$ compas_rpc {start|stop} [--port PORT]
- Added
__version__
tocompas_plotters
. - Added
compas_plotters
to.bumpversion.cfg
. - Added
Colormap
tocompas.utilities
. - Added
is_line_line_colinear()
tocompas.geometry
- Added link to Github wiki for devguide.
- Added pointcloud alignment example to docs.
- Show git hash on
compas.__version__
if installed from git. - Added
autopep8
to dev requirements. - Added methods
add_joint
andadd_link
toRobotModel
- Added support for geometric primitives to JSON data encoder and decoder.
- Added support for
data
to all geometric primitives.
- Docs are only deployed to github pages for tagged commits.
- Fixing printing issue with
compas.geometry.Quarternion
in ironPython. - Fixed a missing import in
compas.geometry.Polygon
. - Removed unused imports in
compas.geometry.Polyline
. - Adjusted
compas.geometry.Quarternion.conjugate()
to in-place change, addedcompas.geometry.Quarternion.conjugated()
instead which returns a new quarternion object. - Fixed
rotation
property ofTransformation
. - Simplified plugin installation (use plugin name only, without GUID).
- Bind RPC server to
0.0.0.0
instead oflocalhost
. - Fixed different argument naming between Rhino5 and Rhino6 of
rs.LayerVisible()
incompas_rhino.utilities.objects
.
- Added method for computing the determinant of the matrix of a transformation
compas.geometry.Transformation.determinant
. - Added method for transposing (the matrix of) a transformation in-place
compas.geometry.Transformation.transpose
. - Added method creating a transposed copy of a transformation
compas.geometry.Transformation.transposed
. - Added method for invertig (the matrix of) a transformation in-place
compas.geometry.Transformation.invert
. - Added
compas.geometry.Transformation.inverted
as an alias forcompas.geometry.Transformation.inverse
. - Added method creating a copy of a transformation instance with a given transformation concatenated
compas.geometry.Transformation.concatenated
. - Added method
to_vertices_and_faces
to all the classes inheriting fromcompas.geometry.Shape
to create aMesh
representation of them.
- Changed
compas.geometry.Transformation.inverse
to return an inverted copy of the transformation. - Changed
compas.geometry.Transformation.decompose
tocompas.geometry.Transformation.decomposed
. - Changed
compas.geometry.Transformation.concatenate
to add another transformation to the transformation instance.
- Added
compas.geometry.Point.transform_collection
andcompas.geometry.Point.transformed_collection
. - Added
compas.geometry.Vector.transform_collection
andcompas.geometry.Vector.transformed_collection
. - Added
compas.geometry.Line.transform_collection
andcompas.geometry.Line.transformed_collection
. - Added support for new Python plugin location for Rhino 6.0 on Mac.
- Added
compas.geometry.bestfit_frame_numpy
- Fixed transformation of start and end point of
compas.geometry.Line
to update the point objects in place. - Fixed return value of
compas.numerical.pca_numpy
to return mean not as nested list.
- Added
matrix_change_basis
,Transformation.change_basis
- Added
matrix_from_frame_to_frame
- Added non-numpy versions of
global_coords
,local_coords
- Added static method
Frame.local_to_local_coords
- Added
__getitem__
,__setitem__
and__eq__
toQuaternion
- Added
Vector.scaled
andVector.unitized
- Added
transform_frames
and respective helper functionsdehomogenize_and_unflatten_frames
,homogenize_and_flatten_frames
- Added
transform_frames_numpy
and respective helper functionsdehomogenize_and_unflatten_frames_numpy
,homogenize_and_flatten_frames_numpy
- Renamed
global_coords_numpy
andlocal_coords_numpy
tolocal_to_world_coords_numpy
andworld_to_local_coords_numpy
. - Changed parameters
origin
uvw
oflocal_to_world_coords_numpy
andworld_to_local_coords_numpy
toframe
. - Fixed some returns of
Frame
andRotation
to useVector
orQuaternion
- Renamed methods
Frame.represent_point/vector/frame_in_global_coordinates
andFrame.represent_point/vector/frame_in_local_coordinates
toFrame.to_local_coords
andFrame.to_world_coords
.
- Fixed unguarded import of
numpy
based transformations in mesh package.
- Added test section for
compas.geometry.transformations
- Added
tol
parameter toqueries.is_colinear
- Added compas rhino installer for Rhino Mac 6.0
compas_rhino.__init__
. - Added oriented bounding box for meshes
compas.datastructures.mesh_oriented_bounding_box_numpy
. - Added full testing functions for
compas.datastructures.mesh
- Added
draw_mesh
tocompas_ghpython.artists.MeshArtist
- Generate sphinx documentation from markdown files in repo root for top level sections.
- Merged
compas.geometry.xforms
intocompas.geometry.transformations
- Fixed
AttributeError: 'Mesh' object has no attribute 'neighbors'
- Fixed Key error with
Mesh.boundary()
- Extended
offset_polygon
andoffset_polyline
to handle colinear segments - Fixed unsorted mesh vertex coordinates
xyz
incompas_viewers.viewer.MeshView
- Changed stderr parameter from STDOUT to PIPE in
compas.rpc.Proxy
for Rhino Mac 6.0. - Fixed import of
delaunay_from_points
inMesh.from_points
. - More control over drawing of text labels in Rhino.
- Extension of
face_vertex_descendant
andface_vertex_ancestor
inMesh
. - Changed the name and meaning of the parameter
oriented
in the functionMesh.edges_on_boundary
. - Add
axis
andorigin
defaults tocompas.robots.Joint
- Unified vertices and face import order for .obj files with python2 and 3
- Changed python interpreter selection (e.g. RPC calls) to fallback to
python
ifpythonw
is not present on the system - Fixed
compas_ghpython.artists.MeshArtist
to support ngons. - Deprecate the method
draw
ofcompas_ghpython.artists.MeshArtist
in favor ofdraw_mesh
. - Fix icosahedron generation
- Examples in docs/rhino updated to work with current codebase
- Callbacks tutorial updated to work with current codebase
- Base geometric primitives on
compas.geometry.Primitive
andcompas.geometry.Shape
- Separated
numpy
based tranformations into separate module.
- Removed
compas_viewers
to separate repo. - Removed
compas_hpc
to separate repo.
- Added
compas_rhino.geometry.RhinoGeometry
to the docs. - Added
compas.remote.services
. - Added
compas.remote.services.network.py
service for handling requests for a browser-based network viewer. - Possibility to call forward_kinematics on
compas.robots.RobotModel
- Added
compas.set_precision
function for the setting the global precision used by COMPAS as a floating point number.
- Fix mesh genus in
compas.datastructures
. - Fixed missing import in
compas_rhino.geometry
. - Removed circular imports from
compas_rhino.geometry
. - Fix duplicate hfkeys in
compas.datastructures.volmesh.halffaces_on_boundary
. - Moved
compas.remote.service.py
tocompas.remote.services.default.py
. - Removed processing of face keys from data getter and setter in
compas.datastructures.Network
. - Using
SimpleHTTPRequestHandler
instead ofBaseHTTPRequestHandler
to provide basic support for serving files viaGET
. - Mesh mapping on surface without creating new mesh to keep attributes in
compas_rhino.geometry.surface.py
. - Moving functionality from
compas_fab.artists.BaseRobotArtist
tocompas.robots.RobotModel
- Fix exception of null-area polygon of centroid polygon in
compas.geometry.average.py
. - Fix loss of precision during mesh welding in
compas.datastructures.mesh_weld
.
- Include
compas_plotters
andcompas_viewers
in the build instructions. - Moved import of
subprocess
to Windows-specific situations. - Fixed document functions failing when document name is
None
. - Downgraded
numpy
requirements. - Loosened
scipy
requirements. - Default Python to
pythonw
.
- Added filter shorthand for selecting OBJ, JSON files in Rhino.
- Added
compas_plotters
- Added
compas_viewers
- Added
compas_rhino.draw_circles
and the equivalent Artist method - Add class functions to
compas.datastructures.VolMesh
. - Added
face_neighborhood
class function tocompas.datastructures.Mesh
. - Added
get_face_attributes_all
tocompas.datastructures._mixins.attributes
. - Added
get_faces_attributes_all
tocompas.datastructures._mixins.attributes
. - Added
compas.remote
package for making HTTP based Remote Procedure Calls.
- Restructure halffaces as lists in
compas.datastructures.VolMesh
. - Correctly handle
python-net
module presence during IronPython imports. - Switched to
compas.IPY
check instead oftry-except
for preventing non IronPython friendly imports. - Changed installation of compas packages to Rhino to support non-admin user accounts on Windows.
- Copy facedata in
mesh_quads_to_triangles
- Added non-imported service for
compas.remote
for starting the subprocess that runs the server.
- Removed
compas.plotters
- Removed
compas.viewers
- Based mesh drawing for Rhino on RhinoCommon rather than Rhinoscriptsyntax.
- Fixed mesh drawing for Rhino 6
- Fixed bug in RPC. The services cannot have a
pass
statement as class body.
- Added
center
property getter tocompas.geometry.Cirle
primitive - Add
astar_shortest_path
tocompas.topology.traversal
.
- Updated configuration instructions for Blender.
- Changed naming convention for drawing functions from
xdraw_
todraw_
. - Changed mesh drawing in Rhino to use separate mesh vertices per face. This makes the mesh look more "as expected" in Shaded view.
- Removed support for Python 3.5.x by setting the minimum requirements for Numpy and Scipy to
1.16
and1.2
, respectively.
- Added
draw_polylines
tocompas_rhino.artists.Artist
. - Added
color
argument tocompas_rhino.artists.MeshArtist.draw_mesh
. - Added named colors to
compas.utilities.colors.py
.
- Fix
mesh_uv_to_xyz
inRhinoSurface
. - Fix 'mesh_weld' and 'meshes_join_and_weld' against consecutive duplicates in face vertices.
- Fix setting of environment variables in
System.Diagnostics.Process
-based subprocess forXFunc
andRPC
. - Fix
XFunc
on RhinoMac. - Fix
trimesh_subdivide_loop
fromcompas.datastructures
. - Changed Numpy and Scipy version requirements to allow for Python 3.5.x.
- Removed
mixing.py
fromcompas.utilities
. - Removed
singleton.py
fromcompas.utilities
. - Removed
xscript.py
fromcompas.utilities
. - Removed
sorting.py
fromcompas.utilities
. - Removed
names.py
fromcompas.utilities
. - Removed
xfunc.py
fromcompas_rhino.utilities
, usecompas.utilities.XFunc
instead.
- Fix
XFunc
andRPC
environment activation. - Fix exception on Rhino Mac.
- Fix missing import on
compas_rhino.geometry
. - Fix
compas.geometry.offset_polygon
. - Fix installation for Rhino, related to implicit import of
matplotlib
.
- Add
Circle
andSphere
primitives tocompas.geometry
. - Add functions to
Plane
andBox
primitives. - Add functions to
compas_rhino
curve:length
andis_closed
. - Add functions to
compas_rhino
surface:kinks
,closest_point
,closest_point_on_boundaries
, and functions for mapping/remapping between XYZ and UV(0) spaces based on surface's parametrization (point_xyz_to_uv
,point_uv_to_xyz
,line_uv_to_xyz
,polyline_uv_to_xyz
,mesh_uv_to_xyz
) - Add
is_scalable
tocompas.robots.Joint
.
- Fix exception in
Plane.transform
. - Fix installer to remove old symlinks.
- Fix RPC proxy server.
- Add pretty print option to JSON formatter.
- Add remeshing based on
triangle
. - Add compatibility with ETO forms to
compas_rhino
edge modifiers.
- Fix import in
compas_rhino
vertex modifiers.
- Remove
download_image_from_remote
utility function.
- Small fixes on Rhino forms support.
- New function to join network edges into polylines:
network_polylines
. - New mesh functions:
mesh_offset
,mesh_thicken
,mesh_weld
andmeshes_join_and_weld
. - New mesh functions:
face_skewness
,face_aspect_ratio
,face_curvature
andvertex_curvature
. - New functions to get disconnected elements of
Mesh
:mesh_disconnected_vertices
,mesh_disconnected_faces
,mesh_explode
. - New functions to get disconnected elements of
Network
:network_disconnected_vertices
,network_disconnected_edges
,network_explode
. - Add statistics utility functions:
average
,variance
,standard_deviation
. - Add
binomial_coefficient
function. - Add option to create
Network
andMesh
from dictionaries of vertices and faces. - Add
face_adjacency_vertices
toMesh
- Add optional prefix to the rhino name attribute processor
- Add
mesh_move_vertices
tocompas_rhino
. - Add support for relative mesh references in URDF.
- Fix mesh centroid and mesh normal calculation.
- Refactor of drawing functions in
compas_blender
. - Fix material creation in
compas_blender
. - New default for subdivision:
catmullclark
.
- New class methods for
Polyhedron
:from_platonicsolid
andfrom_vertices_and_faces
. - Constrained and conforming Delaunay triangulations based on Triangle.
- Predicate-based filtering of vertices and edges.
mesh.geometry
for geometry-specific functions.trimesh_face_circle
inmesh.geometry
.
- Fix exception in
angle_vectors_signed
if vectors aligned - Fix exception in
Polyline.point
- Update Rhino installation merging Win32 and Mac implementations and defaulting the bootstrapper to the active python even if no CONDA environment is active during install.
- Bound mesh operations.
- Curve tangent at parameter.
- Box shape.
- Numpy-based mesh transformations.
- Option to share axes among plotters.