Skip to content

Commit 03b62b6

Browse files
authored
Merge pull request #52 from BlockResearchGroup/algox
Extended Algorithms - Part 1
2 parents 6297181 + 7af3ac2 commit 03b62b6

File tree

134 files changed

+3549
-5403
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

134 files changed

+3549
-5403
lines changed

CHANGELOG.md

Lines changed: 29 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -9,39 +9,51 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
99

1010
### Added
1111

12-
* Added a base `BlockModel`.
1312
* Added reference to model `Element.model` to `Element`.
1413
* Added `Element.modelgeometry` as the cached geometry of an element in model coordinates, taking into account the modifying effect of interactions with other elements.
1514
* Added `Element.modeltransformation` as the cached transformation from element to model coordinates.
1615
* Added `Element.compute_elementgeometry()`.
1716
* Added `Element.compute_modelgeometry()` to replace `Element.compute_geometry()`.
1817
* Added `Element.compute_modeltransformation()` to replace `Element.compute_worldtransformation()`.
19-
* Added `compas_model.elements.ColumnHeadElement`.
20-
* Added `compas_model.elements.ColumnHeadCrossElement`.
21-
* Added `compas_model.elements.BeamFeature`.
22-
* Added `compas_model.elements.BeamElement`.
23-
* Added `compas_model.elements.BeamIProfileElement`.
24-
* Added `compas_model.elements.BeamSquareElement`.
25-
* Added `compas_model.elements.ColumnFeature`.
26-
* Added `compas_model.elements.ColumnElement`.
27-
* Added `compas_model.elements.ColumnRoundElement`.
28-
* Added `compas_model.elements.ColumnSquareElement`.
29-
* Added `compas_model.elements.FastenersFeature`.
30-
* Added `compas_model.elements.FastenersElement`.
31-
* Added `compas_model.elements.ScrewElement`.
3218
* Added `Element.is_dirty`.
19+
* Added `compas_model.geometry.minkowski_sum_xy` to compute the Minkowski sum A + B of two convex polygons in the XY plane.
20+
* Added `compas_model.geometry.minkowski_difference_xy` as a convenience method to compute A + -B.
21+
* Added `compas_model.geometry.is_collision_poly_poly_xy` to check for collisions between convex polygons in the XY plane.
22+
* Added `compas_model.geometry.intersection_ray_triangle`.
23+
* Added `compas_model.geometry.intersections_line_aabb`.
24+
* Added `compas_model.geometry.intersections_line_box`.
25+
* Added `compas_model.geometry.intersections_ray_aabb`.
26+
* Added `compas_model.geometry.intersections_ray_box`.
27+
* Added `compas_model.geometry.is_intersection_box_box`.
28+
* Added `compas_model.geometry.is_intersection_line_aabb`.
29+
* Added `compas_model.geometry.is_intersection_line_box`.
30+
* Added `compas_model.geometry.is_intersection_ray_aabb`.
31+
* Added `compas_model.geometry.is_intersection_ray_box`.
32+
* Added `compas_model.geometry.is_intersection_segment_aabb`.
33+
* Added `compas_model.geometry.is_intersection_segment_box`.
34+
* Added `compas_model.geometry.pca_box` for fast OBB calculation.
35+
* Added `compas_model.algorithms.mesh_mesh_contacts`.
36+
* Added `compas_model.datastructures.BVH` extending the base compas tree data structure into a bounding volume hierarchy.
37+
* Added `compas_model.datastructures.AABBNode` representing a node of the BVH using an axis-aligned bounding box.
38+
* Added `compas_model.datastructures.OBBNode` representing a node of the BVH using an oriented bounding box.
39+
* Added `compas_model.datastructures.KDTree` for nearest neighbour search among elements.
40+
* Added `compas_model.models.bvh.ElementBVH`.
41+
* Added `compas_model.models.bvh.ElementAABBNode`.
42+
* Added `compas_model.models.bvh.ElementOBBNode`.
3343

3444
### Changed
3545

3646
* Changed `Element.graph_node` to `Element.graphnode`.
3747
* Changed `Element.tree_node` to `Element.treenode`.
38-
* Changed `blockmodel_interfaces` to use the bestfit frame shared by two aligned interfaces instead of the frame of first face of the pair.
39-
* Changed notebook.scene `__all__` is moved to notebook folder for building documentation.
4048

4149
### Removed
4250

4351
* Removed model reference `ElementTree.model` from `ElementTree`.
4452
* Removed `InterfaceElement` from elements.
53+
* Removed `BlockModel`.
54+
* Removed `BlockElement`.
55+
* Removed `model_interfaces`.
56+
* Removed `model_overlaps`.
4557

4658

4759
## [0.4.5] 2024-12-11
@@ -124,7 +136,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
124136
* Added `compas_model.materials.Material`.
125137
* Added `compas_model.materials.Concrete`.
126138
* Added `compas_model.materials.Timber` (stub imlementation).
127-
* Added `compas_model.interactions.ContactInterface` based on `compas_assembly.datastructures.Interface`.
139+
* Added `compas_model.interactions.ContactInteraction` based on `compas_assembly.datastructures.Interface`.
128140
* Added `compas_model.algorithms.blockmodel_interfaces` for interface detection of "block models".
129141
* Added `compas_model.elements.block.BlockGeometry` based on `compas_assembly.datastructures.Block`.
130142
* Added `compas_model.analysis.cra_penalty_solve` as wrapper for `compas_cra.equilibrium.cra_penalty_solve`.
1.85 MB
Loading
1.76 MB
Loading

docs/api.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@ API Reference
77
:maxdepth: 1
88
:titlesonly:
99

10+
api/compas_model.algorithms
1011
api/compas_model.elements
12+
api/compas_model.geometry
1113
api/compas_model.interactions
1214
api/compas_model.materials
1315
api/compas_model.models
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
********************************************************************************
2+
compas_model.algorithms
3+
********************************************************************************
4+
5+
.. currentmodule:: compas_model.algorithms
6+
7+
Functions
8+
=========
9+
10+
.. autosummary::
11+
:toctree: generated/
12+
:nosignatures:
13+
14+
mesh_mesh_contacts
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
********************************************************************************
2+
compas_model.datastructures
3+
********************************************************************************
4+
5+
.. currentmodule:: compas_model.datastructures
6+
7+
Classes
8+
=======
9+
10+
.. autosummary::
11+
:toctree: generated/
12+
:nosignatures:
13+
14+
AABBNode
15+
BVH
16+
KDTree
17+
OBBNode

docs/api/compas_model.elements.rst

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,5 @@ Classes
1111
:toctree: generated/
1212
:nosignatures:
1313

14-
BlockElement
15-
BlockFeature
16-
BlockGeometry
1714
Element
1815
Feature

docs/api/compas_model.geometry.rst

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
********************************************************************************
2+
compas_model.geometry
3+
********************************************************************************
4+
5+
.. currentmodule:: compas_model.geometry
6+
7+
Functions
8+
=========
9+
10+
.. autosummary::
11+
:toctree: generated/
12+
:nosignatures:
13+
14+
is_collision_poly_poly_xy
15+
is_intersection_box_box
16+
is_intersection_line_aabb
17+
is_intersection_line_box
18+
is_intersection_ray_aabb
19+
is_intersection_ray_box
20+
is_intersection_segment_aabb
21+
is_intersection_segment_box
22+
minkowski_difference_xy
23+
minkowski_sum_xy
24+
pca_box

docs/api/compas_model.interactions.rst

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,23 +4,12 @@ compas_model.interactions
44

55
.. currentmodule:: compas_model.interactions
66

7-
This module provides classes for defining the type of interaction that exists between two elements.
8-
The interaction type could determine, for example, how forces are transferred from one element to the other.
9-
The interaction type could also determine whether an interaction is permanent or temporary;
10-
for example, for designing construction sequences.
11-
The different types of interactions will have to be interpreted by the context in which the model is used.
12-
13-
Interactions do not define the geometry of a joint or interface, but rather how the elements are connected.
14-
In the case of a wood joint, for example, an interaction could define whether the joinery is dry, glued, or mechanical,
15-
and what the properties of this connection are.
16-
17-
187
Classes
198
=======
209

2110
.. autosummary::
2211
:toctree: generated/
2312
:nosignatures:
2413

25-
Interaction
26-
ContactInterface
14+
Contact
15+
Modifier

docs/api/compas_model.materials.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,5 @@ Classes
1313

1414
Material
1515
Concrete
16+
Steel
1617
Timber

0 commit comments

Comments
 (0)