mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-19 22:50:21 +00:00
make: Try to build and run others examples
This commit is contained in:
@@ -215,11 +215,22 @@ jobs:
|
|||||||
-DCMAKE_C_COMPILER_LAUNCHER=ccache \
|
-DCMAKE_C_COMPILER_LAUNCHER=ccache \
|
||||||
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache
|
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache
|
||||||
cmake --build .
|
cmake --build .
|
||||||
|
# To display executed command
|
||||||
|
set -x
|
||||||
|
./arbitrary_open_profile_def
|
||||||
|
./composite_profile_def
|
||||||
|
./csg_primitive
|
||||||
|
./ellipse_pies
|
||||||
|
./faces
|
||||||
|
./ifc_curve_rebar
|
||||||
|
./profiles
|
||||||
./IfcParseExamples "../IfcParseExamples_test.ifc"
|
./IfcParseExamples "../IfcParseExamples_test.ifc"
|
||||||
./IfcOpenHouse
|
./IfcOpenHouse
|
||||||
./IfcAdvancedHouse
|
./IfcAdvancedHouse
|
||||||
./IfcAlignment
|
./IfcAlignment
|
||||||
./IfcSimplifiedAlignment
|
./IfcSimplifiedAlignment
|
||||||
|
./triangulated_faceset
|
||||||
|
set +x
|
||||||
|
|
||||||
- name: Test ifcopenshell-python
|
- name: Test ifcopenshell-python
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
@@ -218,6 +218,7 @@ if(BUILD_IFCGEOM AND WITH_OPENCASCADE)
|
|||||||
find_package(OpenCASCADE REQUIRED)
|
find_package(OpenCASCADE REQUIRED)
|
||||||
add_definitions(-DIFOPSH_WITH_OPENCASCADE)
|
add_definitions(-DIFOPSH_WITH_OPENCASCADE)
|
||||||
set(SWIG_DEFINES ${SWIG_DEFINES} -DIFOPSH_WITH_OPENCASCADE)
|
set(SWIG_DEFINES ${SWIG_DEFINES} -DIFOPSH_WITH_OPENCASCADE)
|
||||||
|
# set(OPENCASCADE_LIBRARIES ${OpenCASCADE_LIBRARIES})
|
||||||
list(APPEND GEOMETRY_KERNELS opencascade)
|
list(APPEND GEOMETRY_KERNELS opencascade)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|||||||
@@ -35,7 +35,107 @@ else()
|
|||||||
include_directories("${CMAKE_SOURCE_DIR}/../src")
|
include_directories("${CMAKE_SOURCE_DIR}/../src")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(SCHEMA_VERSIONS MATCHES "4")
|
||||||
|
# arbitrary_open_profile_def
|
||||||
|
add_executable(arbitrary_open_profile_def arbitrary_open_profile_def.cpp)
|
||||||
|
|
||||||
|
if(STANDALONE_PROJECT)
|
||||||
|
target_link_libraries(arbitrary_open_profile_def IfcOpenShell::IfcParse)
|
||||||
|
else()
|
||||||
|
target_include_directories(arbitrary_open_profile_def PRIVATE "${CMAKE_SOURCE_DIR}/../src")
|
||||||
|
target_link_libraries(arbitrary_open_profile_def IfcParse)
|
||||||
|
set_target_properties(arbitrary_open_profile_def PROPERTIES FOLDER Examples)
|
||||||
|
endif()
|
||||||
|
install(TARGETS arbitrary_open_profile_def)
|
||||||
|
|
||||||
|
# triangulated_faceset
|
||||||
|
add_executable(triangulated_faceset triangulated_faceset.cpp)
|
||||||
|
|
||||||
|
if(STANDALONE_PROJECT)
|
||||||
|
target_link_libraries(triangulated_faceset IfcOpenShell::IfcParse)
|
||||||
|
else()
|
||||||
|
target_include_directories(triangulated_faceset PRIVATE "${CMAKE_SOURCE_DIR}/../src")
|
||||||
|
target_link_libraries(triangulated_faceset IfcParse)
|
||||||
|
set_target_properties(triangulated_faceset PROPERTIES FOLDER Examples)
|
||||||
|
endif()
|
||||||
|
install(TARGETS triangulated_faceset)
|
||||||
|
|
||||||
|
endif()
|
||||||
|
|
||||||
if(SCHEMA_VERSIONS MATCHES "2x3")
|
if(SCHEMA_VERSIONS MATCHES "2x3")
|
||||||
|
# composite_profile_def.cpp
|
||||||
|
add_executable(composite_profile_def composite_profile_def.cpp)
|
||||||
|
|
||||||
|
if(STANDALONE_PROJECT)
|
||||||
|
target_link_libraries(composite_profile_def IfcOpenShell::IfcParse)
|
||||||
|
else()
|
||||||
|
target_include_directories(composite_profile_def PRIVATE "${CMAKE_SOURCE_DIR}/../src")
|
||||||
|
target_link_libraries(composite_profile_def IfcParse)
|
||||||
|
set_target_properties(composite_profile_def PROPERTIES FOLDER Examples)
|
||||||
|
endif()
|
||||||
|
install(TARGETS composite_profile_def)
|
||||||
|
|
||||||
|
# csg_primitive
|
||||||
|
add_executable(csg_primitive csg_primitive.cpp)
|
||||||
|
|
||||||
|
if(STANDALONE_PROJECT)
|
||||||
|
target_link_libraries(csg_primitive IfcOpenShell::IfcParse)
|
||||||
|
else()
|
||||||
|
target_include_directories(csg_primitive PRIVATE "${CMAKE_SOURCE_DIR}/../src")
|
||||||
|
target_link_libraries(csg_primitive IfcParse)
|
||||||
|
set_target_properties(csg_primitive PROPERTIES FOLDER Examples)
|
||||||
|
endif()
|
||||||
|
install(TARGETS csg_primitive)
|
||||||
|
|
||||||
|
# ellipse_pies
|
||||||
|
add_executable(ellipse_pies ellipse_pies.cpp)
|
||||||
|
|
||||||
|
if(STANDALONE_PROJECT)
|
||||||
|
target_link_libraries(ellipse_pies IfcOpenShell::IfcParse)
|
||||||
|
else()
|
||||||
|
target_include_directories(ellipse_pies PRIVATE "${CMAKE_SOURCE_DIR}/../src")
|
||||||
|
target_link_libraries(ellipse_pies IfcParse)
|
||||||
|
set_target_properties(ellipse_pies PROPERTIES FOLDER Examples)
|
||||||
|
endif()
|
||||||
|
install(TARGETS ellipse_pies)
|
||||||
|
|
||||||
|
# faces
|
||||||
|
add_executable(faces faces.cpp)
|
||||||
|
|
||||||
|
if(STANDALONE_PROJECT)
|
||||||
|
target_link_libraries(faces IfcOpenShell::IfcParse)
|
||||||
|
else()
|
||||||
|
target_include_directories(faces PRIVATE "${CMAKE_SOURCE_DIR}/../src")
|
||||||
|
target_link_libraries(faces IfcParse)
|
||||||
|
set_target_properties(faces PROPERTIES FOLDER Examples)
|
||||||
|
endif()
|
||||||
|
install(TARGETS faces)
|
||||||
|
|
||||||
|
# ifc_curve_rebar
|
||||||
|
add_executable(ifc_curve_rebar ifc_curve_rebar.cpp)
|
||||||
|
|
||||||
|
if(STANDALONE_PROJECT)
|
||||||
|
target_link_libraries(ifc_curve_rebar IfcOpenShell::IfcParse)
|
||||||
|
else()
|
||||||
|
target_include_directories(ifc_curve_rebar PRIVATE "${CMAKE_SOURCE_DIR}/../src")
|
||||||
|
target_link_libraries(ifc_curve_rebar IfcParse)
|
||||||
|
set_target_properties(ifc_curve_rebar PROPERTIES FOLDER Examples)
|
||||||
|
endif()
|
||||||
|
install(TARGETS ifc_curve_rebar)
|
||||||
|
|
||||||
|
# profiles
|
||||||
|
add_executable(profiles profiles.cpp)
|
||||||
|
|
||||||
|
if(STANDALONE_PROJECT)
|
||||||
|
target_link_libraries(profiles IfcOpenShell::IfcParse)
|
||||||
|
else()
|
||||||
|
target_include_directories(profiles PRIVATE "${CMAKE_SOURCE_DIR}/../src")
|
||||||
|
target_link_libraries(profiles IfcParse)
|
||||||
|
set_target_properties(profiles PROPERTIES FOLDER Examples)
|
||||||
|
endif()
|
||||||
|
install(TARGETS profiles)
|
||||||
|
|
||||||
|
# IfcParseExamples
|
||||||
add_executable(IfcParseExamples IfcParseExamples.cpp)
|
add_executable(IfcParseExamples IfcParseExamples.cpp)
|
||||||
|
|
||||||
if(STANDALONE_PROJECT)
|
if(STANDALONE_PROJECT)
|
||||||
@@ -48,6 +148,7 @@ if(SCHEMA_VERSIONS MATCHES "2x3")
|
|||||||
install(TARGETS IfcParseExamples)
|
install(TARGETS IfcParseExamples)
|
||||||
|
|
||||||
if(WITH_OPENCASCADE)
|
if(WITH_OPENCASCADE)
|
||||||
|
# IfcOpenHouse and IfcAdvancedHouse
|
||||||
add_executable(IfcOpenHouse IfcOpenHouse.cpp)
|
add_executable(IfcOpenHouse IfcOpenHouse.cpp)
|
||||||
add_executable(IfcAdvancedHouse IfcAdvancedHouse.cpp)
|
add_executable(IfcAdvancedHouse IfcAdvancedHouse.cpp)
|
||||||
add_library(IfcHouseInterface INTERFACE)
|
add_library(IfcHouseInterface INTERFACE)
|
||||||
@@ -66,6 +167,7 @@ if(SCHEMA_VERSIONS MATCHES "2x3")
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(SCHEMA_VERSIONS MATCHES "4x3_add2")
|
if(SCHEMA_VERSIONS MATCHES "4x3_add2")
|
||||||
|
# IfcAlignment and IfcSimplifiedAlignment
|
||||||
add_executable(IfcAlignment IfcAlignment.cpp)
|
add_executable(IfcAlignment IfcAlignment.cpp)
|
||||||
add_executable(IfcSimplifiedAlignment IfcSimplifiedAlignment.cpp)
|
add_executable(IfcSimplifiedAlignment IfcSimplifiedAlignment.cpp)
|
||||||
add_library(IfcAlignmentInterface INTERFACE)
|
add_library(IfcAlignmentInterface INTERFACE)
|
||||||
|
|||||||
@@ -28,16 +28,16 @@
|
|||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
|
|
||||||
#include "../ifcparse/Ifc2x3.h"
|
#define IfcSchema Ifc4
|
||||||
#include "../ifcparse/IfcUtil.h"
|
#include "ifcparse/Ifc4.h"
|
||||||
#include "../ifcparse/IfcHierarchyHelper.h"
|
#include "ifcparse/IfcHierarchyHelper.h"
|
||||||
|
|
||||||
typedef std::string S;
|
typedef std::string S;
|
||||||
typedef IfcParse::IfcGlobalId guid;
|
typedef IfcParse::IfcGlobalId guid;
|
||||||
boost::none_t const null = boost::none;
|
boost::none_t const null = boost::none;
|
||||||
static int i = 0;
|
static int i = 0;
|
||||||
|
|
||||||
void create_product_from_item(IfcHierarchyHelper& file, IfcSchema::IfcRepresentationItem* item, const std::string& s) {
|
void create_product_from_item(IfcHierarchyHelper<IfcSchema>& file, IfcSchema::IfcRepresentationItem* item, const std::string& s) {
|
||||||
IfcSchema::IfcBuildingElementProxy* product = new IfcSchema::IfcBuildingElementProxy(
|
IfcSchema::IfcBuildingElementProxy* product = new IfcSchema::IfcBuildingElementProxy(
|
||||||
guid(), 0, S("product"), null, null, 0, 0, null, null);
|
guid(), 0, S("product"), null, null, 0, 0, null, null);
|
||||||
file.addBuildingProduct(product);
|
file.addBuildingProduct(product);
|
||||||
@@ -50,7 +50,7 @@ void create_product_from_item(IfcHierarchyHelper& file, IfcSchema::IfcRepresenta
|
|||||||
items->push(item);
|
items->push(item);
|
||||||
|
|
||||||
if (s == "GeometricSet") {
|
if (s == "GeometricSet") {
|
||||||
IfcSchema::IfcGeometricSet* set = new IfcSchema::IfcGeometricSet(items->generalize());
|
IfcSchema::IfcGeometricSet* set = new IfcSchema::IfcGeometricSet(items->as<IfcSchema::IfcGeometricSetSelect>());
|
||||||
file.addEntity(set);
|
file.addEntity(set);
|
||||||
items = IfcSchema::IfcRepresentationItem::list::ptr(new IfcSchema::IfcRepresentationItem::list());
|
items = IfcSchema::IfcRepresentationItem::list::ptr(new IfcSchema::IfcRepresentationItem::list());
|
||||||
items->push(set);
|
items->push(set);
|
||||||
@@ -67,7 +67,7 @@ void create_product_from_item(IfcHierarchyHelper& file, IfcSchema::IfcRepresenta
|
|||||||
product->setRepresentation(shape);
|
product->setRepresentation(shape);
|
||||||
}
|
}
|
||||||
|
|
||||||
void create_surfaces_from_profile(IfcHierarchyHelper& file, IfcSchema::IfcProfileDef* profile) {
|
void create_surfaces_from_profile(IfcHierarchyHelper<IfcSchema>& file, IfcSchema::IfcProfileDef* profile) {
|
||||||
IfcSchema::IfcSurfaceOfLinearExtrusion* extrusion = new IfcSchema::IfcSurfaceOfLinearExtrusion(profile, file.addPlacement3d(), file.addTriplet<IfcSchema::IfcDirection>(0, 0, 1), 100.);
|
IfcSchema::IfcSurfaceOfLinearExtrusion* extrusion = new IfcSchema::IfcSurfaceOfLinearExtrusion(profile, file.addPlacement3d(), file.addTriplet<IfcSchema::IfcDirection>(0, 0, 1), 100.);
|
||||||
file.addEntity(extrusion);
|
file.addEntity(extrusion);
|
||||||
|
|
||||||
@@ -80,7 +80,7 @@ void create_surfaces_from_profile(IfcHierarchyHelper& file, IfcSchema::IfcProfil
|
|||||||
create_product_from_item(file, revolution, "GeometricSet");
|
create_product_from_item(file, revolution, "GeometricSet");
|
||||||
}
|
}
|
||||||
|
|
||||||
void create_solids_from_profile(IfcHierarchyHelper& file, IfcSchema::IfcProfileDef* profile) {
|
void create_solids_from_profile(IfcHierarchyHelper<IfcSchema>& file, IfcSchema::IfcProfileDef* profile) {
|
||||||
IfcSchema::IfcExtrudedAreaSolid* extrusion = new IfcSchema::IfcExtrudedAreaSolid(profile, file.addPlacement3d(), file.addTriplet<IfcSchema::IfcDirection>(0, 0, 1), 100.);
|
IfcSchema::IfcExtrudedAreaSolid* extrusion = new IfcSchema::IfcExtrudedAreaSolid(profile, file.addPlacement3d(), file.addTriplet<IfcSchema::IfcDirection>(0, 0, 1), 100.);
|
||||||
file.addEntity(extrusion);
|
file.addEntity(extrusion);
|
||||||
|
|
||||||
@@ -96,7 +96,7 @@ void create_solids_from_profile(IfcHierarchyHelper& file, IfcSchema::IfcProfileD
|
|||||||
create_product_from_item(file, revolution2, "SweptSolid");
|
create_product_from_item(file, revolution2, "SweptSolid");
|
||||||
}
|
}
|
||||||
|
|
||||||
void create_products_from_curve(IfcHierarchyHelper& file, IfcSchema::IfcBoundedCurve* curve) {
|
void create_products_from_curve(IfcHierarchyHelper<IfcSchema>& file, IfcSchema::IfcBoundedCurve* curve) {
|
||||||
IfcSchema::IfcArbitraryOpenProfileDef* open = new IfcSchema::IfcArbitraryOpenProfileDef(IfcSchema::IfcProfileTypeEnum::IfcProfileType_CURVE, null, curve);
|
IfcSchema::IfcArbitraryOpenProfileDef* open = new IfcSchema::IfcArbitraryOpenProfileDef(IfcSchema::IfcProfileTypeEnum::IfcProfileType_CURVE, null, curve);
|
||||||
IfcSchema::IfcCenterLineProfileDef* center_line = new IfcSchema::IfcCenterLineProfileDef(IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, curve, 10.);
|
IfcSchema::IfcCenterLineProfileDef* center_line = new IfcSchema::IfcCenterLineProfileDef(IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, curve, 10.);
|
||||||
file.addEntity(open);
|
file.addEntity(open);
|
||||||
@@ -108,8 +108,8 @@ void create_products_from_curve(IfcHierarchyHelper& file, IfcSchema::IfcBoundedC
|
|||||||
|
|
||||||
int main(int argc, char** argv) {
|
int main(int argc, char** argv) {
|
||||||
const char filename[] = "IfcArbitraryOpenProfileDef.ifc";
|
const char filename[] = "IfcArbitraryOpenProfileDef.ifc";
|
||||||
IfcHierarchyHelper file;
|
IfcHierarchyHelper<IfcSchema> file;
|
||||||
file.header().file_name().name(filename);
|
file.header().file_name()->setname(filename);
|
||||||
|
|
||||||
double coords1[] = {-50.0, 0.0};
|
double coords1[] = {-50.0, 0.0};
|
||||||
double coords2[] = { 50.0, 0.0};
|
double coords2[] = { 50.0, 0.0};
|
||||||
@@ -124,17 +124,18 @@ int main(int argc, char** argv) {
|
|||||||
|
|
||||||
IfcSchema::IfcEllipse* ellipse = new IfcSchema::IfcEllipse(file.addPlacement2d(), 50., 25.);
|
IfcSchema::IfcEllipse* ellipse = new IfcSchema::IfcEllipse(file.addPlacement2d(), 50., 25.);
|
||||||
file.addEntity(ellipse);
|
file.addEntity(ellipse);
|
||||||
IfcEntityList::ptr trim1(new IfcEntityList);
|
aggregate_of_instance::ptr trim1(new aggregate_of_instance);
|
||||||
IfcEntityList::ptr trim2(new IfcEntityList);
|
aggregate_of_instance::ptr trim2(new aggregate_of_instance);
|
||||||
trim1->push(new IfcSchema::IfcParameterValue( 0.));
|
trim1->push(new IfcSchema::IfcParameterValue( 0.));
|
||||||
trim2->push(new IfcSchema::IfcParameterValue(180.));
|
trim2->push(new IfcSchema::IfcParameterValue(180.));
|
||||||
IfcSchema::IfcTrimmedCurve* trim = new IfcSchema::IfcTrimmedCurve(ellipse, trim1, trim2, true, IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_PARAMETER);
|
IfcSchema::IfcTrimmedCurve* trim = new IfcSchema::IfcTrimmedCurve(ellipse, trim1->as<IfcSchema::IfcTrimmingSelect>(), trim2->as<IfcSchema::IfcTrimmingSelect>(), true, IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_PARAMETER);
|
||||||
file.addEntity(trim);
|
file.addEntity(trim);
|
||||||
|
|
||||||
create_products_from_curve(file, trim);
|
create_products_from_curve(file, trim);
|
||||||
|
|
||||||
file.getSingle<Ifc2x3::IfcProject>()->setName("IfcArbitraryOpenProfileDef");
|
using namespace std::string_literals;
|
||||||
|
file.getSingle<IfcSchema::IfcProject>()->setName("IfcArbitraryOpenProfileDef"s);
|
||||||
|
|
||||||
std::ofstream f(filename);
|
std::ofstream f(filename);
|
||||||
f << file;
|
f << file;
|
||||||
}
|
}
|
||||||
@@ -27,9 +27,9 @@
|
|||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
|
|
||||||
#include "../ifcparse/Ifc2x3.h"
|
#define IfcSchema Ifc2x3
|
||||||
#include "../ifcparse/IfcUtil.h"
|
#include "ifcparse/Ifc2x3.h"
|
||||||
#include "../ifcparse/IfcHierarchyHelper.h"
|
#include "ifcparse/IfcHierarchyHelper.h"
|
||||||
|
|
||||||
typedef std::string S;
|
typedef std::string S;
|
||||||
typedef IfcParse::IfcGlobalId guid;
|
typedef IfcParse::IfcGlobalId guid;
|
||||||
@@ -37,8 +37,8 @@ boost::none_t const null = boost::none;
|
|||||||
|
|
||||||
int main(int argc, char** argv) {
|
int main(int argc, char** argv) {
|
||||||
const char filename[] = "IfcCompositeProfileDef.ifc";
|
const char filename[] = "IfcCompositeProfileDef.ifc";
|
||||||
IfcHierarchyHelper file;
|
IfcHierarchyHelper<IfcSchema> file;
|
||||||
file.header().file_name().name(filename);
|
file.header().file_name()->setname(filename);
|
||||||
|
|
||||||
double coords1[] = {100.0, 0.0};
|
double coords1[] = {100.0, 0.0};
|
||||||
double coords2[] = {200.0, 0.0};
|
double coords2[] = {200.0, 0.0};
|
||||||
@@ -112,7 +112,8 @@ int main(int argc, char** argv) {
|
|||||||
|
|
||||||
product->setRepresentation(shape);
|
product->setRepresentation(shape);
|
||||||
|
|
||||||
file.getSingle<IfcSchema::IfcProject>()->setName("IfcCompositeProfileDef");
|
using namespace std::string_literals;
|
||||||
|
file.getSingle<IfcSchema::IfcProject>()->setName("IfcCompositeProfileDef"s);
|
||||||
|
|
||||||
std::ofstream f(filename);
|
std::ofstream f(filename);
|
||||||
f << file;
|
f << file;
|
||||||
|
|||||||
@@ -27,9 +27,9 @@
|
|||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
|
|
||||||
#include "../ifcparse/Ifc2x3.h"
|
#define IfcSchema Ifc2x3
|
||||||
#include "../ifcparse/IfcUtil.h"
|
#include "ifcparse/Ifc2x3.h"
|
||||||
#include "../ifcparse/IfcHierarchyHelper.h"
|
#include "ifcparse/IfcHierarchyHelper.h"
|
||||||
|
|
||||||
typedef std::string S;
|
typedef std::string S;
|
||||||
typedef IfcParse::IfcGlobalId guid;
|
typedef IfcParse::IfcGlobalId guid;
|
||||||
@@ -101,7 +101,7 @@ public:
|
|||||||
return operate(OP_INTERSECT, p);
|
return operate(OP_INTERSECT, p);
|
||||||
}
|
}
|
||||||
|
|
||||||
IfcSchema::IfcRepresentationItem* serialize(IfcHierarchyHelper& file) const {
|
IfcSchema::IfcRepresentationItem* serialize(IfcHierarchyHelper<IfcSchema>& file) const {
|
||||||
IfcSchema::IfcRepresentationItem* my;
|
IfcSchema::IfcRepresentationItem* my;
|
||||||
if (op == OP_TERMINAL) {
|
if (op == OP_TERMINAL) {
|
||||||
IfcSchema::IfcAxis2Placement3D* place = file.addPlacement3d(x,y,z,zx,zy,zz,xx,xy,xz);
|
IfcSchema::IfcAxis2Placement3D* place = file.addPlacement3d(x,y,z,zx,zy,zz,xx,xy,xz);
|
||||||
@@ -117,7 +117,7 @@ public:
|
|||||||
my = new IfcSchema::IfcRightCircularCone(place, b, a);
|
my = new IfcSchema::IfcRightCircularCone(place, b, a);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
IfcSchema::IfcBooleanOperator::IfcBooleanOperator o;
|
IfcSchema::IfcBooleanOperator o = IfcSchema::IfcBooleanOperator::IfcBooleanOperator_UNION;
|
||||||
if (op == OP_ADD) {
|
if (op == OP_ADD) {
|
||||||
o = IfcSchema::IfcBooleanOperator::IfcBooleanOperator_UNION;
|
o = IfcSchema::IfcBooleanOperator::IfcBooleanOperator_UNION;
|
||||||
} else if (op == OP_SUBTRACT) {
|
} else if (op == OP_SUBTRACT) {
|
||||||
@@ -125,7 +125,7 @@ public:
|
|||||||
} else if (op == OP_INTERSECT) {
|
} else if (op == OP_INTERSECT) {
|
||||||
o = IfcSchema::IfcBooleanOperator::IfcBooleanOperator_INTERSECTION;
|
o = IfcSchema::IfcBooleanOperator::IfcBooleanOperator_INTERSECTION;
|
||||||
}
|
}
|
||||||
my = new IfcSchema::IfcBooleanResult(o, left->serialize(file), right->serialize(file));
|
my = new IfcSchema::IfcBooleanResult(o, left->serialize(file)->as<IfcSchema::IfcBooleanOperand>(), right->serialize(file)->as<IfcSchema::IfcBooleanOperand>());
|
||||||
}
|
}
|
||||||
file.addEntity(my);
|
file.addEntity(my);
|
||||||
return my;
|
return my;
|
||||||
@@ -134,8 +134,8 @@ public:
|
|||||||
|
|
||||||
int main(int argc, char** argv) {
|
int main(int argc, char** argv) {
|
||||||
const char filename[] = "IfcCsgPrimitive.ifc";
|
const char filename[] = "IfcCsgPrimitive.ifc";
|
||||||
IfcHierarchyHelper file;
|
IfcHierarchyHelper<IfcSchema> file;
|
||||||
file.header().file_name().name(filename);
|
file.header().file_name()->setname(filename);
|
||||||
|
|
||||||
IfcSchema::IfcRepresentationItem* csg1 = Node::Box(8000.,6000.,3000.).subtract(
|
IfcSchema::IfcRepresentationItem* csg1 = Node::Box(8000.,6000.,3000.).subtract(
|
||||||
Node::Box(7600.,5600.,2800.).move(200.,200.,200.)
|
Node::Box(7600.,5600.,2800.).move(200.,200.,200.)
|
||||||
@@ -186,7 +186,8 @@ int main(int argc, char** argv) {
|
|||||||
|
|
||||||
product->setRepresentation(shape);
|
product->setRepresentation(shape);
|
||||||
|
|
||||||
file.getSingle<IfcSchema::IfcProject>()->setName("IfcCompositeProfileDef");
|
using namespace std::string_literals;
|
||||||
|
file.getSingle<IfcSchema::IfcProject>()->setName("IfcCompositeProfileDef"s);
|
||||||
|
|
||||||
std::ofstream f(filename);
|
std::ofstream f(filename);
|
||||||
f << file;
|
f << file;
|
||||||
|
|||||||
@@ -27,9 +27,9 @@
|
|||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
|
|
||||||
#include "../ifcparse/Ifc2x3.h"
|
#define IfcSchema Ifc2x3
|
||||||
#include "../ifcparse/IfcUtil.h"
|
#include "ifcparse/Ifc2x3.h"
|
||||||
#include "../ifcparse/IfcHierarchyHelper.h"
|
#include "ifcparse/IfcHierarchyHelper.h"
|
||||||
|
|
||||||
typedef std::string S;
|
typedef std::string S;
|
||||||
typedef IfcParse::IfcGlobalId guid;
|
typedef IfcParse::IfcGlobalId guid;
|
||||||
@@ -44,7 +44,7 @@ typedef struct {
|
|||||||
|
|
||||||
static int i = 0;
|
static int i = 0;
|
||||||
|
|
||||||
void create_testcase_for(IfcHierarchyHelper& file, const EllipsePie& pie, Ifc2x3::IfcTrimmingPreference::IfcTrimmingPreference pref) {
|
void create_testcase_for(IfcHierarchyHelper<IfcSchema>& file, const EllipsePie& pie, IfcSchema::IfcTrimmingPreference pref) {
|
||||||
const double deg = 1. / 180. * 3.141592653;
|
const double deg = 1. / 180. * 3.141592653;
|
||||||
double flt1[] = {0. , 0. };
|
double flt1[] = {0. , 0. };
|
||||||
double flt2[] = {pie.r1 * cos(pie.t1*deg), pie.r2 * sin(pie.t1*deg)};
|
double flt2[] = {pie.r1 * cos(pie.t1*deg), pie.r2 * sin(pie.t1*deg)};
|
||||||
@@ -67,16 +67,16 @@ void create_testcase_for(IfcHierarchyHelper& file, const EllipsePie& pie, Ifc2x3
|
|||||||
|
|
||||||
Ifc2x3::IfcEllipse* ellipse = new Ifc2x3::IfcEllipse(file.addPlacement2d(), pie.r1, pie.r2);
|
Ifc2x3::IfcEllipse* ellipse = new Ifc2x3::IfcEllipse(file.addPlacement2d(), pie.r1, pie.r2);
|
||||||
file.addEntity(ellipse);
|
file.addEntity(ellipse);
|
||||||
IfcEntityList::ptr trim1(new IfcEntityList);
|
aggregate_of_instance::ptr trim1(new aggregate_of_instance);
|
||||||
IfcEntityList::ptr trim2(new IfcEntityList);
|
aggregate_of_instance::ptr trim2(new aggregate_of_instance);
|
||||||
if (pref == Ifc2x3::IfcTrimmingPreference::IfcTrimmingPreference_PARAMETER) {
|
if (pref == IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_PARAMETER) {
|
||||||
trim1->push(new Ifc2x3::IfcParameterValue(pie.t1));
|
trim1->push(new Ifc2x3::IfcParameterValue(pie.t1));
|
||||||
trim2->push(new Ifc2x3::IfcParameterValue(pie.t2));
|
trim2->push(new Ifc2x3::IfcParameterValue(pie.t2));
|
||||||
} else {
|
} else {
|
||||||
trim1->push(p2);
|
trim1->push(p2);
|
||||||
trim2->push(p3);
|
trim2->push(p3);
|
||||||
}
|
}
|
||||||
Ifc2x3::IfcTrimmedCurve* trim = new Ifc2x3::IfcTrimmedCurve(ellipse, trim1, trim2, true, pref);
|
Ifc2x3::IfcTrimmedCurve* trim = new Ifc2x3::IfcTrimmedCurve(ellipse, trim1->as<IfcSchema::IfcTrimmingSelect>(), trim2->as<IfcSchema::IfcTrimmingSelect>(), true, pref);
|
||||||
file.addEntity(trim);
|
file.addEntity(trim);
|
||||||
|
|
||||||
Ifc2x3::IfcCompositeCurveSegment::list::ptr segments(new Ifc2x3::IfcCompositeCurveSegment::list());
|
Ifc2x3::IfcCompositeCurveSegment::list::ptr segments(new Ifc2x3::IfcCompositeCurveSegment::list());
|
||||||
@@ -124,25 +124,25 @@ void create_testcase_for(IfcHierarchyHelper& file, const EllipsePie& pie, Ifc2x3
|
|||||||
|
|
||||||
int main(int argc, char** argv) {
|
int main(int argc, char** argv) {
|
||||||
const std::string filename = "ellipse_pies.ifc";
|
const std::string filename = "ellipse_pies.ifc";
|
||||||
IfcHierarchyHelper file;
|
IfcHierarchyHelper<IfcSchema> file;
|
||||||
{ EllipsePie pie = {80., 50., 0., 150.};
|
{ EllipsePie pie = {80., 50., 0., 150.};
|
||||||
create_testcase_for(file, pie, Ifc2x3::IfcTrimmingPreference::IfcTrimmingPreference_PARAMETER);
|
create_testcase_for(file, pie, IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_PARAMETER);
|
||||||
create_testcase_for(file, pie, Ifc2x3::IfcTrimmingPreference::IfcTrimmingPreference_CARTESIAN);}
|
create_testcase_for(file, pie, IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_CARTESIAN);}
|
||||||
{ EllipsePie pie = {80, 50., 30., 300.};
|
{ EllipsePie pie = {80, 50., 30., 300.};
|
||||||
create_testcase_for(file, pie, Ifc2x3::IfcTrimmingPreference::IfcTrimmingPreference_PARAMETER);
|
create_testcase_for(file, pie, IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_PARAMETER);
|
||||||
create_testcase_for(file, pie, Ifc2x3::IfcTrimmingPreference::IfcTrimmingPreference_CARTESIAN);}
|
create_testcase_for(file, pie, IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_CARTESIAN);}
|
||||||
{ EllipsePie pie = {80, 50., 300., 30.};
|
{ EllipsePie pie = {80, 50., 300., 30.};
|
||||||
create_testcase_for(file, pie, Ifc2x3::IfcTrimmingPreference::IfcTrimmingPreference_PARAMETER);
|
create_testcase_for(file, pie, IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_PARAMETER);
|
||||||
create_testcase_for(file, pie, Ifc2x3::IfcTrimmingPreference::IfcTrimmingPreference_CARTESIAN);}
|
create_testcase_for(file, pie, IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_CARTESIAN);}
|
||||||
{ EllipsePie pie = {50., 80., 0., 150.};
|
{ EllipsePie pie = {50., 80., 0., 150.};
|
||||||
create_testcase_for(file, pie, Ifc2x3::IfcTrimmingPreference::IfcTrimmingPreference_PARAMETER);
|
create_testcase_for(file, pie, IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_PARAMETER);
|
||||||
create_testcase_for(file, pie, Ifc2x3::IfcTrimmingPreference::IfcTrimmingPreference_CARTESIAN);}
|
create_testcase_for(file, pie, IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_CARTESIAN);}
|
||||||
{ EllipsePie pie = {50, 80., 30., 300.};
|
{ EllipsePie pie = {50, 80., 30., 300.};
|
||||||
create_testcase_for(file, pie, Ifc2x3::IfcTrimmingPreference::IfcTrimmingPreference_PARAMETER);
|
create_testcase_for(file, pie, IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_PARAMETER);
|
||||||
create_testcase_for(file, pie, Ifc2x3::IfcTrimmingPreference::IfcTrimmingPreference_CARTESIAN);}
|
create_testcase_for(file, pie, IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_CARTESIAN);}
|
||||||
{ EllipsePie pie = {50, 80., 300., 30.};
|
{ EllipsePie pie = {50, 80., 300., 30.};
|
||||||
create_testcase_for(file, pie, Ifc2x3::IfcTrimmingPreference::IfcTrimmingPreference_PARAMETER);
|
create_testcase_for(file, pie, IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_PARAMETER);
|
||||||
create_testcase_for(file, pie, Ifc2x3::IfcTrimmingPreference::IfcTrimmingPreference_CARTESIAN);}
|
create_testcase_for(file, pie, IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_CARTESIAN);}
|
||||||
std::ofstream f(filename.c_str());
|
std::ofstream f(filename.c_str());
|
||||||
f << file;
|
f << file;
|
||||||
}
|
}
|
||||||
|
|||||||
+12
-11
@@ -22,18 +22,19 @@
|
|||||||
* Example that generates various forms of IfcFace *
|
* Example that generates various forms of IfcFace *
|
||||||
* *
|
* *
|
||||||
********************************************************************************/
|
********************************************************************************/
|
||||||
|
#include <fstream>
|
||||||
|
|
||||||
#include "../ifcparse/Ifc2x3.h"
|
#define IfcSchema Ifc2x3
|
||||||
#include "../ifcparse/IfcUtil.h"
|
#include "ifcparse/Ifc2x3.h"
|
||||||
#include "../ifcparse/IfcHierarchyHelper.h"
|
#include "ifcparse/IfcHierarchyHelper.h"
|
||||||
|
|
||||||
typedef std::string S;
|
typedef std::string S;
|
||||||
typedef IfcParse::IfcGlobalId guid;
|
typedef IfcParse::IfcGlobalId guid;
|
||||||
boost::none_t const null = (static_cast<boost::none_t>(0));
|
boost::none_t const null = boost::none;
|
||||||
|
|
||||||
static int x = 0;
|
static int x = 0;
|
||||||
|
|
||||||
void create_testcase(IfcHierarchyHelper& file, IfcSchema::IfcFace* face, const std::string& name) {
|
void create_testcase(IfcHierarchyHelper<IfcSchema>& file, IfcSchema::IfcFace* face, const std::string& name) {
|
||||||
IfcSchema::IfcFace::list::ptr faces(new IfcSchema::IfcFace::list);
|
IfcSchema::IfcFace::list::ptr faces(new IfcSchema::IfcFace::list);
|
||||||
faces->push(face);
|
faces->push(face);
|
||||||
IfcSchema::IfcOpenShell* shell = new IfcSchema::IfcOpenShell(faces);
|
IfcSchema::IfcOpenShell* shell = new IfcSchema::IfcOpenShell(faces);
|
||||||
@@ -57,14 +58,14 @@ void create_testcase(IfcHierarchyHelper& file, IfcSchema::IfcFace* face, const s
|
|||||||
file.getRepresentationContext("Model"), S("Body"), S("SurfaceModel"), items);
|
file.getRepresentationContext("Model"), S("Body"), S("SurfaceModel"), items);
|
||||||
reps->push(rep);
|
reps->push(rep);
|
||||||
|
|
||||||
IfcSchema::IfcProductDefinitionShape* shape = new IfcSchema::IfcProductDefinitionShape(0, 0, reps);
|
IfcSchema::IfcProductDefinitionShape* shape = new IfcSchema::IfcProductDefinitionShape(boost::none, boost::none, reps);
|
||||||
file.addEntity(shape);
|
file.addEntity(shape);
|
||||||
|
|
||||||
product->setRepresentation(shape);
|
product->setRepresentation(shape);
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(int argc, char** argv) {
|
int main(int argc, char** argv) {
|
||||||
IfcHierarchyHelper file;
|
IfcHierarchyHelper<IfcSchema> file;
|
||||||
{
|
{
|
||||||
IfcSchema::IfcCartesianPoint::list::ptr points (new IfcSchema::IfcCartesianPoint::list);
|
IfcSchema::IfcCartesianPoint::list::ptr points (new IfcSchema::IfcCartesianPoint::list);
|
||||||
points->push(file.addTriplet<IfcSchema::IfcCartesianPoint>(-400, -400, 0));
|
points->push(file.addTriplet<IfcSchema::IfcCartesianPoint>(-400, -400, 0));
|
||||||
@@ -192,7 +193,7 @@ int main(int argc, char** argv) {
|
|||||||
IfcSchema::IfcCartesianPoint::list::ptr trim2(new IfcSchema::IfcCartesianPoint::list);
|
IfcSchema::IfcCartesianPoint::list::ptr trim2(new IfcSchema::IfcCartesianPoint::list);
|
||||||
trim1->push(point1);
|
trim1->push(point1);
|
||||||
trim2->push(point2);
|
trim2->push(point2);
|
||||||
IfcSchema::IfcTrimmedCurve* trimmed_curve = new IfcSchema::IfcTrimmedCurve(circle, trim1->generalize(), trim2->generalize(), true, IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_CARTESIAN);
|
IfcSchema::IfcTrimmedCurve* trimmed_curve = new IfcSchema::IfcTrimmedCurve(circle, trim1->generalize()->as<IfcSchema::IfcTrimmingSelect>(), trim2->generalize()->as<IfcSchema::IfcTrimmingSelect>(), true, IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_CARTESIAN);
|
||||||
IfcSchema::IfcArbitraryOpenProfileDef* profile = new IfcSchema::IfcArbitraryOpenProfileDef(IfcSchema::IfcProfileTypeEnum::IfcProfileType_CURVE, boost::none, trimmed_curve);
|
IfcSchema::IfcArbitraryOpenProfileDef* profile = new IfcSchema::IfcArbitraryOpenProfileDef(IfcSchema::IfcProfileTypeEnum::IfcProfileType_CURVE, boost::none, trimmed_curve);
|
||||||
IfcSchema::IfcAxis1Placement* place = new IfcSchema::IfcAxis1Placement(file.addTriplet<IfcSchema::IfcCartesianPoint>(0., 0., 0.), file.addTriplet<IfcSchema::IfcDirection>(1., 0., 0.));
|
IfcSchema::IfcAxis1Placement* place = new IfcSchema::IfcAxis1Placement(file.addTriplet<IfcSchema::IfcCartesianPoint>(0., 0., 0.), file.addTriplet<IfcSchema::IfcDirection>(1., 0., 0.));
|
||||||
IfcSchema::IfcSurfaceOfRevolution* surface = new IfcSchema::IfcSurfaceOfRevolution(profile, file.addPlacement3d(), place);
|
IfcSchema::IfcSurfaceOfRevolution* surface = new IfcSchema::IfcSurfaceOfRevolution(profile, file.addPlacement3d(), place);
|
||||||
@@ -200,8 +201,8 @@ int main(int argc, char** argv) {
|
|||||||
IfcSchema::IfcFace* face = new IfcSchema::IfcFaceSurface(bounds, surface, true);
|
IfcSchema::IfcFace* face = new IfcSchema::IfcFaceSurface(bounds, surface, true);
|
||||||
create_testcase(file, face, "face surface");
|
create_testcase(file, face, "face surface");
|
||||||
}
|
}
|
||||||
const std::string filename = "faces.ifc";
|
const char filename[] = "faces.ifc";
|
||||||
file.header().file_name().name(filename);
|
file.header().file_name()->setname(filename);
|
||||||
std::ofstream f(filename.c_str());
|
std::ofstream f(filename);
|
||||||
f << file;
|
f << file;
|
||||||
}
|
}
|
||||||
@@ -27,16 +27,15 @@
|
|||||||
#include <string>
|
#include <string>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
|
|
||||||
#include "ifcparse\Ifc2x3.h"
|
#define IfcSchema Ifc2x3
|
||||||
#include "ifcparse\IfcUtil.h"
|
#include "ifcparse/Ifc2x3.h"
|
||||||
#include "ifcparse\IfcHierarchyHelper.h"
|
#include "ifcparse/IfcHierarchyHelper.h"
|
||||||
#include "ifcgeom\IfcGeom.h"
|
|
||||||
|
|
||||||
typedef std::string S;
|
typedef std::string S;
|
||||||
typedef IfcParse::IfcGlobalId guid;
|
typedef IfcParse::IfcGlobalId guid;
|
||||||
boost::none_t const null = boost::none;
|
boost::none_t const null = boost::none;
|
||||||
|
|
||||||
void create_curve_rebar(IfcHierarchyHelper& file)
|
void create_curve_rebar(IfcHierarchyHelper<IfcSchema>& file)
|
||||||
{
|
{
|
||||||
int dia = 24;
|
int dia = 24;
|
||||||
int R = 3 * dia;
|
int R = 3 * dia;
|
||||||
@@ -83,15 +82,16 @@ void create_curve_rebar(IfcHierarchyHelper& file)
|
|||||||
IfcSchema::IfcCircle* circle = new IfcSchema::IfcCircle(axis1, R);
|
IfcSchema::IfcCircle* circle = new IfcSchema::IfcCircle(axis1, R);
|
||||||
file.addEntity(circle);
|
file.addEntity(circle);
|
||||||
|
|
||||||
IfcEntityList::ptr trim1(new IfcEntityList);
|
aggregate_of_instance::ptr trim1(new aggregate_of_instance);
|
||||||
IfcEntityList::ptr trim2(new IfcEntityList);
|
aggregate_of_instance::ptr trim2(new aggregate_of_instance);
|
||||||
|
|
||||||
trim1->push(new IfcSchema::IfcParameterValue(180));
|
trim1->push(new IfcSchema::IfcParameterValue(180));
|
||||||
trim1->push(p2);
|
trim1->push(p2);
|
||||||
|
|
||||||
trim2->push(new IfcSchema::IfcParameterValue(270));
|
trim2->push(new IfcSchema::IfcParameterValue(270));
|
||||||
trim2->push(p4);
|
trim2->push(p4);
|
||||||
IfcSchema::IfcTrimmedCurve* trimmed_curve = new IfcSchema::IfcTrimmedCurve(circle, trim1, trim2, false, IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_PARAMETER);
|
|
||||||
|
IfcSchema::IfcTrimmedCurve* trimmed_curve = new IfcSchema::IfcTrimmedCurve(circle, trim1->as<IfcSchema::IfcTrimmingSelect>(), trim2->as<IfcSchema::IfcTrimmingSelect>(), false, IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_PARAMETER);
|
||||||
file.addEntity(trimmed_curve);
|
file.addEntity(trimmed_curve);
|
||||||
|
|
||||||
IfcSchema::IfcCompositeCurveSegment* segment2 = new IfcSchema::IfcCompositeCurveSegment(IfcSchema::IfcTransitionCode::IfcTransitionCode_CONTSAMEGRADIENT, false, trimmed_curve);
|
IfcSchema::IfcCompositeCurveSegment* segment2 = new IfcSchema::IfcCompositeCurveSegment(IfcSchema::IfcTransitionCode::IfcTransitionCode_CONTSAMEGRADIENT, false, trimmed_curve);
|
||||||
@@ -133,8 +133,8 @@ void create_curve_rebar(IfcHierarchyHelper& file)
|
|||||||
|
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
IfcHierarchyHelper file;
|
IfcHierarchyHelper<IfcSchema> file;
|
||||||
file.header().file_name().name("ifc_curve_rebar.ifc");
|
file.header().file_name()->setname("ifc_curve_rebar.ifc");
|
||||||
create_curve_rebar(file);
|
create_curve_rebar(file);
|
||||||
std::ofstream f("ifc_curve_rebar.ifc");
|
std::ofstream f("ifc_curve_rebar.ifc");
|
||||||
f << file;
|
f << file;
|
||||||
|
|||||||
+41
-40
@@ -27,21 +27,21 @@
|
|||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
|
|
||||||
#include "../ifcparse/Ifc2x3.h"
|
#define IfcSchema Ifc2x3
|
||||||
#include "../ifcparse/IfcUtil.h"
|
#include "ifcparse/Ifc2x3.h"
|
||||||
#include "../ifcparse/IfcHierarchyHelper.h"
|
#include "ifcparse/IfcHierarchyHelper.h"
|
||||||
|
|
||||||
typedef std::string S;
|
typedef std::string S;
|
||||||
typedef IfcWrite::IfcGuidHelper guid;
|
typedef IfcParse::IfcGlobalId guid;
|
||||||
boost::none_t const null = (static_cast<boost::none_t>(0));
|
boost::none_t const null = boost::none;
|
||||||
|
|
||||||
void create_testcase_for(IfcSchema::IfcProfileDef::list::ptr profiles) {
|
void create_testcase_for(IfcSchema::IfcProfileDef::list::ptr profiles) {
|
||||||
IfcSchema::IfcProfileDef* profile = *profiles->begin();
|
IfcSchema::IfcProfileDef* profile = *profiles->begin();
|
||||||
const std::string profile_type = IfcSchema::Type::ToString(profile->type());
|
const std::string& profile_type = profile->declaration().name();
|
||||||
const std::string filename = profile_type + ".ifc";
|
const std::string filename = profile_type + ".ifc";
|
||||||
|
|
||||||
IfcHierarchyHelper file;
|
IfcHierarchyHelper<IfcSchema> file;
|
||||||
file.filename(filename);
|
file.header().file_name()->setname(filename);
|
||||||
|
|
||||||
int i = 0;
|
int i = 0;
|
||||||
for (IfcSchema::IfcProfileDef::list::it it = profiles->begin(); it != profiles->end(); ++it, ++i) {
|
for (IfcSchema::IfcProfileDef::list::it it = profiles->begin(); it != profiles->end(); ++it, ++i) {
|
||||||
@@ -54,7 +54,7 @@ void create_testcase_for(IfcSchema::IfcProfileDef::list::ptr profiles) {
|
|||||||
|
|
||||||
product->setObjectPlacement(file.addLocalPlacement(0, 100. * i));
|
product->setObjectPlacement(file.addLocalPlacement(0, 100. * i));
|
||||||
|
|
||||||
if (profile->is(IfcSchema::Type::IfcParameterizedProfileDef)) {
|
if (profile->declaration().is(IfcSchema::IfcParameterizedProfileDef::Class())) {
|
||||||
((IfcSchema::IfcParameterizedProfileDef*) profile)->setPosition(file.addPlacement2d());
|
((IfcSchema::IfcParameterizedProfileDef*) profile)->setPosition(file.addPlacement2d());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -72,7 +72,7 @@ void create_testcase_for(IfcSchema::IfcProfileDef::list::ptr profiles) {
|
|||||||
file.getSingle<IfcSchema::IfcRepresentationContext>(), S("Body"), S("SweptSolid"), items);
|
file.getSingle<IfcSchema::IfcRepresentationContext>(), S("Body"), S("SweptSolid"), items);
|
||||||
reps->push(rep);
|
reps->push(rep);
|
||||||
|
|
||||||
IfcSchema::IfcProductDefinitionShape* shape = new IfcSchema::IfcProductDefinitionShape(0, 0, reps);
|
IfcSchema::IfcProductDefinitionShape* shape = new IfcSchema::IfcProductDefinitionShape(null, null, reps);
|
||||||
file.addEntity(rep);
|
file.addEntity(rep);
|
||||||
file.addEntity(shape);
|
file.addEntity(shape);
|
||||||
|
|
||||||
@@ -84,122 +84,123 @@ void create_testcase_for(IfcSchema::IfcProfileDef::list::ptr profiles) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
int main(int argc, char** argv) {
|
int main(int argc, char** argv) {
|
||||||
|
IfcSchema::get_schema(); // Ensure schema is initialized
|
||||||
{ IfcSchema::IfcProfileDef::list::ptr profiles (new IfcSchema::IfcProfileDef::list);
|
{ IfcSchema::IfcProfileDef::list::ptr profiles (new IfcSchema::IfcProfileDef::list);
|
||||||
profiles->push(new Ifc2x3::IfcUShapeProfileDef(
|
profiles->push(new IfcSchema::IfcUShapeProfileDef(
|
||||||
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
||||||
null, 0, 50.0, 25.0, 5.0, 5.0, null, null, null, null));
|
null, 0, 50.0, 25.0, 5.0, 5.0, null, null, null, null));
|
||||||
profiles->push(new Ifc2x3::IfcUShapeProfileDef(
|
profiles->push(new IfcSchema::IfcUShapeProfileDef(
|
||||||
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
||||||
null, 0, 50.0, 25.0, 5.0, 5.0, 2.0, 2.0, null, null));
|
null, 0, 50.0, 25.0, 5.0, 5.0, 2.0, 2.0, null, null));
|
||||||
profiles->push(new Ifc2x3::IfcUShapeProfileDef(
|
profiles->push(new IfcSchema::IfcUShapeProfileDef(
|
||||||
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
||||||
null, 0, 50.0, 25.0, 5.0, 5.0, null, null, 4.0, null));
|
null, 0, 50.0, 25.0, 5.0, 5.0, null, null, 4.0, null));
|
||||||
profiles->push(new Ifc2x3::IfcUShapeProfileDef(
|
profiles->push(new IfcSchema::IfcUShapeProfileDef(
|
||||||
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
||||||
null, 0, 50.0, 25.0, 5.0, 5.0, 1.0, 3.0, 6.0, null));
|
null, 0, 50.0, 25.0, 5.0, 5.0, 1.0, 3.0, 6.0, null));
|
||||||
create_testcase_for(profiles); }
|
create_testcase_for(profiles); }
|
||||||
|
|
||||||
{ IfcSchema::IfcProfileDef::list::ptr profiles (new IfcSchema::IfcProfileDef::list);
|
{ IfcSchema::IfcProfileDef::list::ptr profiles (new IfcSchema::IfcProfileDef::list);
|
||||||
profiles->push(new Ifc2x3::IfcTShapeProfileDef(
|
profiles->push(new IfcSchema::IfcTShapeProfileDef(
|
||||||
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
||||||
null, 0, 50.0, 25.0, 5.0, 5.0, null, null, null, null, null, null));
|
null, 0, 50.0, 25.0, 5.0, 5.0, null, null, null, null, null, null));
|
||||||
profiles->push(new Ifc2x3::IfcTShapeProfileDef(
|
profiles->push(new IfcSchema::IfcTShapeProfileDef(
|
||||||
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
||||||
null, 0, 50.0, 25.0, 5.0, 5.0, 2.0, 2.0, 2.0, null, null, null));
|
null, 0, 50.0, 25.0, 5.0, 5.0, 2.0, 2.0, 2.0, null, null, null));
|
||||||
profiles->push(new Ifc2x3::IfcTShapeProfileDef(
|
profiles->push(new IfcSchema::IfcTShapeProfileDef(
|
||||||
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
||||||
null, 0, 50.0, 25.0, 5.0, 5.0, null, null, null, 2.0, 2.0, null));
|
null, 0, 50.0, 25.0, 5.0, 5.0, null, null, null, 2.0, 2.0, null));
|
||||||
profiles->push(new Ifc2x3::IfcTShapeProfileDef(
|
profiles->push(new IfcSchema::IfcTShapeProfileDef(
|
||||||
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
||||||
null, 0, 50.0, 25.0, 5.0, 5.0, 3.0, 2.0, 1.0, 2.0, 2.0, null));
|
null, 0, 50.0, 25.0, 5.0, 5.0, 3.0, 2.0, 1.0, 2.0, 2.0, null));
|
||||||
create_testcase_for(profiles); }
|
create_testcase_for(profiles); }
|
||||||
|
|
||||||
{ IfcSchema::IfcProfileDef::list::ptr profiles (new IfcSchema::IfcProfileDef::list);
|
{ IfcSchema::IfcProfileDef::list::ptr profiles (new IfcSchema::IfcProfileDef::list);
|
||||||
profiles->push(new Ifc2x3::IfcZShapeProfileDef(
|
profiles->push(new IfcSchema::IfcZShapeProfileDef(
|
||||||
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
||||||
null, 0, 50.0, 25.0, 5.0, 5.0, null, null));
|
null, 0, 50.0, 25.0, 5.0, 5.0, null, null));
|
||||||
profiles->push(new Ifc2x3::IfcZShapeProfileDef(
|
profiles->push(new IfcSchema::IfcZShapeProfileDef(
|
||||||
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
||||||
null, 0, 50.0, 25.0, 5.0, 5.0, 2.0, 2.0));
|
null, 0, 50.0, 25.0, 5.0, 5.0, 2.0, 2.0));
|
||||||
create_testcase_for(profiles); }
|
create_testcase_for(profiles); }
|
||||||
|
|
||||||
{ IfcSchema::IfcProfileDef::list::ptr profiles (new IfcSchema::IfcProfileDef::list);
|
{ IfcSchema::IfcProfileDef::list::ptr profiles (new IfcSchema::IfcProfileDef::list);
|
||||||
profiles->push(new Ifc2x3::IfcEllipseProfileDef(
|
profiles->push(new IfcSchema::IfcEllipseProfileDef(
|
||||||
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
||||||
null, 0, 25.0, 15.0));
|
null, 0, 25.0, 15.0));
|
||||||
profiles->push(new Ifc2x3::IfcEllipseProfileDef(
|
profiles->push(new IfcSchema::IfcEllipseProfileDef(
|
||||||
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
||||||
null, 0, 15.0, 25.0));
|
null, 0, 15.0, 25.0));
|
||||||
create_testcase_for(profiles); }
|
create_testcase_for(profiles); }
|
||||||
|
|
||||||
{ IfcSchema::IfcProfileDef::list::ptr profiles (new IfcSchema::IfcProfileDef::list);
|
{ IfcSchema::IfcProfileDef::list::ptr profiles (new IfcSchema::IfcProfileDef::list);
|
||||||
profiles->push(new Ifc2x3::IfcIShapeProfileDef(
|
profiles->push(new IfcSchema::IfcIShapeProfileDef(
|
||||||
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
||||||
null, 0, 25.0, 50.0, 5.0, 5.0, null));
|
null, 0, 25.0, 50.0, 5.0, 5.0, null));
|
||||||
profiles->push(new Ifc2x3::IfcIShapeProfileDef(
|
profiles->push(new IfcSchema::IfcIShapeProfileDef(
|
||||||
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
||||||
null, 0, 25.0, 50.0, 5.0, 5.0, 2.0));
|
null, 0, 25.0, 50.0, 5.0, 5.0, 2.0));
|
||||||
profiles->push(new Ifc2x3::IfcAsymmetricIShapeProfileDef(
|
profiles->push(new IfcSchema::IfcAsymmetricIShapeProfileDef(
|
||||||
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
||||||
null, 0, 25.0, 50.0, 5.0, 5.0, 2.0, 20.0, 10.0, 5.0, null));
|
null, 0, 25.0, 50.0, 5.0, 5.0, 2.0, 20.0, 10.0, 5.0, null));
|
||||||
create_testcase_for(profiles); }
|
create_testcase_for(profiles); }
|
||||||
|
|
||||||
{ IfcSchema::IfcProfileDef::list::ptr profiles (new IfcSchema::IfcProfileDef::list);
|
{ IfcSchema::IfcProfileDef::list::ptr profiles (new IfcSchema::IfcProfileDef::list);
|
||||||
profiles->push(new Ifc2x3::IfcLShapeProfileDef(
|
profiles->push(new IfcSchema::IfcLShapeProfileDef(
|
||||||
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
||||||
null, 0, 50.0, 25.0, 5.0, null, null, null, null, null));
|
null, 0, 50.0, 25.0, 5.0, null, null, null, null, null));
|
||||||
profiles->push(new Ifc2x3::IfcLShapeProfileDef(
|
profiles->push(new IfcSchema::IfcLShapeProfileDef(
|
||||||
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
||||||
null, 0, 50.0, 25.0, 5.0, 2.0, 2.0, null, null, null));
|
null, 0, 50.0, 25.0, 5.0, 2.0, 2.0, null, null, null));
|
||||||
profiles->push(new Ifc2x3::IfcLShapeProfileDef(
|
profiles->push(new IfcSchema::IfcLShapeProfileDef(
|
||||||
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
||||||
null, 0, 50.0, 25.0, 5.0, null, null, 2.0, null, null));
|
null, 0, 50.0, 25.0, 5.0, null, null, 2.0, null, null));
|
||||||
profiles->push(new Ifc2x3::IfcLShapeProfileDef(
|
profiles->push(new IfcSchema::IfcLShapeProfileDef(
|
||||||
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
||||||
null, 0, 50.0, 25.0, 5.0, 1.0, 2.0, 2.0, null, null));
|
null, 0, 50.0, 25.0, 5.0, 1.0, 2.0, 2.0, null, null));
|
||||||
create_testcase_for(profiles); }
|
create_testcase_for(profiles); }
|
||||||
|
|
||||||
{ IfcSchema::IfcProfileDef::list::ptr profiles (new IfcSchema::IfcProfileDef::list);
|
{ IfcSchema::IfcProfileDef::list::ptr profiles (new IfcSchema::IfcProfileDef::list);
|
||||||
profiles->push(new Ifc2x3::IfcCShapeProfileDef(
|
profiles->push(new IfcSchema::IfcCShapeProfileDef(
|
||||||
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
||||||
null, 0, 50.0, 25.0, 5.0, 10.0, null, null));
|
null, 0, 50.0, 25.0, 5.0, 10.0, null, null));
|
||||||
profiles->push(new Ifc2x3::IfcCShapeProfileDef(
|
profiles->push(new IfcSchema::IfcCShapeProfileDef(
|
||||||
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
||||||
null, 0, 50.0, 25.0, 5.0, 10.0, 2.0, null));
|
null, 0, 50.0, 25.0, 5.0, 10.0, 2.0, null));
|
||||||
create_testcase_for(profiles); }
|
create_testcase_for(profiles); }
|
||||||
|
|
||||||
{ IfcSchema::IfcProfileDef::list::ptr profiles (new IfcSchema::IfcProfileDef::list);
|
{ IfcSchema::IfcProfileDef::list::ptr profiles (new IfcSchema::IfcProfileDef::list);
|
||||||
profiles->push(new Ifc2x3::IfcCircleProfileDef(
|
profiles->push(new IfcSchema::IfcCircleProfileDef(
|
||||||
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
||||||
null, 0, 25.0));
|
null, 0, 25.0));
|
||||||
profiles->push(new Ifc2x3::IfcCircleHollowProfileDef(
|
profiles->push(new IfcSchema::IfcCircleHollowProfileDef(
|
||||||
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
||||||
null, 0, 25.0, 5.0));
|
null, 0, 25.0, 5.0));
|
||||||
create_testcase_for(profiles); }
|
create_testcase_for(profiles); }
|
||||||
|
|
||||||
{ IfcSchema::IfcProfileDef::list::ptr profiles (new IfcSchema::IfcProfileDef::list);
|
{ IfcSchema::IfcProfileDef::list::ptr profiles (new IfcSchema::IfcProfileDef::list);
|
||||||
profiles->push(new Ifc2x3::IfcRectangleProfileDef(
|
profiles->push(new IfcSchema::IfcRectangleProfileDef(
|
||||||
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
||||||
null, 0, 50.0, 25.0));
|
null, 0, 50.0, 25.0));
|
||||||
profiles->push(new Ifc2x3::IfcRoundedRectangleProfileDef(
|
profiles->push(new IfcSchema::IfcRoundedRectangleProfileDef(
|
||||||
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
||||||
null, 0, 50.0, 25.0, 5.0));
|
null, 0, 50.0, 25.0, 5.0));
|
||||||
profiles->push(new Ifc2x3::IfcRectangleHollowProfileDef(
|
profiles->push(new IfcSchema::IfcRectangleHollowProfileDef(
|
||||||
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
||||||
null, 0, 50.0, 25.0, 5.0, null, null));
|
null, 0, 50.0, 25.0, 5.0, null, null));
|
||||||
profiles->push(new Ifc2x3::IfcRectangleHollowProfileDef(
|
profiles->push(new IfcSchema::IfcRectangleHollowProfileDef(
|
||||||
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
||||||
null, 0, 50.0, 25.0, 5.0, 2.0, 4.0));
|
null, 0, 50.0, 25.0, 5.0, 2.0, 4.0));
|
||||||
create_testcase_for(profiles); }
|
create_testcase_for(profiles); }
|
||||||
|
|
||||||
{ IfcSchema::IfcProfileDef::list::ptr profiles (new IfcSchema::IfcProfileDef::list);
|
{ IfcSchema::IfcProfileDef::list::ptr profiles (new IfcSchema::IfcProfileDef::list);
|
||||||
profiles->push(new Ifc2x3::IfcTrapeziumProfileDef(
|
profiles->push(new IfcSchema::IfcTrapeziumProfileDef(
|
||||||
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
||||||
null, 0, 50.0, 30.0, 25.0, 0.0));
|
null, 0, 50.0, 30.0, 25.0, 0.0));
|
||||||
profiles->push(new Ifc2x3::IfcTrapeziumProfileDef(
|
profiles->push(new IfcSchema::IfcTrapeziumProfileDef(
|
||||||
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
||||||
null, 0, 50.0, 60.0, 25.0, -20.0));
|
null, 0, 50.0, 60.0, 25.0, -20.0));
|
||||||
profiles->push(new Ifc2x3::IfcTrapeziumProfileDef(
|
profiles->push(new IfcSchema::IfcTrapeziumProfileDef(
|
||||||
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA,
|
||||||
null, 0, 50.0, 10.0, 25.0, 30.0));
|
null, 0, 50.0, 10.0, 25.0, 30.0));
|
||||||
create_testcase_for(profiles); }
|
create_testcase_for(profiles); }
|
||||||
|
|||||||
@@ -23,15 +23,19 @@
|
|||||||
* *
|
* *
|
||||||
********************************************************************************/
|
********************************************************************************/
|
||||||
|
|
||||||
#include "../ifcparse/Ifc4.h"
|
#include <iostream>
|
||||||
#include "../ifcparse/IfcUtil.h"
|
#include <fstream>
|
||||||
#include "../ifcparse/IfcHierarchyHelper.h"
|
#include <optional>
|
||||||
|
|
||||||
|
#define IfcSchema Ifc4
|
||||||
|
#include "ifcparse/Ifc4.h"
|
||||||
|
#include "ifcparse/IfcHierarchyHelper.h"
|
||||||
|
|
||||||
#include "suzanne_geometry.h"
|
#include "suzanne_geometry.h"
|
||||||
|
|
||||||
typedef std::string S;
|
typedef std::string S;
|
||||||
typedef IfcParse::IfcGlobalId guid;
|
typedef IfcParse::IfcGlobalId guid;
|
||||||
boost::none_t const null = (static_cast<boost::none_t>(0));
|
boost::none_t const null = boost::none;
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
std::vector< std::vector<T> > create_vector_from_array(const T* arr, unsigned size) {
|
std::vector< std::vector<T> > create_vector_from_array(const T* arr, unsigned size) {
|
||||||
@@ -50,7 +54,7 @@ std::vector< std::vector<T> > create_vector_from_array(const T* arr, unsigned si
|
|||||||
}
|
}
|
||||||
|
|
||||||
int main(int argc, char** argv) {
|
int main(int argc, char** argv) {
|
||||||
IfcHierarchyHelper file;
|
IfcHierarchyHelper<IfcSchema> file;
|
||||||
|
|
||||||
IfcSchema::IfcBuildingElementProxy* product = new IfcSchema::IfcBuildingElementProxy(
|
IfcSchema::IfcBuildingElementProxy* product = new IfcSchema::IfcBuildingElementProxy(
|
||||||
guid(), 0, S("Blender's Suzanne"), null, null, 0, 0, null, null);
|
guid(), 0, S("Blender's Suzanne"), null, null, 0, 0, null, null);
|
||||||
@@ -73,13 +77,13 @@ int main(int argc, char** argv) {
|
|||||||
file.getRepresentationContext("Model"), S("Body"), S("SurfaceModel"), items);
|
file.getRepresentationContext("Model"), S("Body"), S("SurfaceModel"), items);
|
||||||
reps->push(rep);
|
reps->push(rep);
|
||||||
|
|
||||||
IfcSchema::IfcProductDefinitionShape* shape = new IfcSchema::IfcProductDefinitionShape(0, 0, reps);
|
IfcSchema::IfcProductDefinitionShape* shape = new IfcSchema::IfcProductDefinitionShape(boost::none, boost::none, reps);
|
||||||
file.addEntity(shape);
|
file.addEntity(shape);
|
||||||
|
|
||||||
product->setRepresentation(shape);
|
product->setRepresentation(shape);
|
||||||
|
|
||||||
const std::string filename = "tesselated_faceset.ifc";
|
const std::string filename = "tesselated_faceset.ifc";
|
||||||
file.header().file_name().name(filename);
|
file.header().file_name()->setname(filename);
|
||||||
std::ofstream f(filename.c_str());
|
std::ofstream f(filename);
|
||||||
f << file;
|
f << file;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
add_subdirectory(schema)
|
add_subdirectory(schema)
|
||||||
|
|
||||||
add_library(geometry_serializer STATIC Serialization.cpp)
|
add_library(geometry_serializer Serialization.cpp)
|
||||||
file(GLOB IFCGEOM_SERIALIZATION_H_FILE *.h)
|
file(GLOB IFCGEOM_SERIALIZATION_H_FILE *.h)
|
||||||
|
|
||||||
set_target_properties(
|
set_target_properties(
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
foreach(schema ${SCHEMA_VERSIONS})
|
foreach(schema ${SCHEMA_VERSIONS})
|
||||||
add_library(geometry_serializer_ifc${schema} STATIC Serialization.cpp)
|
add_library(geometry_serializer_ifc${schema} OBJECT Serialization.cpp)
|
||||||
target_link_libraries(geometry_serializer_ifc${schema} ${OpenCASCADE_LIBRARIES})
|
target_link_libraries(geometry_serializer_ifc${schema} ${OpenCASCADE_LIBRARIES})
|
||||||
set_target_properties(
|
set_target_properties(
|
||||||
geometry_serializer_ifc${schema}
|
geometry_serializer_ifc${schema}
|
||||||
|
|||||||
Reference in New Issue
Block a user