|
7 | 7 |
|
8 | 8 | #include "ifcpp/Geometry/CVector.h"
|
9 | 9 | #include "ifcpp/Geometry/Matrix.h"
|
| 10 | +#include "ifcpp/Geometry/StyleConverter.h" |
10 | 11 |
|
11 | 12 |
|
12 | 13 | namespace ifcpp {
|
13 | 14 |
|
14 | 15 | template<typename TAdapter>
|
15 | 16 | concept CAdapter = CVector<typename TAdapter::TVector> &&
|
16 | 17 | requires( TAdapter adapter, std::vector<typename TAdapter::TVector>& vertices, std::vector<int> indices,
|
17 |
| - std::shared_ptr<IFC4X3::IfcObjectDefinition> ifcObjectDifinition, std::vector<typename TAdapter::TPolygon> polygons, |
18 |
| - std::vector<typename TAdapter::TPolyline> polylines, Matrix<typename TAdapter::TVector> matrix, std::vector<typename TAdapter::TVector> loop, |
19 |
| - std::vector<typename TAdapter::TPolygon> operand1, std::vector<typename TAdapter::TPolygon> operand2 ) { |
| 18 | + std::shared_ptr<IFC4X3::IfcObjectDefinition> ifcObjectDifinition, std::vector<typename TAdapter::TTriangle> triangles, |
| 19 | + std::vector<typename TAdapter::TMesh> meshes, std::vector<typename TAdapter::TPolyline> polylines, Matrix<typename TAdapter::TVector> matrix, |
| 20 | + std::vector<typename TAdapter::TVector> loop, std::vector<typename TAdapter::TMesh> operand1, std::vector<typename TAdapter::TMesh> operand2, |
| 21 | + std::vector<std::shared_ptr<Style>> styles ) { |
20 | 22 | { adapter.CreatePolyline( vertices ) } -> std::same_as<typename TAdapter::TPolyline>;
|
21 |
| - { adapter.CreatePolygon( vertices, indices ) } -> std::same_as<typename TAdapter::TPolygon>; |
22 |
| - { adapter.CreateEntity( ifcObjectDifinition, polygons, polylines ) } -> std::same_as<typename TAdapter::TEntity>; |
23 |
| - { adapter.Transform( &polygons, matrix ) } -> std::same_as<void>; |
| 23 | + { adapter.CreateTriangle( vertices, indices ) } -> std::same_as<typename TAdapter::TTriangle>; |
| 24 | + { adapter.CreateMesh( triangles ) } -> std::same_as<typename TAdapter::TMesh>; |
| 25 | + { adapter.CreateEntity( ifcObjectDifinition, meshes, polylines ) } -> std::same_as<typename TAdapter::TEntity>; |
| 26 | + { adapter.Transform( &meshes, matrix ) } -> std::same_as<void>; |
24 | 27 | { adapter.Transform( &polylines, matrix ) } -> std::same_as<void>;
|
| 28 | + { adapter.AddStyles( &meshes, styles ) } -> std::same_as<void>; |
| 29 | + { adapter.AddStyles( &polylines, styles ) } -> std::same_as<void>; |
25 | 30 | { adapter.Triangulate( loop ) } -> std::same_as<std::vector<int>>;
|
26 |
| - { adapter.ComputeUnion( operand1, operand2 ) } -> std::same_as<std::vector<typename TAdapter::TPolygon>>; |
27 |
| - { adapter.ComputeIntersection( operand1, operand2 ) } -> std::same_as<std::vector<typename TAdapter::TPolygon>>; |
28 |
| - { adapter.ComputeDifference( operand1, operand2 ) } -> std::same_as<std::vector<typename TAdapter::TPolygon>>; |
| 31 | + { adapter.ComputeUnion( operand1, operand2 ) } -> std::same_as<std::vector<typename TAdapter::TMesh>>; |
| 32 | + { adapter.ComputeIntersection( operand1, operand2 ) } -> std::same_as<std::vector<typename TAdapter::TMesh>>; |
| 33 | + { adapter.ComputeDifference( operand1, operand2 ) } -> std::same_as<std::vector<typename TAdapter::TMesh>>; |
29 | 34 | };
|
30 | 35 |
|
31 | 36 | }
|
0 commit comments