Skip to content

Commit

Permalink
lint, format, ellipsis
Browse files Browse the repository at this point in the history
  • Loading branch information
tomvanmele committed Mar 16, 2024
1 parent 3ec3c6f commit 52bc7e1
Show file tree
Hide file tree
Showing 17 changed files with 255 additions and 367 deletions.
100 changes: 37 additions & 63 deletions src/compas_occ/brep/brep.py
Original file line number Diff line number Diff line change
@@ -1,29 +1,29 @@
from typing import List, Tuple, Union, Optional
from typing import List
from typing import Optional
from typing import Tuple
from typing import Union

import compas.geometry
import compas.datastructures

from compas.geometry import Vector
import compas.geometry
from compas.datastructures import Mesh
from compas.geometry import Brep
from compas.geometry import Frame
from compas.geometry import Translation
from compas.geometry import Plane
from compas.geometry import Point
from compas.geometry import Polyline
from compas.geometry import Polygon
from compas.geometry import Plane
from compas.datastructures import Mesh
from compas.geometry import Brep

from compas.geometry import Polyline
from compas.geometry import Translation
from compas.geometry import Vector
from OCC.Core import BOPAlgo
from OCC.Core import BRepAlgoAPI
from OCC.Core import BRep
from OCC.Core import BRepAlgoAPI
from OCC.Core import BRepBuilderAPI
from OCC.Core import BRepCheck
from OCC.Core import BRepExtrema
from OCC.Core import BRepFilletAPI
from OCC.Core import BRepGProp
from OCC.Core import BRepMesh
from OCC.Core import BRepPrimAPI
from OCC.Core import gp
from OCC.Core import GProp
from OCC.Core import IFSelect
from OCC.Core import IGESControl
Expand All @@ -36,25 +36,24 @@
from OCC.Core import TopLoc
from OCC.Core import TopoDS
from OCC.Core import TopTools

from OCC.Core import gp
from OCC.Extend import DataExchange

from compas_occ.conversions import triangle_to_face
from compas_occ.conversions import quad_to_face
from compas_occ.conversions import ngon_to_face
from compas_occ.conversions import compas_transformation_to_trsf
from compas_occ.conversions import frame_to_occ_ax2
from compas_occ.conversions import location_to_compas
from compas_occ.conversions import ngon_to_face
from compas_occ.conversions import point_to_compas
from compas_occ.conversions import quad_to_face
from compas_occ.conversions import triangle_to_face
from compas_occ.conversions import vector_to_occ
from compas_occ.conversions import location_to_compas
from compas_occ.conversions import frame_to_occ_ax2
from compas_occ.geometry import OCCNurbsSurface

from .errors import BrepFilletError

from .brepvertex import OCCBrepVertex
from .brepedge import OCCBrepEdge
from .breploop import OCCBrepLoop
from .brepface import OCCBrepFace
from .breploop import OCCBrepLoop
from .brepvertex import OCCBrepVertex
from .errors import BrepFilletError


class OCCBrep(Brep):
Expand Down Expand Up @@ -563,9 +562,7 @@ def from_box(cls, box: compas.geometry.Box) -> "OCCBrep":
zaxis = box.frame.zaxis.scaled(-0.5 * box.zsize)
frame = box.frame.transformed(Translation.from_vector(xaxis + yaxis + zaxis))
ax2 = frame_to_occ_ax2(frame) # type: ignore
shape = BRepPrimAPI.BRepPrimAPI_MakeBox(
ax2, box.xsize, box.ysize, box.zsize
).Shape()
shape = BRepPrimAPI.BRepPrimAPI_MakeBox(ax2, box.xsize, box.ysize, box.zsize).Shape()
return cls.from_native(shape)

@classmethod
Expand All @@ -582,9 +579,7 @@ def from_sphere(cls, sphere: compas.geometry.Sphere) -> "OCCBrep":
:class:`~compas_occ.brep.OCCBrep`
"""
shape = BRepPrimAPI.BRepPrimAPI_MakeSphere(
gp.gp_Pnt(*sphere.frame.point), sphere.radius
).Shape()
shape = BRepPrimAPI.BRepPrimAPI_MakeSphere(gp.gp_Pnt(*sphere.frame.point), sphere.radius).Shape()
return cls.from_native(shape)

@classmethod
Expand Down Expand Up @@ -642,9 +637,7 @@ def from_torus(cls, torus: compas.geometry.Torus) -> "OCCBrep":
raise NotImplementedError

@classmethod
def from_mesh(
cls, mesh: compas.datastructures.Mesh, solid: bool = True
) -> "OCCBrep":
def from_mesh(cls, mesh: compas.datastructures.Mesh, solid: bool = True) -> "OCCBrep":
"""
Construct a BRep from a COMPAS mesh.
Expand Down Expand Up @@ -909,9 +902,7 @@ def from_boolean_union(cls, A: "OCCBrep", B: "OCCBrep") -> "OCCBrep":
# Converters
# ==============================================================================

def to_tesselation(
self, linear_deflection: float = 1
) -> Tuple[Mesh, List[Polyline]]:
def to_tesselation(self, linear_deflection: float = 1) -> Tuple[Mesh, List[Polyline]]:
"""
Create a tesselation of the shape for visualisation.
Expand Down Expand Up @@ -955,9 +946,7 @@ def to_tesselation(
if any(edge.is_same(e) for e in seen):
continue
seen.append(edge)
pot = bt.PolygonOnTriangulation(
edge.occ_edge, triangulation, location
)
pot = bt.PolygonOnTriangulation(edge.occ_edge, triangulation, location)
if pot is None:
continue
points = []
Expand All @@ -971,9 +960,7 @@ def to_tesselation(
if any(edge.is_same(e) for e in seen):
continue
if edge.is_line:
lines.append(
Polyline([edge.vertices[0].point, edge.vertices[-1].point])
)
lines.append(Polyline([edge.vertices[0].point, edge.vertices[-1].point]))
elif edge.is_circle:
lines.append(edge.curve.to_polyline())
elif edge.is_ellipse:
Expand Down Expand Up @@ -1042,9 +1029,7 @@ def vertex_neighbors(self, vertex: OCCBrepVertex) -> List[OCCBrepVertex]:
"""
map = TopTools.TopTools_IndexedDataMapOfShapeListOfShape()
TopExp.topexp_MapShapesAndUniqueAncestors(
self.occ_shape, TopAbs.TopAbs_VERTEX, TopAbs.TopAbs_EDGE, map
)
TopExp.topexp_MapShapesAndUniqueAncestors(self.occ_shape, TopAbs.TopAbs_VERTEX, TopAbs.TopAbs_EDGE, map)
results = map.FindFromKey(vertex.occ_vertex)
iterator = TopTools.TopTools_ListIteratorOfListOfShape(results) # type: ignore
vertices = []
Expand Down Expand Up @@ -1072,9 +1057,7 @@ def vertex_edges(self, vertex: OCCBrepVertex) -> List[OCCBrepEdge]:
"""
map = TopTools.TopTools_IndexedDataMapOfShapeListOfShape()
TopExp.topexp_MapShapesAndUniqueAncestors(
self.occ_shape, TopAbs.TopAbs_VERTEX, TopAbs.TopAbs_EDGE, map
)
TopExp.topexp_MapShapesAndUniqueAncestors(self.occ_shape, TopAbs.TopAbs_VERTEX, TopAbs.TopAbs_EDGE, map)
results = map.FindFromKey(vertex.occ_vertex)
iterator = TopTools.TopTools_ListIteratorOfListOfShape(results) # type: ignore
edges = []
Expand All @@ -1098,9 +1081,7 @@ def vertex_faces(self, vertex: OCCBrepVertex) -> List[OCCBrepFace]:
"""
map = TopTools.TopTools_IndexedDataMapOfShapeListOfShape()
TopExp.topexp_MapShapesAndUniqueAncestors(
self.occ_shape, TopAbs.TopAbs_VERTEX, TopAbs.TopAbs_FACE, map
)
TopExp.topexp_MapShapesAndUniqueAncestors(self.occ_shape, TopAbs.TopAbs_VERTEX, TopAbs.TopAbs_FACE, map)
results = map.FindFromKey(vertex.occ_vertex)
iterator = TopTools.TopTools_ListIteratorOfListOfShape(results) # type: ignore
faces = []
Expand All @@ -1124,9 +1105,7 @@ def edge_faces(self, edge: OCCBrepEdge) -> List[OCCBrepFace]:
"""
map = TopTools.TopTools_IndexedDataMapOfShapeListOfShape()
TopExp.topexp_MapShapesAndUniqueAncestors(
self.occ_shape, TopAbs.TopAbs_EDGE, TopAbs.TopAbs_FACE, map
)
TopExp.topexp_MapShapesAndUniqueAncestors(self.occ_shape, TopAbs.TopAbs_EDGE, TopAbs.TopAbs_FACE, map)
results = map.FindFromKey(edge.occ_edge)
iterator = TopTools.TopTools_ListIteratorOfListOfShape(results) # type: ignore
faces = []
Expand All @@ -1152,9 +1131,7 @@ def edge_loops(self, edge: OCCBrepEdge) -> List[OCCBrepLoop]:
"""

map = TopTools.TopTools_IndexedDataMapOfShapeListOfShape()
TopExp.topexp_MapShapesAndUniqueAncestors(
self.occ_shape, TopAbs.TopAbs_EDGE, TopAbs.TopAbs_WIRE, map
)
TopExp.topexp_MapShapesAndUniqueAncestors(self.occ_shape, TopAbs.TopAbs_EDGE, TopAbs.TopAbs_WIRE, map)
results = map.FindFromKey(edge.occ_edge)
iterator = TopTools.TopTools_ListIteratorOfListOfShape(results) # type: ignore
loops = []
Expand Down Expand Up @@ -1332,9 +1309,7 @@ def transformed(self, matrix: compas.geometry.Transformation) -> "OCCBrep":
shape = builder.ModifiedShape(self.occ_shape)
return OCCBrep.from_shape(shape)

def contours(
self, planes: List[compas.geometry.Plane]
) -> List[List[compas.geometry.Polyline]]:
def contours(self, planes: List[compas.geometry.Plane]) -> List[List[compas.geometry.Polyline]]:
"""
Generate contour lines by slicing the BRep shape with a series of planes.
Expand Down Expand Up @@ -1438,10 +1413,11 @@ def trim(self, plane: compas.geometry.Plane) -> None:
None
"""
from compas_occ.occ import split_shapes
from compas_occ.occ import compute_shape_centreofmass
from compas.geometry import is_point_behind_plane

from compas_occ.occ import compute_shape_centreofmass
from compas_occ.occ import split_shapes

if isinstance(plane, Frame):
plane = Plane.from_frame(plane)

Expand Down Expand Up @@ -1540,9 +1516,7 @@ def fillet(
else:
raise BrepFilletError("Fillet operation could not be completed.")

def filleted(
self, radius: float, exclude: Optional[List[OCCBrepEdge]] = None
) -> "OCCBrep":
def filleted(self, radius: float, exclude: Optional[List[OCCBrepEdge]] = None) -> "OCCBrep":
"""Construct a copy of a Brep with filleted edges.
Parameters
Expand Down
79 changes: 28 additions & 51 deletions src/compas_occ/brep/brepedge.py
Original file line number Diff line number Diff line change
@@ -1,36 +1,35 @@
from typing import List
from typing import Tuple
from typing import Optional
from typing import Tuple

from compas.geometry import Bezier
from compas.geometry import BrepEdge
from compas.geometry import Circle
from compas.geometry import Ellipse
from compas.geometry import Hyperbola
from compas.geometry import Line
from compas.geometry import NurbsCurve
from compas.geometry import Parabola
from compas.geometry import Point
from OCC.Core import BRepAdaptor
from OCC.Core import BRepBuilderAPI
from OCC.Core import BRepAlgo
from OCC.Core import BRepBuilderAPI
from OCC.Core import BRepGProp
from OCC.Core import GProp
from OCC.Core import TopAbs
from OCC.Core import TopoDS
from OCC.Core import TopExp

from compas.geometry import Point
from compas.geometry import Line
from compas.geometry import Circle
from compas.geometry import Ellipse
from compas.geometry import Hyperbola
from compas.geometry import Parabola
from compas.geometry import Bezier
from compas.geometry import NurbsCurve
from compas.geometry import BrepEdge
from OCC.Core import TopoDS

from compas_occ.brep import OCCBrepVertex
from compas_occ.conversions import line_to_occ
from compas_occ.conversions import point_to_occ
from compas_occ.conversions import circle_to_occ
from compas_occ.conversions import bezier_to_compas
from compas_occ.conversions import bspline_to_compas
from compas_occ.conversions import circle_to_compas
from compas_occ.conversions import circle_to_occ
from compas_occ.conversions import ellipse_to_compas
from compas_occ.conversions import hyperbola_to_compas
from compas_occ.conversions import line_to_occ
from compas_occ.conversions import parabola_to_compas
from compas_occ.conversions import bezier_to_compas
from compas_occ.conversions import bspline_to_compas
from compas_occ.conversions import point_to_occ
from compas_occ.geometry import OCCCurve
from compas_occ.geometry import OCCCurve2d
from compas_occ.geometry import OCCSurface
Expand Down Expand Up @@ -345,9 +344,7 @@ def from_point_point(cls, a: Point, b: Point) -> "OCCBrepEdge":
The constructed edge.
"""
builder = BRepBuilderAPI.BRepBuilderAPI_MakeEdge(
point_to_occ(a), point_to_occ(b)
)
builder = BRepBuilderAPI.BRepBuilderAPI_MakeEdge(point_to_occ(a), point_to_occ(b))
return cls(builder.Edge())

@classmethod
Expand Down Expand Up @@ -423,9 +420,7 @@ def from_circle(
"""
if params:
builder = BRepBuilderAPI.BRepBuilderAPI_MakeEdge(
circle_to_occ(circle), *params
)
builder = BRepBuilderAPI.BRepBuilderAPI_MakeEdge(circle_to_occ(circle), *params)
elif points:
builder = BRepBuilderAPI.BRepBuilderAPI_MakeEdge(
circle_to_occ(circle),
Expand Down Expand Up @@ -513,9 +508,7 @@ def from_curve(
curve2d.occ_curve, surface.occ_surface, p1, p2, *params
)
else:
builder = BRepBuilderAPI.BRepBuilderAPI_MakeEdge(
curve2d.occ_curve, surface.occ_surface, p1, p2
)
builder = BRepBuilderAPI.BRepBuilderAPI_MakeEdge(curve2d.occ_curve, surface.occ_surface, p1, p2)
elif vertices:
v1 = vertices[0].occ_vertex
v2 = vertices[1].occ_vertex
Expand All @@ -524,18 +517,12 @@ def from_curve(
curve2d.occ_curve, surface.occ_surface, v1, v2, *params
)
else:
builder = BRepBuilderAPI.BRepBuilderAPI_MakeEdge(
curve2d.occ_curve, surface.occ_surface, v1, v2
)
builder = BRepBuilderAPI.BRepBuilderAPI_MakeEdge(curve2d.occ_curve, surface.occ_surface, v1, v2)
else:
if params:
builder = BRepBuilderAPI.BRepBuilderAPI_MakeEdge(
curve2d.occ_curve, surface.occ_surface, *params
)
builder = BRepBuilderAPI.BRepBuilderAPI_MakeEdge(curve2d.occ_curve, surface.occ_surface, *params)
else:
builder = BRepBuilderAPI.BRepBuilderAPI_MakeEdge(
curve2d.occ_curve, surface.occ_surface
)
builder = BRepBuilderAPI.BRepBuilderAPI_MakeEdge(curve2d.occ_curve, surface.occ_surface)
else:
if not curve:
raise ValueError("No curve was provided.")
Expand All @@ -544,29 +531,19 @@ def from_curve(
p1 = point_to_occ(points[0])
p2 = point_to_occ(points[1])
if params:
builder = BRepBuilderAPI.BRepBuilderAPI_MakeEdge(
curve.occ_curve, p1, p2, *params
)
builder = BRepBuilderAPI.BRepBuilderAPI_MakeEdge(curve.occ_curve, p1, p2, *params)
else:
builder = BRepBuilderAPI.BRepBuilderAPI_MakeEdge(
curve.occ_curve, p1, p2
)
builder = BRepBuilderAPI.BRepBuilderAPI_MakeEdge(curve.occ_curve, p1, p2)
elif vertices:
v1 = vertices[0].occ_vertex
v2 = vertices[1].occ_vertex
if params:
builder = BRepBuilderAPI.BRepBuilderAPI_MakeEdge(
curve.occ_curve, v1, v2, *params
)
builder = BRepBuilderAPI.BRepBuilderAPI_MakeEdge(curve.occ_curve, v1, v2, *params)
else:
builder = BRepBuilderAPI.BRepBuilderAPI_MakeEdge(
curve.occ_curve, v1, v2
)
builder = BRepBuilderAPI.BRepBuilderAPI_MakeEdge(curve.occ_curve, v1, v2)
else:
if params:
builder = BRepBuilderAPI.BRepBuilderAPI_MakeEdge(
curve.occ_curve, *params
)
builder = BRepBuilderAPI.BRepBuilderAPI_MakeEdge(curve.occ_curve, *params)
else:
builder = BRepBuilderAPI.BRepBuilderAPI_MakeEdge(curve.occ_curve)

Expand Down
Loading

0 comments on commit 52bc7e1

Please sign in to comment.