Commit Graph

130 Commits

Author SHA1 Message Date
Thomas Krijnen 50ea73a28f Update IfcConvert help text 2017-03-04 14:16:54 +01:00
Stinkfist0 026b4853a2 IfcConvert: single point for IFC file parsing and potential parsing error reporting. 2017-03-04 13:54:19 +01:00
Stinkfist0 cd132473f5 IfcConvert: instead of global --traverse option provide --include+ and --exclude+ options that control traversal on per filter basis. 2017-03-04 13:54:19 +01:00
Stinkfist0 06c1ea9d2c Doc tweaks [ci skip] 2017-03-04 13:54:19 +01:00
Stinkfist0 b058647d46 IfcLogger: convenience shorthands Notice(), Warnings() and Error() 2017-03-04 13:54:19 +01:00
Stinkfist0 0383221d00 IfcConvert: print information about the used filters. 2017-03-04 13:54:19 +01:00
Stinkfist0 678d422ec8 Fix errors in rebase merge. 2017-03-04 13:54:19 +01:00
Stinkfist0 eade74c919 Fix --traverse --exlucde=<entities|layers> + clean up duplicate code. filter::traverse_match: dynamic_cast instead of static_cast as the decomposing entity is not guaranteed to be IfcProduct 2017-03-04 13:54:19 +01:00
Stinkfist0 9074f25e93 Fix --exclude=arg when --traverse used also. 2017-03-04 13:54:19 +01:00
Stinkfist0 4b5790e83a IfcConvert: minor cleanup + fix guid exclusion filter's value population. 2017-03-04 13:54:19 +01:00
Stinkfist0 470b08cd04 IfcConvert: output regular prints to cout instead of cerr. 2017-03-04 13:54:19 +01:00
Stinkfist0 d88c93a150 Cleaning up geom filters. 2017-03-04 13:54:19 +01:00
Stinkfist0 7101ac22c8 Refactor template class arg_filter into string_arg_filter instead, support for IfcProxy.Tag (untested, did not find suitable test input yet). 2017-03-04 13:54:19 +01:00
Stinkfist0 1b7d38a56d support for IfcConvert -include=arg <Description|Tag> (for IfcElement.Tag, not yet for IfcProxy.Tag). 2017-03-04 13:54:19 +01:00
Stinkfist0 de5864fc72 IfcConvert: change syntax of --<include|exclude>=<names|guids> to --<include|exclude>=arg <Name|GlobalId>. The plan is to support arbitrary arguments in the future. 2017-03-04 13:54:19 +01:00
Stinkfist0 195d68cd0a Generalize IfcGeom::Iterator filtering and move make the filter specification external to the Iterator. 2017-03-04 13:54:19 +01:00
Stinkfist0 d8a11dd096 Refactoring and cleaning up geom iterator filtering. 2017-03-04 13:54:19 +01:00
Stinkfist0 63b0488909 Implement filtering created geometry by layer assignments. 2017-03-04 13:54:19 +01:00
Stinkfist0 3abee03b9b Filtering by entity GUID and layer name w.i.p. 2017-03-04 13:54:19 +01:00
Stinkfist0 f1709dc71a IfcConvert/IfcGeom: Possibility to include and exclude simultaneously by type and name, w.i.p. 2017-03-04 13:54:19 +01:00
Stinkfist0 fa76aa9bb0 IfcConvert: add --unicode=utf8|escape when UNICODE_SUPPORT enabled. 2017-01-14 20:13:46 +01:00
Stinkfist0 f0e07f3447 Add status prints for writing XML output. Re: #122 2017-01-14 20:13:46 +01:00
Stinkfist0 80f0ff688d IfcConvert: add --model-ofset x;y;z option. Remove SerializerSettings::CENTER_MODEL as unneeded. 2017-01-14 20:13:46 +01:00
Stinkfist0 222cbe73d3 Use unnamed enum instead of static const member variable for SerializerSettings::DEFAULT_PRECISION in order to fix compilation on GCC & Clang. 2017-01-14 20:13:46 +01:00
Stinkfist0 ecff54c480 IfcConvert --precision option.
Sets the decimal precision to be used to format floating-point values, 15 by default.
Use a negative value to use the system's default precision (should be 6 typically).
Applicable for OBJ and DAE output. For DAE output, value >= 15 means that up to 16 decimals are used,
and any other value means that 6 or 7 decimals are used.
2017-01-14 20:13:46 +01:00
Stinkfist0 2d58a1bc7c Separate serialization-specific settings from IteratorSettings into its own class, SerializerSettings. 2017-01-14 20:13:46 +01:00
Thomas Krijnen da0b350378 Fix #140 2016-12-09 16:51:03 +01:00
Ali Kämäräinen aec20057c7 Fix build when USE_IFC4=1 (#160) 2016-11-18 12:43:14 +01:00
Thomas Krijnen 3d24b67146 Fix #157 2016-11-17 16:05:28 +01:00
Ali Kämäräinen 714a365942 IfcConvert/IfcGeom --traverse option (#159)
geometry filtering option for including/excluding decomposition and containment of filtered entities.
Usage example: IfcConvert Duplex_A_20110907.ifc Level1.dae --include --traverse --names "Level 1"
2016-11-13 13:44:38 +01:00
Ali Kämäräinen f0c4ce5753 Add layer information (IfcPresentationLayerAssignment) to IfcConvert's XML output. Closes #141 (#149)
Add layer information (IfcPresentationLayerAssignment) to IfcConvert's XML output. Closes #141
2016-10-31 18:21:25 +01:00
Thomas Krijnen 86c9d7074b Fix traversal of type relationships in IFC4 XML output 2016-10-09 12:44:37 +02:00
Thomas Krijnen a0f5a422e2 Fix #128. XML serializer. HasPropertySets is an optional attribute. 2016-09-01 14:47:27 +02:00
Thomas Krijnen d2ce8d70b1 Add template disambiguation to make g++ happy 2016-09-01 12:42:12 +02:00
Thomas Krijnen ac1a8f6d16 Add types and placement to XML output 2016-09-01 11:59:43 +02:00
Ali Kämäräinen 64dc2ea95c Windows/MSVC + OCCT 7.0.0 (#124)
* Windows/MSVC build scripts: option to build and use official Open CASCADE instead of the community edition.

* Fix C4800 warnings ("'Standard_Boolean': forcing value to bool 'true' or 'false' (performance warning)") + unnecessary integer cast.

* build-deps.cmd: fix OCCT download

* Fix MSVC linking against OCCT 7.0.0. Example executables fail still, needs research.

* occt-V7_0_0-9059ca1_CMakeLists.txt: add_definitions(-DHAVE_NO_DLL) in order to fix static linking to OCCT. Mark IfcOpenShell patches in the OCCT patch files for clarity.

* Patch OCCT in order to fix compliaction when HAVE_NO_DLL is defind. Clean up IfcOpenSHell's linker warnings by defining HAVE_NO_DLL.

* CMakeLists.txt: remove linking to the newly added OCCT libs, these are not needed when HAVE_NO_DLL is defined.

* cmake/CMakeLists.txt: make add_debug_variants() function to handle filenames/paths also. Apply the coding conventions while at it. Fixes #123.

* Patch OCCT's OpenGl_PrimitiveArray.cxx and XCAFDoc_GeomTolerance.cxx in order to fix Debug build. Do not trigger OCCT rebuild each time build-deps.cmd is ran.

* build-deps.cmd: fix OCCT file patch copy.

* Non-MSVC compiler: use -Wextra, suppress/fix -Wignored-qualifiers warnings.

* build-deps.cmd: do not check return values of copy commands as they seem not to be fully reliable.
2016-09-01 11:28:17 +02:00
Thomas Krijnen 16e8fff9ca virtual dtor 2016-08-08 10:41:51 +02:00
Ali Kämäräinen 4a85e5e7a5 MSYS build scripts and instructions (#99) and warning fixes
* Preliminary MSYS2 + MinGW build scripts and instructions.

* CMakeLists.txt: MinGW tweaks, enforce C++03, suppress warnings for now.

* Fix some GCC warnings.

* Fix unused parameter warnings coming from Ifc*.h.

* Fix warning regarding unreachable code (++jt) on MSVC.

* Add IfcParse_EXPORT for IfcInvalidTokenException

* Fix potentially uninitialized pointer variables.

* Note about OpenCASCADE cyclic dependencies fix.

* GCC warning fix: don't generate 'current_enum' variable that is only set and not used for anything ever

* Work around -Wmaybe-uninitialized warnings about boost::optional constructs. Also prevent passing of negative values for --bounds.

* Remove unused variable.

* CMakeLists.txt: ENABLE_BUILD_OPTIMIZATIONS for GCC (simply enforce -03)
2016-07-15 05:49:32 +02:00
Thomas Krijnen 9909e2f7e2 Don't emit OBJ vertex normal if absent (e.g --weld-vertices) 2016-05-24 15:01:34 +02:00
Thomas Krijnen 38d1ec7a78 #28 2016-05-24 13:50:50 +02:00
Johannes Obermayr 42188904af Fixes to build on openSUSE/Packman. (#67)
- Support different BINDIR, INCLUDEDIR and LIBDIR on install
- Take right python dir on x86_64 arch
- Fix build against Boost >= 1.58
- Make it possible to build libIfcGeom shared to reduce size of dependent binaries
- Fix INSTALL_RPATH
- Fix some more compiler warnings
2016-05-15 15:47:21 +02:00
Lars Moastuen 414d7bb810 OBJ precision and log messages
* Fixes #68: Increase precision in OBJ files (regression in commit 43f5d44)
* Add some verbose logging of a few geometry errors
2016-05-13 12:59:00 +02:00
Thomas Krijnen 2c3fa89dd0 Preprocessor consistency 2016-05-03 11:21:39 +02:00
Thomas Krijnen 04acfe1169 Fix #63 2016-05-03 11:01:47 +02:00
Thomas Krijnen 39e26dff46 Merge branch 'master' into layerset_slicing
# Conflicts:
#	src/ifcconvert/IfcConvert.cpp
#	src/ifcgeom/IfcGeom.h
#	src/ifcgeom/IfcGeomFunctions.cpp
#	src/ifcgeom/IfcGeomIteratorSettings.h
2016-05-02 15:13:30 +02:00
Thomas Krijnen c6d5adfa42 Merge branch 'master' into performance_improvements
# Conflicts:
#	src/ifcexpressparser/implementation.py
#	src/ifcgeom/IfcGeomFunctions.cpp
#	src/ifcparse/Ifc4.cpp
2016-04-24 15:22:10 +02:00
Stinkfist0 d7f990d8bd IfcConvert: Do not use temp file for MTL as it's such a small file. Fixes #55. 2016-03-28 11:47:21 +03:00
Stinkfist0 b59e8e22a7 IfcConvert: Show an error msg if renaming from temp to final file fails. 2016-03-28 11:47:02 +03:00
Thomas Krijnen 4c574df1a4 Immediately emit to serializer and remove option to obtain ownership of objects 2016-03-27 21:17:51 +02:00
Thomas Krijnen ee56aad90d Merge branch 'master' into performance_improvements
# Conflicts:
#	src/ifcconvert/ColladaSerializer.cpp
#	src/ifcconvert/ColladaSerializer.h
#	src/ifcgeom/IfcGeomIterator.h
#	src/ifcgeom/IfcGeomRenderStyles.h
2016-03-22 16:15:28 +01:00