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
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.
- Set
jinja >= 3.0
to dev dependencies to fix docs build error.
- 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 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
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
.
- 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.