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
create_idtocompas_ghpython.utilities. (moved fromcompas_fab) - Added representation for features in
compas.datastructures.Part.
- Fixed bug that caused a new-line at the end of the
compas.HEREconstant in IronPython for Mac. - Fixed Grasshopper
draw_polylinesmethod to returnPolylineCurveinstead ofPolylinebecause the latter shows as only points. - Fixed
area_polygonthat was, in some cases, returning a negative area. - Fixed uninstall post-process.
- Fixed support for
System.Decimaldata type on json serialization. - Fixed
offset_polygonraising a TypeError when inputing a Polygon instead of a list of Points. - Simplified
compas.datastructures.Partfor more generic usage.
- Added conversion function
frame_to_rhino_planetocompas_rhino.conversions. - Added
RhinoSurface.from_frametocompas_rhino.geometry. - Added representation for trims with
compas.geometry.BrepTrim. - Added
Arctocompas.geometry. - Added
Arcconversion functions tocompas_rhino.conversions. - Added
from_spherealternative 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
RhinoBrepto use the nativeRhino.Geometrymechanism. - The normal of the cutting plane is no longer flipped in
compas_rhino.geometry.RhinoBrep. - Planar holes caused by
RhinoBrep.trimare now automatically capped. - Fixed
Polygonconstructor 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_xysecond argument to access the origin of the plane of the circle.
- Added option for per-vertex color specification to
compas_rhino.utilities.drawing.draw_mesh.
- Fixed strange point values in RhinoNurbsCurve caused by conversion
ControlPointto 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_symlinksto 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_planepluggable. - Added
compas_rhino.geometry.surfaces.new_surface_from_planeplugin. - Added
compas_rhino.geometry.RhinoSurface.intersections_with_curve.
- Fixed bug in
compas_rhino.geometry.RhinoCurve.frame_at. - Changed implementation of
compas.datastructures.mesh_planarize_facesto 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
Brepsupport withcompas.geometry.brep. - Added Rhino
Brepplugin incompas_rhino.geometry.brep. - Added boolean operations to the
compas_rhinoBrepbackend. - Added boolean operation operator overloads in
compas.geometry.Brep - Added
formattask usingblackformatter. - Added a
test_intersection_circle_circle_xyin thetest_intersections - Added split operation to
compas_rhino.geometry.Brep. - Added a
RhinoArtistincompas_rhino. - Added a
RhinoArtistincompas_ghpython.
- Based all gltf data classes on
BaseGLTFDataClass - Fixed
Color.__get___AttributeError. - Fixed
RhinoSurface.curvature_atnot returning a Vector, but a Rhino SurfaceCurvature class object - Fixed
cylinder_to_rhinoconversion to matchcompas.geometry.Cylinderlocation. - Changed identification of cylinder brep face to non-zero in
compas_rhino.conversions.cylinder.Cylinder. - Changed linter to
black. - Automatically trigger
invoke formatduringinvoke release. - Fixed bug in
intersections.intersection_circle_circle_xywhere the Circle's Plane was accessed instead of the centre. - Fixed bug in
_core.tangentwhere the Circle's Plane was accessed instead of the centre. - Fixed the
test_tangentto work with a properly defined circle RhinoBrepserialization 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_breptoBrep.from_native.
- Added
Polyline.extend,Polyline.extended,Polyline.shorten,Polyline.shortened. - Added
Data.sha256for computing a hash value of data objects, for example for comparisons during version control. - Added optional
pathparameter tocompas.rpc.Proxyto allow for non-package calls. - Added Grasshopper component to call RPC functions.
- Added alternative installation procedure for Blender on Windows.
- Added
Mesh.to_linesmethod and tests. - Added
Data.guidto JSON serialization. - Added
Data.guidto pickle state. - Added
Assembly.find_by_keyto locate parts by key. - Added
clear_edgesandclear_nodestoNetworkArtistfor ghpython. - Added
ToStringmethod toDatato ensure that Rhino/Grasshopper correctly casts objects to string.
- Set
jinja >= 3.0to 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_dualwith option of including the boundary. - Fixed type error in
compas_rhino.conversions.box_to_rhino. - Moved from
autopep8toblack - Fixed bug in
compas.utilities.linspacefor number series with high precision start and stop values. - Fixed uncentered viewbox in
Plotter.zoom_extents() - Changed
RobotModelArtists.atteched_tool_modelsto dictionary to support multiple tools. - Locked
sphinxto 4.5. - Changed
GLTFExportersuch that generated gltfs can be viewed with webxr - Fixed source directory path in
compas_ghpython.uninstallplugin. - Fixed bug in
compas_ghpython.componentsthat ignored input list of.ghuserobjects to uninstall. - Fixed conversion bug of transformed
Boxincompas_rhino.conversions
- Removed unused
compas_rhino.objects(moved tocompas_ui). - Removed unused
compas_rhino.ui(moved tocompas_ui).
- Added optional
triangulatedflag 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_polygonincompas.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_faceseverywhere. - 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.ColorDictdescriptor. - Added
allcloseto doctest fixtures. - Added
compas.colors.Color.coerceto 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_predicatetocompas.datastructures.HalfFace. - Added
faces_where,faces_where_predicate,cells_where,cells_where_predicatetocompas.datastructures.HalfFace. - Added
VolMeshArtistto registered Blender artists. - Added
3.1to supported versions for Blender installer. - Added
compas.artist.NoArtistContextError.
- Changed
compas.geometry.surfaces.nurbs.from_fillto accept up to 4 curves as input. - Changed
compas_rhino.artists.MeshArtist.drawto draw the mesh only. - Changed
compas_blender.artists.MeshArtist.drawto draw the mesh only. - Changed
compas_ghpython.artists.MeshArtist.drawto draw the mesh only. - Changed
compas_rhino.artists.MeshArtist.draw_vertexlabelsto use the colors of the vertex color dict. - Changed
compas_rhino.artists.MeshArtist.draw_edgelabelsto use the colors of the edge color dict. - Changed
compas_rhino.artists.MeshArtist.draw_facelabelsto use the colors of the face color dict. - Changed
compas_blender.artists.MeshArtist.draw_vertexlabelsto use the colors of the vertex color dict. - Changed
compas_blender.artists.MeshArtist.draw_edgelabelsto use the colors of the edge color dict. - Changed
compas_blender.artists.MeshArtist.draw_facelabelsto use the colors of the face color dict. - Changed
compas_ghpython.artists.MeshArtist.draw_vertexlabelsto use the colors of the vertex color dict. - Changed
compas_ghpython.artists.MeshArtist.draw_edgelabelsto use the colors of the edge color dict. - Changed
compas_ghpython.artists.MeshArtist.draw_facelabelsto use the colors of the face color dict. - Fixed
compas_blender.uninstall. - Changed
planarityto optional requirement on all platforms. - Changed
numbato optional requirement on all platforms. - Changed raw github content path for
compas.get. - Changed
compas.datastructures.Graph.nodes_whereto accept conditions as kwargs. - Changed
compas.datastructures.Graph.edges_whereto accept conditions as kwargs. - Changed
compas.datastructures.Halfedge.vertices_whereto accept conditions as kwargs. - Changed
compas.datastructures.Halfedge.edges_whereto accept conditions as kwargs. - Changed
compas.datastructures.Halfedge.faces_whereto accept conditions as kwargs. - Changed
compas.datastructures.Halfface.vertices_whereto accept conditions as kwargs. - Changed
compas.datastructures.Halfface.edges_whereto accept conditions as kwargs. - Changed
compas.datastructures.Halfface.faces_whereto accept conditions as kwargs. - Changed
compas.datastructures.Halfface.cells_whereto accept conditions as kwargs. - Fixed
compas_blender.artists.VolMeshArtist.drawandcompas_blender.artists.VolMeshArtist.draw_cells. - Fixed
compas_ghpython.artists.VolMeshArtist.drawandcompas_ghpython.artists.VolMeshArtist.draw_cells. - Fixed
compas_rhino.artists.VolMeshArtist.drawandcompas_rhino.artists.VolMeshArtist.draw_cells. - Improved error messages when artist instance cannot be created.
- Fixed exception when calculating geometry of
compas.datastructures.Partwithout 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.DATAwhen used from IronPython. - Fixed the result of
compas.__version__on dev installs to properly include git hash. - Move
datafiles 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.Curveas base class for curves. - Added
compas.geometry.Surfaceas base class for surfaces. - Added
compas_rhino.geometry.RhinoCurveas Rhino plugin for basic curves. - Added
compas_rhino.geometry.RhinoSurfaceas 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
rgbaandrgba255properties tocompas.colors.Color. - Added
from_namemethod tocompas.colors.Color. - Added Python 3.10 support.
- Added
RobotModel.ur5for the sake of example.
- Fixed bug in
mesh_slice_plane(),Mesh.slice_plane(). - Changed
compas_rhino.geometry.RhinoNurbsSurface.closest_pointto fix bug of rhino_curve to rhino_surface, plus return tuple instead. - Changed
compas_plotters.plotter.Plotterto normal class instead of singleton. - Moved functionality of
compas.utilities.coerciontocompas.data. - Fixed bug in
compas.geometry.NurbsSurface.to_triangles(). - Renamed docs site folders
latesttostableanddevtolatest. - Rebased
compas.geometry.NurbsCurveoncompas.geometry.Curve. - Rebased
compas.geometry.NurbsSurfaceoncompas.geometry.Surface. - Rebased
compas_rhino.geometry.RhinoNurbsCurveoncompas.geometry.NurbsCurveandcompas_rhino.geometry.RhinoCurve. - Rebased
compas_rhino.geometry.RhinoNurbsSurfaceoncompas.geometry.NurbsSurfaceandcompas_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,CylinderandCapsule) fromcompas.robotsand replaced them with the core ones fromcompas.geometry. The old names are still available but deprecated. - Deprecated the
load_meshmethod ofcompas.robots.AbstractMeshLoaderand 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.drxwill 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_VERSIONvariable tocompas_rhino.installto interally inform rhino version context post-installation steps. - Added
compas_rhino.geometry.RhinoNurbsSurface. - Added
compas_rhino.geometry.surfaces.new_nurbssurfaceplugin. - Added
compas_rhino.geometry.surfaces.new_nurbssurface_from_parametersplugin. - Added
compas_rhino.geometry.surfaces.new_nurbssurface_from_pointsplugin. - Added
compas_rhino.geometry.surfaces.new_nurbssurface_from_fillplugin. - Added
compas_rhino.geometry.surfaces.new_nurbssurface_from_stepplugin. - Added
compas_rhino.conversions.RhinoSurface.to_compas.
- Fixed bug in inheritance of
compas_plotters.artists.NetworkArtist. - Changed
compas_plotters.artists.MeshArtist.draw_edgesto ignore edge direction for assignment of edge colors and widths. - Changed
compas_plotters.artists.MeshArtist.draw_vertexlabelsto usecompas_plotters.Plotter.fontsize. - Changed
compas_plotters.artists.MeshArtist.draw_edgelabelsto usecompas_plotters.Plotter.fontsize. - Changed
compas_plotters.artists.MeshArtist.draw_facelabelsto 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_pointsto use transposed points. - Fixed bug in
compas_rhino.conversions.RhinoSurface.to_compas_mesh.
- Added
compas_ghpython.fetch_ghio_libto simplify the loading of Grasshopper's IO library for extension developers.
- Fixed bug in
Grasshopperplugin path on Windows. - Fixed bug in
GrasshopperUserObjectsuninstall.
- Added
compas_rhino.DEFAULT_VERSION. - Added
cleanoption tocompas_rhino.installto 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_artistspluggable.
- Updated
pr-checksworkflow 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.installto remove broken symlinks. - Changed
compas_rhino.installto reinstall broken symlinks if they can be imported from the current environment. - Changed
compas_rhino.uninstallto remove broken symlinks. - Changed
compas_rhino.install_pluginto remove broken symlinks. - Changed default Rhino version for installation to
7.0. - Fixed bug in
compas_ghpythonrelated to importingGrasshopperprematurely. - Changed
compas.artists.Artist.ITEM_ARTISTto context-based dict. - Changed
compas_rhino.__init__.pyfunctions. - Changed
compas_ghpython.__init__.pyfunctions. - Renamed
compas_ghpython.get_grasshopper_plugin_pathtocompas_ghpython.get_grasshopper_managedplugin_path.
- Removed
compas.artists.artist.new_artistpluggable.
- Moved import of
subprocessto top of filecompas._os.py.
- Fixed bug in
compas_rhino.conversions.RhinoPoint.from_geometry. - Changed
compas_rhino.installto remove broken symlinks. - Changed
compas_rhino.installto reinstall broken symlinks if they can be imported from the current environment. - Changed
compas_rhino.uninstallto remove broken symlinks. - Changed
compas_rhino.install_pluginto remove broken symlinks.
- Added
CircleArtist,LineArtist,PointArtist,PolygonArtist,PolylineArtist, andVectorArtisttocompas_blender. - Added
draw_circlesanddraw_planestocompas_blender. - Added
compas_rhino.geometry.curvesplugins forcompas.geometry.curvespluggables. - Added
compas_rhino.geometry.RhinoNurbsCurve. - Added
to_compas_quadmeshtocompas_rhino.conversions.RhinoSurface.
- Replaced implementation of
RGBColourandFloatwith 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_geometryto accept line curves. - Fixed bug in
compas_rhino.geometry.RhinoNurbsCurve.closest_point. - Modify
to_compas_meshincompas_rhino.conversions.RhinoSurfaceto use brep loops.
- Changed
compas_rhino.uninstallto also remove broken symlinks if no specific packages are provided for un-installation. - Changed
compas_rhino.installto 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_stripandcompas.datastructures.Mesh.split_strip. - Added boundingbox to
compas_rhino.conduits.BaseConduit
- Fixed bug in combination of
compas_rhino.artists.MeshArtist.draw_meshandcompas_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_meshto implemented method incompas_plotters.artists.MeshArtist.draw_mesh.
-
Added
compas.geometry.Curveandcompas.geometry.NurbsCurve. -
Added
compas.geometry.Surfaceandcompas.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.RhinoVectoras wrappers for working with Rhino geometry through geometry conversions or coercion of doc objects. -
Added
compas_rhino.conversionsfrom COMPAS geometry to Rhino geometry and vice versa, for primitives, shapes, curves, surfaces, meshes. -
Added
compas_rhino.coercionfrom 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_meshgridto0.0instead of0.
- Added
draw_meshmethod tocompas_ghpython.artists.MeshArtistto match all other mesh artists.
- Changed new artist registration to check if subclass.
- Fixed
RobotModelArtistfor blender: missing abstract method impl and handle init order.
- Added
Plane.offset. - Added
is_mesh_closedproperty tocompas.datastructures.mesh_slice_plane.
- Fixed backward compatibility problem with artists by adding back
Artist.buildandArtist.build_as. - Fixed backward compatibility problem with artists by adding
compas_rhino.artists.BaseArtistalias forcompas_rhino.artists.RhinoArtist.
- Added
draw_vertexlabels,draw_edgelabels,draw_facelabels,draw_vertexnormals, anddraw_facenormalstocompas_blender.artists.MeshArtist. - Added optional
triangulatedflag toto_vertices_and_facesof all shapes. - Added
compas.geometry.Geometrybase class. - Added
__add__,__sub__,__and__tocompas.geometry.Shapefor boolean operations using binary operators. - Added
is_closedtocompas.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_labelsanddraw_edgelabelstocompas_blender.artists.NetworkArtist. - Added
compas_blender.artists.RobotModelArtist.clear. - Added
compas_blender.geometry.booleansas plugin for boolean pluggables. - Added version-based installation for Blender.
- Added several shape artists to
compas_ghpython:BoxArtist,CapsuleArtist,ConeArtist,CylinderArtist,PolygonArtist,PolyhedronArtist,SphereArtist,TorusArtistandVectorArtist. - Added support for CLR generic dictionaries to the
compas.datadecoders. - 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.BaseArtisttocompas_rhino.artists.RhinoArtist. - Changed
compas_blender.artists.BaseArtisttocompas_blender.artists.BlenderArtist. - Changed default resolution for shape discretisation to 16 for both u and v where relevant.
- Changed base class of
compas.geometry.Primitiveandcompas.geometry.Shapetocompas.geometry.Geometry. compas_blender.artists.RobotModelArtist.collectioncan be assigned as a Blender collection or a name.- Generalized the parameter
colorofcompas_blender.draw_textsand various label drawing methods. - Changed
compas.IPYtocompas.RHINOinorientation_rhino. - Changed
planaritytorequires_extrafor pip installations. - Fixed bug in handling of ngonal meshes in
compas_ghpythonartists / drawing functions.
- Added pluggable function
trimesh_sliceincompas_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.RobotModelArtistand 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
meshesmethod to artists ofcompas.robots.RobotModel. - Added
FrameArtistclass tocompas_blender.
compas.robots.Axisis now normalized upon initialization.- Fixed a bug in
compas.numerical.dr_numpywhen 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_datato be backward-compatible with JSON data generated beforecompas 1.3.0. - Changed
compas_rhino.drawing.draw_brepsto 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
dtypeto JSON decoding error message. - Moved
compas.datastructures.mesh.core.halfedge.HalfEdgetocompas.datastructures.halfedge.halfedge.HalfEdge - Moved
compas.datastructures.network.core.graph.Graphtocompas.datastructures.graph.graph.Graph.
- Removed
compas.datastructures.mesh.core.mesh.BaseMesh. - Removed
compas.datastructures.BaseNetwork.
- Fixed bundling of ghuser components.
compas.robots.Axisis now normalized upon initialization.- Fixed a bug in
compas.numerical.dr_numpywhen 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_datato be backward-compatible with JSON data generated beforecompas 1.3.0.
- Fixed bundling of ghuser components.
- Added pluggable function
trimesh_gaussian_curvatureincompas_rhino. - Added pluggable function
trimesh_mean_curvatureincompas_rhino. - Added pluggable function
trimesh_principal_curvatureincompas_rhino. - Added
copyanddeepcopyfunctionality tocompas.robots.Configuration. - Added
compas.data.is_sequence_of_intandcompas.data.is_sequence_of_float. - Added
compas.data.Data.JSONSCHEMANAME. - Added
kwargsto all child classes ofcompas.data.Data. - Added grasshopper component for drawing a frame.
- Added
draw_originanddraw_axes. - Added
compas.PY2.
- Allow str or int as joint type in
compas.robots.Jointconstructor. - Moved json schemas to
compas.data. - Nested json schemas.
compas_ghpython.artists.FrameArtist.drawnow 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
cleantask. - Clean up the ghuser directory before building ghuser components.
- Exposed function
draw_brepsincompas_rhino.utilities; example added. - Added
joinflag to functiondraw_brepsincompas_rhino.utilities - Fixed bug in
compas.geometry.distance.closest_point_on_segment_xy. - Fixed bug in Rhino implementations of
trimeshcurvature 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_pathto work oncompas.datastructures.Meshandcompas.datastructures.Network. - Fixed
compas.data.Data.to_jsonstring. - Changed
compas.data.Data.data.setterto 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_jsonstringandto_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
doctestexecution 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
prettyparameter tocompas.json_dumpandcompas.json_dumps. - Added
compas.data.Dataas base object for all data objects (geometry, data structures, ...).
- Moved
compas.utilities.DataEncodertocompas.data. - Moved
compas.utilities.DataDecodertocompas.data. - Changed base object of
compas.datastructures.Datastructuretocompas.data.Data. - Changed base object of
compas.geometry.Primitivetocompas.data.Data. - Renamed
BasetoDatafor 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_pathto 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_lengthrelated 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
invertandinvertedmethodcompas.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_cornersandPolyline.tangent_at_point_on_polyline. - Added the magic method
__str__tocompas.geoemetry.Transformation. - Added
redrawflag to thecompas_rhinomethodsdelete_object,delete_objectsandpurge_objects. - Added the
__eq__method forcompas.geometry.Circleandcompas.geometry.Line. - Added support for Pylance through static API definitions.
- Added
halfedge_stripmethod 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.redrawdid not trigger a redraw. - Fixed minor bugs in
compas.geometry.Polylineandcompas.geometry.Polygon. - Fixed very minor bugs in
compas.geometry.Frameandcompas.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.inspecttocompas_rhino.objects.inspectors. - Changed
compas_rhino.objects.selecttocompas_rhino.objects._select. - Changed
compas_rhino.objects.modifytocompas_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_installandafter_rhino_uninstallpluggable interfaces to extend the install/uninstall with arbitrary steps.
- Fixed bug in parameter list of function
mesh_bounding_boxbound as methodMesh.bounding_box. - Fixed bug in
RobotModel/RobotModelArtist.updatewhich 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.RobotModelArtistfunctionsdraw_visualanddraw_collisionnow return list of newly created Rhino object guids. - Added ability of
RobotModel.add_linkto 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.Robotmodelartistwould 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.Robotmodelartistto include acollection-parameter instead of alayer-parameter to be more consistent with Blender's nomenclature. - Used a utility function from
compas_blender.utilitiesto 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.origininto the static parent-relativeoriginand the dynamic world-relativecurrent_origin. - Separate
compas.robots.Joint.axisinto the static parent-relativeaxisand the dynamic world-relativecurrent_axis. - Fixed support to convert back and forth between
compas.datastructures.Graphand NetworkXDiGraph.
- Fix bug in
compas.datastructures.Network.neighborhood.
- Changed
compas._os.prepare_environmentto 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
Dynamicselement. - Moved os functions from
compastocompas._os. - Fixed bug in
is_linux. - Changed
is_windowsto work for CPython and IronPython. - Changed
compas._osfunctions to useis_windows,is_mono,is_osx. - Changed IronPython checks to
compas.IPYinstead 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_boundariesto account for special cases. - Changed
Mesh.edges_on_boundariescorresponding toMesh.vertices_on_boundaries. - Changed
Mesh.faces_on_boundariescorresponding toMesh.vertices_on_boundaries. - Changed
Mesh.vertices_on_boundaryto return vertices of longest boundary. - Changed
Mesh.edges_on_boundaryto return edges of longest boundary. - Changed
Mesh.faces_on_boundaryto 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_valuestocompas_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.Transformationtocompas.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.MeshArtistandcompas_rhino.artists.NetworkArtist. - Changed length and force constraints of DR to optional parameters.
- Removed
ABCMetafrom 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_meshto 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_anglestocompas.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_halfspacesandcompas.geometry.Polyhedron.from_planes. - Added
compas.geometry.is_point_behind_planeandcompas.geometry.is_point_in_polyhedron. - Added
centroidandbounding_boxproperties tocompas.geometry.Pointcloud. - Added
edgesproperty tocompas.geometry.Box. - Added
edgesproperty 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_facestoabstractmethod. - Fixed bug in magic methods of
compas.geometry.Box. - Fixed bug in
compas.geometry.Box.contains. - Fixed bug in
delete_vertexanddelete_faceincompas.datastructures.Halfedge. - Fixed bug in
delete_nodeofcompas.datastructures.Graph. - Fixed bug in
summarymethod ofcompas.datastructures.Graphandcompas.datastructures.Halfedge.
- Added
RobotModelArtisttocompas_rhino,compas_ghpythonandcompas_blender. - Added
ToolModel. - Added
compas.geometry.Pointcloud. - Added
compas.utilities.grouper. - Added
PolygonArtist,PolylineArtisttoGeometryPlotter.
Meshtakes name ofShapeinMesh.from_shape.- Fixed
zoom_extentsofGeometryPlotter.
- Removed
SegmentArtistfromcompas_plotters.
- Added functionality to the RPC service to automatically reload modules if a change is detected.
- Added
compas_plotters.geometryplotter.GeometryPlotterfor COMPAS geometry objects.
- Changed
compas.base.Base.dtypeto 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
mallocproblems. - 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
DATASCHEMAtocompas.base.Base. - Added abstract
JSONSCHEMAtocompas.base.Base. - Added
validate_datatocompas.base.Base. - Added
validate_jsontocompas.base.Base. - Added implementation of
DATASCHEMAtocompas.datastructures.Halfedge. - Added implementation of
JSONSCHEMAtocompas.datastructures.Halfedge. - Added
NodeAttributeView. - Added implementation of
DATASCHEMAtocompas.datastructures.Graph. - Added implementation of
JSONSCHEMAtocompas.datastructures.Graph. - Added
compas.rpc.Proxy.restart_server. - Added
compas_rhino.objects.NetworkObject. - Added constructors
from_matrixandfrom_rotationtocompas.geometry.Quaternion. - Added
draw_collectionmethods to Grasshopper artists.
- Updated naming conventions in
compas.datastructures.HalfFaceandcompas.datastructures.VolMesh - Moved
compas.datastructures.Datastructuretocompas.datastructures.datastructure. - Changed base class of
compas.datastructures.Datastructuretocompas.base.Base. - Changed
from_jsontoto_jsonof meshes to use encoders and decoders. - Moved
MutableMappingtocompas.datastructures._mutablemapping. - Moved attribute views to
compas.datastructure.attributes.
- Removed
from_json,to_json,to_data,copy,transformedfrom 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_rhinoimplementation 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_dataandfrom_datatocompas.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.MeshArtistto list of GUID. - Changed return value of drawing functions of
compas_rhino.artists.NetworkArtistto 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_serverusing the attributeProxy.max_conn_attempts. Scale.from_factorscan 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_datafromcompas_rhino.artists. - Removed
compas_rhino.artists.BoxArtiststub. - 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.argminandcompas.geometry.argmax. - Added STL witer.
- Added
compas.datastructures.Mesh.to_stl. - Added
unweldoption 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_edgesincompas_rhino'sEdgeArtist. - Fixed bug in
draw_edgesincompas_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_coordstocompas.geometry.Frame.to_local_coordinates - Renamed
compas.geometry.Frame.to_world_coordstocompas.geometry.Frame.to_world_coordinates - Renamed
compas.geometry.Transformation.change_basistocompas.geometry.Transformation.from_change_of_basis - Renamed
compas.geometry.matrix_change_basistocompas.geometry.matrix_from_change_of_basis - Renamed
compas.geometry.Projection.orthogonaltocompas.geometry.Projection.from_planeand changed input params - Renamed
compas.geometry.Projection.paralleltocompas.geometry.Projection.from_plane_and_directionand changed input params - Renamed
compas.geometry.Projection.perspectivetocompas.geometry.Projection.from_plane_and_pointand changed input params - Changed constructor of all
compas.geometry.Transformationand derivatives. Preferred way of creating anycompas.geometry.Transformationis with the classmethodsfrom_* - Changed params (point, normal) into plane for
compas.geometry.matrix_from_parallel_projection,compas.geometry.matrix_from_orthogonal_projectionandcompas.geometry.matrix_from_perspective_projection
- Extended glTF support.
- Added classmethod
from_geometrytoRhinoMesh - 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_compasconversion of Rhino meshes. - Fixed bug where
compas.geometry.Primitivederived classes cannot be serialized by jsonpickle.
- Added classmethod
from_geometrytoRhinoMesh. - 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
RhinoSurfacediscretisation. - 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_hpcimport 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_visualandcompas_blender.artists.RobotModelArtist.draw_collisionnow show those meshes.- Renamed the method
draw_geometryofcompas.robots.base_artist.RobotModelBaseArtisttocreate_geometry.
- Removed parallelization from network algorithms.
- Removed numba based dr implementations.
- Added
to_compastocompas_rhino.geometry.RhinoPoint. - Added
to_compastocompas_rhino.geometry.RhinoLine. - Added
to_compastocompas_rhino.geometry.RhinoCurve. - Added
to_compastocompas_rhino.geometry.RhinoMesh. - Added
brep_to_compastocompas_rhino.geometry.RhinoSurface. - Added
uv_to_compastocompas_rhino.geometry.RhinoSurface. - Added
heightfield_to_compastocompas_rhino.geometry.RhinoSurface. - Added
compas.datastructures.mesh_pull_points_numpy.
- Moved
compas_rhino.conduitsintocompas_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_trianglesto 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_vertextocompas.datastructures.Mesh.is_vertex. - Renamed
compas.datastructures.Mesh.has_facetocompas.datastructures.Mesh.is_face. - Split
compas.datastructures.Mesh.has_edgeintocompas.datastructures.Mesh.is_edgeandcompas.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
printstatement from curvature module.
compas_rhino.artists.ShapeArtistas base artist for all shape artists.- Added
layer,name,colorattributes tocompas_rhino.artists.PrimitiveArtist. - Added
layer,nameattributes tocompas_rhino.artists.ShapeArtist. - Added
layer,nameattributes tocompas_rhino.artists.MeshArtist. - Added
clear_layermethod tocompas_rhino.artists.PrimitiveArtist. - Added
clear_layermethod tocompas_rhino.artists.ShapeArtist. - Added
clear_layermethod tocompas_rhino.artists.MeshArtist.
- Renamed
compas.utilities.maps.geometric_key2togeometric_key_xy. - Fixed bug in mirror functions.
- Fixed mirroring tests.
- Moved
BaseMesh,matrices,operationstocompas.datastructures.mesh.core. - Added
transformandtransformed(and others) toMesh.
compas_rhino.artists.BoxArtist- Removed
layerattribute fromcompas_rhino.artists.Artist. - Removed
clear_layermethod fromcompas_rhino.artists.Artist.
- File reading functions for ascii files in
compas.fileshas moved from the individual reader classes to a new parent class,BaseReader.
- Rebased
compas_rhino.artists.MeshArtiston new-style artistcompas_rhino.artists.Artist. - Renamed
compas_rhino.artists.MeshArtist.defaultstocompas_rhino.artists.MeshArtist.settings. - Changed usage of (nonexisting)
compas_rhino.get_objecttocompas_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.VolMeshArtistoncompas_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_framestocompas.datastructures.subdivision
- Added
intersection_segment_polylinetocompas.geometry.intersections - Added
intersection_segment_polyline_xytocompas.geometry.intersections - Added
from_sides_and_radiustocompas.geometry.Polygon
- Reworked docstrings of methods in
compas.geometry.queries - Set default
tolto1e-6incompas.geometry.queries
- Added inherited methods to class docs.
- Added data structure mixins to the docs.
- Added
dataandfrom_datatocompas.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.Boxis now centred at origin by default.
- Removed
compas.remotebecause it does not provide an advatage overcompas.rpc.
- Added
compas_rhino.etoforms.ImageForm. - Added
doc8as dev requirement.
- Changed
compas_rhino.install_pluginto use only the plugin name, w/o the GUID. - Changed
iterable_liketo 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.FrameArtistlayer 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_trianglesthat caused face data to be deleted even when not necessary. - Switched to
compas.geometry.KDTreeas fallback forscipy.spatial.cKDTreeinstead of RhinoRTreebecause it currently fails.
- Added
iterable_liketocompas.utilities.itertools_ - Added
compas.geometry.icp_numpyfor pointcloud alignment using ICP. - Added RPC command-line utility:
$ compas_rpc {start|stop} [--port PORT] - Added
__version__tocompas_plotters. - Added
compas_plottersto.bumpversion.cfg. - Added
Colormaptocompas.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
autopep8to dev requirements. - Added methods
add_jointandadd_linktoRobotModel - Added support for geometric primitives to JSON data encoder and decoder.
- Added support for
datato all geometric primitives.
- Docs are only deployed to github pages for tagged commits.
- Fixing printing issue with
compas.geometry.Quarternionin 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
rotationproperty ofTransformation. - Simplified plugin installation (use plugin name only, without GUID).
- Bind RPC server to
0.0.0.0instead 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.invertedas 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_facesto all the classes inheriting fromcompas.geometry.Shapeto create aMeshrepresentation of them.
- Changed
compas.geometry.Transformation.inverseto return an inverted copy of the transformation. - Changed
compas.geometry.Transformation.decomposetocompas.geometry.Transformation.decomposed. - Changed
compas.geometry.Transformation.concatenateto add another transformation to the transformation instance.
- Added
compas.geometry.Point.transform_collectionandcompas.geometry.Point.transformed_collection. - Added
compas.geometry.Vector.transform_collectionandcompas.geometry.Vector.transformed_collection. - Added
compas.geometry.Line.transform_collectionandcompas.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.Lineto update the point objects in place. - Fixed return value of
compas.numerical.pca_numpyto 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.scaledandVector.unitized - Added
transform_framesand respective helper functionsdehomogenize_and_unflatten_frames,homogenize_and_flatten_frames - Added
transform_frames_numpyand respective helper functionsdehomogenize_and_unflatten_frames_numpy,homogenize_and_flatten_frames_numpy
- Renamed
global_coords_numpyandlocal_coords_numpytolocal_to_world_coords_numpyandworld_to_local_coords_numpy. - Changed parameters
originuvwoflocal_to_world_coords_numpyandworld_to_local_coords_numpytoframe. - Fixed some returns of
FrameandRotationto useVectororQuaternion - Renamed methods
Frame.represent_point/vector/frame_in_global_coordinatesandFrame.represent_point/vector/frame_in_local_coordinatestoFrame.to_local_coordsandFrame.to_world_coords.
- Fixed unguarded import of
numpybased transformations in mesh package.
- Added test section for
compas.geometry.transformations - Added
tolparameter 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_meshtocompas_ghpython.artists.MeshArtist
- Generate sphinx documentation from markdown files in repo root for top level sections.
- Merged
compas.geometry.xformsintocompas.geometry.transformations - Fixed
AttributeError: 'Mesh' object has no attribute 'neighbors' - Fixed Key error with
Mesh.boundary() - Extended
offset_polygonandoffset_polylineto handle colinear segments - Fixed unsorted mesh vertex coordinates
xyzincompas_viewers.viewer.MeshView - Changed stderr parameter from STDOUT to PIPE in
compas.rpc.Proxyfor Rhino Mac 6.0. - Fixed import of
delaunay_from_pointsinMesh.from_points. - More control over drawing of text labels in Rhino.
- Extension of
face_vertex_descendantandface_vertex_ancestorinMesh. - Changed the name and meaning of the parameter
orientedin the functionMesh.edges_on_boundary. - Add
axisandorigindefaults 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
pythonifpythonwis not present on the system - Fixed
compas_ghpython.artists.MeshArtistto support ngons. - Deprecate the method
drawofcompas_ghpython.artists.MeshArtistin 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.Primitiveandcompas.geometry.Shape - Separated
numpybased tranformations into separate module.
- Removed
compas_viewersto separate repo. - Removed
compas_hpcto separate repo.
- Added
compas_rhino.geometry.RhinoGeometryto the docs. - Added
compas.remote.services. - Added
compas.remote.services.network.pyservice for handling requests for a browser-based network viewer. - Possibility to call forward_kinematics on
compas.robots.RobotModel - Added
compas.set_precisionfunction 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.pytocompas.remote.services.default.py. - Removed processing of face keys from data getter and setter in
compas.datastructures.Network. - Using
SimpleHTTPRequestHandlerinstead ofBaseHTTPRequestHandlerto 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.BaseRobotArtisttocompas.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_plottersandcompas_viewersin the build instructions. - Moved import of
subprocessto Windows-specific situations. - Fixed document functions failing when document name is
None. - Downgraded
numpyrequirements. - Loosened
scipyrequirements. - Default Python to
pythonw.
- Added filter shorthand for selecting OBJ, JSON files in Rhino.
- Added
compas_plotters - Added
compas_viewers - Added
compas_rhino.draw_circlesand the equivalent Artist method - Add class functions to
compas.datastructures.VolMesh. - Added
face_neighborhoodclass function tocompas.datastructures.Mesh. - Added
get_face_attributes_alltocompas.datastructures._mixins.attributes. - Added
get_faces_attributes_alltocompas.datastructures._mixins.attributes. - Added
compas.remotepackage for making HTTP based Remote Procedure Calls.
- Restructure halffaces as lists in
compas.datastructures.VolMesh. - Correctly handle
python-netmodule presence during IronPython imports. - Switched to
compas.IPYcheck instead oftry-exceptfor 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.remotefor 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
passstatement as class body.
- Added
centerproperty getter tocompas.geometry.Cirleprimitive - Add
astar_shortest_pathtocompas.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.16and1.2, respectively.
- Added
draw_polylinestocompas_rhino.artists.Artist. - Added
colorargument tocompas_rhino.artists.MeshArtist.draw_mesh. - Added named colors to
compas.utilities.colors.py.
- Fix
mesh_uv_to_xyzinRhinoSurface. - 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 forXFuncandRPC. - Fix
XFuncon RhinoMac. - Fix
trimesh_subdivide_loopfromcompas.datastructures. - Changed Numpy and Scipy version requirements to allow for Python 3.5.x.
- Removed
mixing.pyfromcompas.utilities. - Removed
singleton.pyfromcompas.utilities. - Removed
xscript.pyfromcompas.utilities. - Removed
sorting.pyfromcompas.utilities. - Removed
names.pyfromcompas.utilities. - Removed
xfunc.pyfromcompas_rhino.utilities, usecompas.utilities.XFuncinstead.
- Fix
XFuncandRPCenvironment 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
CircleandSphereprimitives tocompas.geometry. - Add functions to
PlaneandBoxprimitives. - Add functions to
compas_rhinocurve:lengthandis_closed. - Add functions to
compas_rhinosurface: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_scalabletocompas.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_rhinoedge modifiers.
- Fix import in
compas_rhinovertex modifiers.
- Remove
download_image_from_remoteutility 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_weldandmeshes_join_and_weld. - New mesh functions:
face_skewness,face_aspect_ratio,face_curvatureandvertex_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_coefficientfunction. - Add option to create
NetworkandMeshfrom dictionaries of vertices and faces. - Add
face_adjacency_verticestoMesh - Add optional prefix to the rhino name attribute processor
- Add
mesh_move_verticestocompas_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_platonicsolidandfrom_vertices_and_faces. - Constrained and conforming Delaunay triangulations based on Triangle.
- Predicate-based filtering of vertices and edges.
mesh.geometryfor geometry-specific functions.trimesh_face_circleinmesh.geometry.
- Fix exception in
angle_vectors_signedif 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.