Skip to content

Commit 97e93aa

Browse files
authored
Merge pull request #134 from OliverEvans96/rect-area
Implement area, volume functions for rectangles
2 parents f301a7a + cd783d8 commit 97e93aa

File tree

3 files changed

+8
-1
lines changed

3 files changed

+8
-1
lines changed

src/GeometryBasics.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ export HyperSphere, Circle, Sphere
6363
export Cylinder, Cylinder2, Cylinder3, Pyramid, extremity
6464
export HyperRectangle, Rect, Rect2D, Rect3D, IRect, IRect2D, IRect3D, FRect, FRect2D, FRect3D
6565
export before, during, isinside, isoutside, meets, overlaps, intersects, finishes
66-
export centered, direction, area, update
66+
export centered, direction, area, volume, update
6767
export max_dist_dim, max_euclidean, max_euclideansq, min_dist_dim, min_euclidean
6868
export min_euclideansq, minmax_dist_dim, minmax_euclidean, minmax_euclideansq
6969
export self_intersections, split_intersections

src/primitives/rectangles.jl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,9 @@ widths(prim::Rect) = prim.widths
164164
width(prim::Rect) = prim.widths[1]
165165
height(prim::Rect) = prim.widths[2]
166166

167+
volume(prim::HyperRectangle) = prod(prim.widths)
168+
area(prim::Rect2D) = volume(prim)
169+
167170
"""
168171
split(rectangle, axis, value)
169172

test/runtests.jl

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ using GeometryBasics: attributes
1212
@test area(cube_vertices, cube_faces) == 6
1313
mesh = Mesh(cube_vertices, cube_faces)
1414
@test GeometryBasics.volume(mesh) 1
15+
@test GeometryBasics.volume(cube) 1
16+
17+
rect = Rect(1, 2, 7.5, 2.0)
18+
@test GeometryBasics.area(rect) 15
1519

1620
points_cwise = Point2f0[(0,0), (0,1), (1,1)]
1721
points_ccwise = Point2f0[(0,0), (1,0), (1,1)]

0 commit comments

Comments
 (0)