Skip to content

Releases: compas-dev/compas

COMPAS 2.4.2

17 Sep 04:17
8dd40a6
Compare
Choose a tag to compare

Added

  • Added compas.scene.Scene.find_by_name to find the first scene object with the given name.
  • Added compas.scene.Scene.find_by_itemtype to find the first scene object with a data item of the given type.

Changed

  • Fixed args for SceneObject on Grasshopper Draw component.
  • Replaced use of Rhino.Geometry.VertexColors.SetColors with a for loop and SetColor in compas_ghpyton since the former requires a System.Array.
  • Fixed Mesh.face_circle.

Removed

COMPAS 2.4.1

24 Aug 23:44
Compare
Choose a tag to compare

Added

Changed

  • Changed supported Blender versions to latest LTS versions (3.3, 3.6, 4.2).
  • Fixed bug in compas_rhino.conversions.cone_to_compas.
  • Fixed bug in compas_rhino.conversions.cylinder_to_compas.
  • Fixed bug in compas_rhino.scene.RhinoMeshObject.draw_vertexnormals (scale not used).
  • Fixed bug in compas_rhino.scene.RhinoMeshObject.draw_facenormals (scale not used).
  • Changed scene object registration to stop printing messages.

Removed

COMPAS 2.4.0

22 Aug 13:25
Compare
Choose a tag to compare

Added

  • Added compas.scene.Scene.redraw.
  • Added compas.scene.Scene.context_objects representing all objects drawn in the visualisation context by the scene.
  • Added compas.scene.Scene.clear_context with optional guids to clear some or all objects from the visualisation context.
  • Added clear_scene and clear_context parameters to compas.scene.Scene.clear to differentiate between removing objects from the scene internally or removing corresponding objects from the viz context, or both (default).
  • Added compas_rhino.conversions.extrusion_to_compas_box as direct conversion of extrusion breps.

Changed

  • Changed the __str__ of compas.geometry.Frame, compas.geometry.Plane, compas.geometry.Polygon, compas.geometry.Polyhedron, compas.geometry.Quaternion to use a limited number of decimals (determined by Tolerance.PRECISION). Note: __repr__ will instead maintain full precision.
  • Changed the __str__ of compas.geometry.Pointcloud to print total number of points instead of the long list of points. Note: __repr__ will still print all the points with full precision.
  • Fixed bug in Pointcloud.from_box().
  • Changed compas.scene.MeshObject to not use vertex coordinate caching because it is too fragile.
  • Changed compas_rhino.scene.RhinoMeshObject to keep track of element-guid pairs in dicts.
  • Changed compas.scene.Scene._guids to a default value of [].
  • Fixed bug due to missing import in compas_rhino.scene.graphobject.
  • Changed compas_rhino.scene.RhinoMeshObject.draw_vertexnormals to use the same selection of vertices as draw_vertices.
  • Changed compas_rhino.scene.RhinoMeshObject.draw_vertexnormals to use the corresponding vertex color if no color is specified.
  • Changed compas_rhino.scene.RhinoMeshObject.draw_facenormals to use the same selection of vertices as draw_faces.
  • Changed compas_rhino.scene.RhinoMeshObject.draw_facenormals to use the corresponding face color if no color is specified.

Removed

COMPAS 2.3.0

06 Jul 11:28
Compare
Choose a tag to compare

Added

  • Added code coverage report uploads to codecov.io.
  • Added compas.geometry.surfaces.surface.Surface.from_native.
  • Added compas.geometry.surfaces.nurbs.NurbsSurface.from_plane.
  • Added compas.geometry.surfaces.nurbs.NurbsSurface.from_cylinder.
  • Added compas.geometry.surfaces.nurbs.NurbsSurface.from_extrusion.
  • Added compas.geometry.surfaces.nurbs.NurbsSurface.from_frame.
  • Added compas.geometry.surfaces.nurbs.NurbsSurface.from_interpolation.
  • Added compas.geometry.surfaces.nurbs.NurbsSurface.from_revolution.
  • Added compas.geometry.surfaces.nurbs.NurbsSurface.from_sphere.
  • Added compas.geometry.surfaces.nurbs.NurbsSurface.from_torus.
  • Added compas_rhino.geometry.surfaces.surface_from_native.
  • Added compas_rhino.geometry.surfaces.nurbssurface_from_native.
  • Added compas_rhino.geometry.surfaces.nurbssurface_from_cylinder.
  • Added compas_rhino.geometry.surfaces.nurbssurface_from_fill.
  • Added compas_rhino.geometry.surfaces.nurbssurface_from_torus.
  • Added compas_rhino.geometry.surfaces.nurbs.NurbsSurface.from_corners.
  • Added compas_rhino.geometry.surfaces.nurbs.NurbsSurface.from_cylinder.
  • Added compas_rhino.geometry.surfaces.nurbs.NurbsSurface.from_frame.
  • Added compas_rhino.geometry.surfaces.nurbs.NurbsSurface.from_sphere.
  • Added compas_rhino.geometry.surfaces.nurbs.NurbsSurface.from_torus.
  • Added compas.geometry.curves.curve.Curve.from_native.
  • Added compas_rhino.geometry.curves.curve.Curve.from_native.
  • Added compas_rhino.geometry.curves.nurbs.NurbsCurve.from_native.
  • Added compas_rhino.conversions.breps.brep_to_compas_mesh.
  • Added compas_rhino.conversions.docobjects.brepobject_to_compas.
  • Added compas_rhino.conversions.docobjects.curveobject_to_compas.
  • Added compas_rhino.conversions.docobjects.meshobject_to_compas.
  • Added compas_rhino.conversions.docobjects.pointobject_to_compas.
  • Added compas.datastructures.HashTree and compas.datastructures.HashNode.

Changed

  • Fixed bug in compas.geometry.curves.curve.Curve.reversed by adding missing parenthesis.
  • Fixed all doctests so we can run invoke test --doctest.
  • Changed compas.geometry.surfaces.surface.Surface.__new__ to prevent instantiation of Surface directly.
  • Changed compas.geometry.surfaces.nurbs.NurbsSurface.__new__ to prevent instantiation of NurbsSurface directly.
  • Fixed bug in compas.geometry.surfaces.nurbs.NurbsSurface.__data__.
  • Changed compas.geometry.surfaces.nurbs.new_nurbssurface_from_... to nurbssurface_from_....
  • Changed compas.geometry.curves.curve.Curve.__new__ to prevent instantiation of Curve directly.
  • Changed compas.geometry.curves.nurbs.new_nurbscurve_from_... to nurbscurve_from_....
  • Changed compas.geometry.curves.nurbs.NurbsCurve.__new__ to prevent instantiation of NurbsCurve directly.
  • Changed compas_rhino.geometry.curves.new_nurbscurve_from_... to nurbscurve_from_....
  • Fixed compas_ghpython Grasshopper components not included in published pakcage.
  • Changed compas.colors.Color.coerce to take color as is, if it is already an instance of compas.colors.Color.
  • Changed compas_rhino.conversions.surfaces.surface_to_compas to work only with surface geometry.
  • Changed compas_rhino.conversions.curves.curve_to_compas_line to work only with geometry.
  • Changed compas_rhino.conversions.curves.curve_to_compas_circle to work only with geometry.
  • Changed compas_rhino.conversions.curves.curve_to_compas_ellipse to work only with geometry.
  • Changed compas_rhino.conversions.curves.curve_to_compas_polyline to work only with geometry.
  • Changed compas_rhino.objects.get_point_coordinates to deprecated (removed in v2.3).
  • Changed compas_rhino.objects.get_line_coordinates to deprecated (removed in v2.3).
  • Changed compas_rhino.objects.get_polyline_coordinates to deprecated (removed in v2.3).
  • Changed compas_rhino.objects.get_polygon_coordinates to deprecated (removed in v2.3).
  • Fixed a bug in worldtransformation of compas.scene.SceneObject to include the object's own frame.

Removed

  • Removed pluggable compas.geometry.surfaces.surface.new_surface.
  • Removed pluggable compas.geometry.surfaces.surface.new_surface_from_plane.
  • Removed compas.geometry.surfaces.surface.Surface.from_plane.
  • Removed compas.geometry.surfaces.surface.ConicalSurface.__new__.
  • Removed compas.geometry.surfaces.surface.CylindricalSurface.__new__.
  • Removed compas.geometry.surfaces.surface.PlanarSurface.__new__.
  • Removed compas.geometry.surfaces.surface.SphericalSurface.__new__.
  • Removed compas.geometry.surfaces.surface.ToroidalSurface.__new__.
  • Removed compas.geometry.surfaces.nurbs.NurbsSurface.__init__.
  • Removed compas_rhino.geometry.surfaces.new_surface.
  • Removed compas_rhino.geometry.surfaces.new_nurbssurface.
  • Removed compas_rhino.geometry.surfaces.nurbs.NurbsSurface.__from_data__.
  • Removed compas_rhino.geometry.surfaces.surface.Surface.from_corners.
  • Removed compas_rhino.geometry.surfaces.surface.Surface.from_cylinder.
  • Removed compas_rhino.geometry.surfaces.surface.Surface.from_frame.
  • Removed compas_rhino.geometry.surfaces.surface.Surface.from_sphere.
  • Removed compas_rhino.geometry.surfaces.surface.Surface.from_torus.
  • Removed compas.geometry.curves.arc.Arc.__new__.
  • Removed compas.geometry.curves.bezier.Bezier.__new__.
  • Removed compas.geometry.curves.conic.Conic.__new__.
  • Removed compas.geometry.curves.polyline.Polyline.__new__.
  • Removed compas.geometry.curves.curve.new_curve.
  • Removed compas.geometry.curves.curve.new_nurbscurve.
  • Removed compas_rhino.geometry.curves.new_curve.
  • Removed compas_rhino.geometry.curves.new_nurbscurve.
  • Removed compas_rhino.conversions.surfaces.data_to_rhino_surface.
  • Removed compas_rhino.conversions.surfaces.surface_to_compas_data.
  • Removed compas_rhino.conversions.surfaces.surface_to_compas_quadmesh.
  • Removed compas_rhino.conversions.curves.curve_to_compas_data.

COMPAS 2.2.1

25 Jun 05:54
Compare
Choose a tag to compare

Added

Changed

  • Fixed error in compas_ghpython causing Scene to fail in Grasshopper.

Removed

COMPAS 2.2.0

24 Jun 17:39
Compare
Choose a tag to compare

Added

  • Added maxiter parameter to compas.geometry.icp_numpy.
  • Added resolution_u and resolution_v to compas.geometry.Shape to control discretisation resolution.
  • Added vertices, edges, faces, triangles to compas.geometry.Shape.
  • Added points, lines, polygons to compas.geometry.Shape.
  • Added abstract compute_vertices, compute_edges, compute_faces, compute_triangles to compas.geometry.Shape.
  • Added implementation of compute_vertices, compute_edges, compute_faces to compas.geometry.Box.
  • Added implementation of compute_vertices, compute_edges, compute_faces to compas.geometry.Capsule.
  • Added implementation of compute_vertices, compute_edges, compute_faces to compas.geometry.Cone.
  • Added implementation of compute_vertices, compute_edges, compute_faces to compas.geometry.Cylinder.
  • Added implementation of compute_vertices, compute_edges, compute_faces to compas.geometry.Sphere.
  • Added implementation of compute_vertices, compute_edges, compute_faces to compas.geometry.Torus.
  • Added compas_blender.scene.ShapeObject.
  • Added compas.geometry.vector.__radd__.
  • Added compas.geometry.vector.__rsub__.
  • Added compas.geometry.vector.__rmul__.
  • Added compas.geometry.vector.__rtruediv__.
  • Added VolMesh.cell_lines, VolMesh.cell_polygons.
  • Added VolMesh.vertex_edges.
  • Added VolMesh.from_meshes.
  • Added VolMesh.from_polyhedrons.

Changed

  • Changed compas_ghpython/utilities/drawing.py to remove System dependency.
  • Fixed bug in compas.geometry.ic_numpy, which was caused by returning only the last transformation of the iteration process.
  • Changed compas.geometry.Geometry.scaled to use compas.geometry.Geometry.scale on a copy.
  • Changed compas.geometry.Geometry.translated to use compas.geometry.Geometry.translate on a copy.
  • Changed compas.geometry.Geometry.rotated to use compas.geometry.Geometry.rotate on a copy.
  • Changed VolMesh._plane back to point to a cell for every triplet of vertices.
  • Fixed VolMesh.add_halfface, VolMesh.add_cell, VolMesh.vertex_halffaces, VolMesh.vertex_cells, VolMesh.edge_halffaces, VolMesh.halfface_cell, VolMesh.halfface_opposite_cell, VolMesh.halfface_opposite_halfface, VolMesh.cell_neighbors.
  • Changed ordering of Volmesh.edges() to be deterministic.
  • Changed ordering and direction of Volmesh.vertex_edges() to be deterministic.
  • Changed check for empty vertices and faces to use is None to add support for numpy arrays.
  • Changed order of u and v of compas.geometry.SphericalSurface to the match the excpected parametrisation.
  • Changed compas.geometry.Shape.to_vertices_and_faces to use Shape.vertices and Shape.faces or Shape.triangles.
  • Changed default of compas.scene.descriptors.color.ColorAttribute to None to support native coloring in CAD contexts.
  • Changed compas.colors.ColorDict.__data__ and compas.colors.ColorDict.__from_data__ to properly support serialisation.
  • Moved compas_blender.utilities.drawing to compas_blender.drawing with backward compatible imports and deprecation warning.
  • Moved compas_ghpython.utilities.drawing to compas_ghpython.drawing with backward compatible imports and deprecation warning.
  • Moved compas_rhino.utilities.drawing to compas_rhino.drawing with backward compatible imports and deprecation warning.
  • Changed draw_nodes and draw_edges of compas_blender.scene.GraphObject, compas_ghpython.scene.GraphObject, and compas_rhino.scene.GraphObject to use only attributes instead of parameters.
  • Changed draw_vertices, draw_edges and draw_faces of compas_blender.scene.MeshObject, compas_ghpython.scene.MeshObject, and compas_rhino.scene.MeshObject to use only attributes instead of parameters.
  • Changed draw_vertices, draw_edges and draw_faces of compas_blender.scene.VolMeshObject, compas_ghpython.scene.VolMeshObject, and compas_rhino.scene.VolMeshObject to use only attributes instead of parameters.
  • Changed registration of Capsule, Cone, Cylinder, Sphere, Torus to ShapeObject in compas_blender.scene.
  • Updated compas.geometry.vector.__mul__ to allow element-wise multiplication with another vector.
  • Updated compas.geometry.vector.__truediv__ to allow element-wise division with another vector.
  • Fixed bug in registration shapely boolean plugins.
  • Temporarily restrict numpy to versions lower than 2.x.

Removed

  • Removed System dependency in compas_ghpython/utilities/drawing.py.
  • Removed GH plugin for compas.scene.clear since it clashed with the Rhino version.

COMPAS 2.1.1

13 May 23:42
Compare
Choose a tag to compare

Added

  • Added compas.geometry.Line.point_from_start and compas.geometry.Line.point_from_end.
  • Added compas.geometry.Line.flip and compas.geometry.Line.flipped.
  • Added an compas.geometry.Frame.interpolate_frame(s) method
  • Added compas.colors.Color.contrast.
  • Added compas.geometry.Brep.from_plane.
  • Added compas.tolerance.Tolerance.angulardeflection.
  • Added compas.tolerance.Tolerance.update_from_dict.
  • Added compas.scene.SceneObject.scene attribute.

Changed

  • Changed and update the compas_view2 examples into compas_viewer.
  • Changed and updated the compas_view2 examples into compas_viewer.
  • Changed compas.scene.Scene to inherent from compas.datastructrues.Tree.
  • Changed compas.scene.SceneObject to inherent from compas.datastructrues.TreeNode.
  • Changed compas.geoemetry._core.predicates_3 bug fix in is_coplanar while loop when there are 4 points.
  • Changed to implementation of Mesh.unify_cycles to use the corresponding function of compas.topology.orientation.
  • Fixed bug in compas.topology.orientation.unify_cycles.
  • Fixed bug in Mesh.thickened.
  • Fixed various bugs in compas.geometry.Quaternion.
  • Changed repo config to pyproject.toml.
  • Fixed broken import in copas.geometry.trimesh_smoothing_numpy.
  • Changed RhinoBrep.trimmed to return single result or raise BrepTrimmingError instead of returning a list.
  • Changed order of imports according to isort and changed line length to 179.
  • Changed use of compas.geometry.allclose to compas.tolerance.TOL.is_allclose.
  • Changed use of compas.geometry.close to compas.tolerance.TOL.is_close.
  • Changed imports of itertools to compas.itertools instead of compas.utilities.
  • Changed compas.tolerance.Tolerance to a singleton, to ensure having only library-wide tolerance values.
  • Updated compas_rhino.conversions.point_to_compas to allow for Rhino.Geometry.Point as input.
  • Changed compas.datastructures.Tree.print_hierarchy to compas.datastructures.Tree.__str__.
  • Fixed compas.geometry.bbox_numpy.minimum_volume_box to avoid numpy.linalg.LinAlgError.

Removed

  • Removed compas.scene.SceneObjectNode, functionalities merged into compas.scene.SceneObject.
  • Removed compas.scene.SceneTree, functionalities merged into compas.scene.Scene.
  • Removed default implementation of compas.geometry.trimesh_geodistance since nonexistent.
  • Removed compas.utilities.geometric_key and replaced it by compas.tolerance.TOL.geometric_key.
  • Removed compas.utilities.geometric_key_xy and replaced it by compas.tolerance.TOL.geometric_key_xy.
  • Removed indexed attribute access from all geometry classes except Point, Vector, Line, Polygon, Polyline.
  • Removed compas.datastructures.Tree.print_hierarchy.

COMPAS 2.1.0

01 Mar 23:01
Compare
Choose a tag to compare

Added

  • Added optional argument cap_ends to Brep.from_extrusion().
  • Added implementation in RhinoBrep.from_extrusion().
  • Added max_depth to compas.datastructures.Tree.print_hierarchy().
  • Added compas.datastructures.Tree.to_graph().

Changed

  • Changed compas.datastructures.TreeNode to skip serialising attributes, name and children if being empty.
  • Changed compas.datastructures.TreeNode.__repr__ to omit name if None.
  • Fix bug in compas_rhino.geometry.NurbsCurve.from_parameters and compas_rhino.geometry.NurbsCurve.from_points related to the value of the parameter degree.
  • Changed compas.scene.descriptors.ColorDictAttribute to accept a compas.colors.ColorDict as value.
  • Changed compas_rhino.scene.RhinoMeshObject.draw to preprocess vertex and face color dicts into lists.
  • Changed compas_rhino.conversions.vertices_and_faces_to_rhino to handle vertex color information correctly.

Removed

COMPAS 2.0.4

12 Feb 10:29
510a92f
Compare
Choose a tag to compare

Added

Changed

  • Fixed bug in compas_rhino.scene.

Removed

COMPAS 2.0.3

09 Feb 06:51
Compare
Choose a tag to compare

Added

  • Added compas.linalg.
  • Added compas.matrices.
  • Added compas.itertools.
  • Added compas_rhino.scene.helpers.
  • Added compas.scene.SceneObject.contrastcolor.

Changed

  • Fixed bug in compas.geometry.oriented_bounding_box_numpy to support points in plane.
  • Changed compas_rhino.scene.RhinoSceneObject to pass on positional arguments.
  • Changed compas_rhino.scene.RhinoBoxObject.draw to use attributes only.
  • Changed compas_rhino.scene.RhinoBrepObject.draw to use attributes only.
  • Changed compas_rhino.scene.RhinoCapsuleObject.draw to use attributes only.
  • Changed compas_rhino.scene.RhinoCircleObject.draw to use attributes only.
  • Changed compas_rhino.scene.RhinoConeObject.draw to use attributes only.
  • Changed compas_rhino.scene.RhinoCurveObject.draw to use attributes only.
  • Changed compas_rhino.scene.RhinoCylinderObject.draw to use attributes only.
  • Changed compas_rhino.scene.RhinoEllipseObject.draw to use attributes only.
  • Changed compas_rhino.scene.RhinoFrameObject.draw to use attributes only.
  • Changed compas_rhino.scene.RhinoGraphObject.draw to use attributes only.
  • Changed compas_rhino.scene.RhinoLineObject.draw to use attributes only.
  • Changed compas_rhino.scene.RhinoMeshObject.draw to use attributes only.
  • Changed compas_rhino.scene.RhinoPlaneObject.draw to use attributes only.
  • Changed compas_rhino.scene.RhinoPointObject.draw to use attributes only.
  • Changed compas_rhino.scene.RhinoPolygonObject.draw to use attributes only.
  • Changed compas_rhino.scene.RhinoPolyhedronObject.draw to use attributes only.
  • Changed compas_rhino.scene.RhinoPolylineObject.draw to use attributes only.
  • Changed compas_rhino.scene.RhinoSphereObject.draw to use attributes only.
  • Changed compas_rhino.scene.RhinoSurfaceObject.draw to use attributes only.
  • Changed compas_rhino.scene.RhinoTorusObject.draw to use attributes only.
  • Changed compas_rhino.scene.RhinoVectorObject.draw to use attributes only.
  • Changed compas_rhino.scene.RhinoVolMeshObject.draw to use attributes only.

Removed

  • Removed compas.geometry.linalg.
  • Removed compas.topology.matrices.
  • Removed compas.utilities.itertools.