Commit Graph

48 Commits

Author SHA1 Message Date
Sander Boer de416eca49 Too lazy to comment 2018-12-18 12:49:11 +01:00
youaresoomean fae9661efd Update IfcParse.h (#256) 2017-09-08 17:18:11 +02:00
Thomas Krijnen 1e8b1d9c9c traverse() as a global function rather than method on IfcFile 2017-06-20 18:54:30 +02:00
Thomas Krijnen 5e0da9725a ifcparse refactoring (#190)
Unify attribute containers, provide latebound attribute access on IfcBaseEntity, more basic tests on Travis
2017-06-05 17:26:58 +02:00
Stinkfist0 6d6e7c2982 Unify IfcParse's dllimport/export macros with IfcGeom. 2016-07-20 22:49:32 +03:00
stgatilov 8725c66306 Performance improvement of IfcParse tokenizer (#82)
* Applied MSVC tabify to IfcParse.cpp/h.

* Now Argument base class has throwing implementation for each conversion operator (removed those from derived classes).

* Added NullArgument class for the case when null arguments appear after setting elements.

* Now operator tokens are handled just like any other token.

* Refactoring: Token is now a struct with good fields, not a nameless pair.

* Now end position of token is set at its construction.

* Now type of token is determined on construction, as* function simply check stored type.

* Now int-s, float-s and some etc are parsed when token is created.

* Implemented simple way to remove spaces in parsing.

* Tokens are now created without allocations.

* Call RemoveTokenSeparators once for every token.

* Added temporary std::string object in lexer (for optimization purposes).

* Reimplemented asString without allocations.

* Parsing keywords without allocations.

* Added checks for type to tokenFunc::as*** functions.
2016-06-09 18:25:50 +02:00
stgatilov b5c4eb3b6f IfcParse dynamic linking, IFCPARSE_NO_REGEX, fixes for three memory leaks (#76)
* CMake: moved setting link directories before all the projects.

* Added IfcParse_Export header for declaring export macro.

* Added IFCPARSE_STATIC_DEFINE macro to all projects.

* Added include for export macro to swig file.

* Added IfcParse_EXPORT macro for all classes in headers generated by express parser.

* Allow removing boost.regex dependency by defining macro IFCPARSE_NO_REGEX.

* Fixed bug in deletion of ICU converter.

* Added export macro to most of the classes across headers

* Fixed memory leak: delete nested IfcAbstractEntity in EntityArgument.

* Fixed memory leak in destructor of IfcWritableEntity (args values).
2016-05-29 14:12:57 +02:00
Ivano Ras 0253c1ddbe Extended error logging
Fixes #33
2016-05-11 10:56:40 +02:00
Stinkfist0 2f8fa3282b Fix mem leak in IfcSpfStream (not closed upon destruction), make Entity's dtor virtual. 2016-02-07 22:45:42 +02:00
aothms ed8cc620ea Use boost::shared_ptr
Fixes https://github.com/IfcOpenShell/IfcOpenShell/issues/17
2016-01-25 14:42:41 +01:00
Thomas Krijnen 4f60c7d48c Provide concrete C++ implementations for all multidimensional aggregate types in IFC4 2015-06-16 12:58:07 +00:00
Thomas Krijnen 955190b517 Add support for reading and writing BINARY attributes. Rename members of the IfcUtil::ArgumentType enumeration. 2015-04-07 15:06:56 +00:00
Thomas Krijnen 7b17c2dccd Make header values writable 2015-01-16 16:26:40 +00:00
Thomas Krijnen 8581fed39b Track inverse attributes more correctly
Rename Size() to size() on EntityList and friends
2015-01-10 22:13:52 +00:00
Thomas Krijnen f3c26c372d Parse the spf header and check schema_identifiers against compiled schema 2015-01-05 17:46:23 +00:00
Thomas Krijnen 4d5d749255 Merge developments from the python_wrapper branch into master 2015-01-05 14:11:42 +00:00
Thomas Krijnen 2a403e240d *** See: https://sourceforge.net/p/ifcopenshell/discussion/1782718/thread/6bd0f843/ ***
Massive refactor of the IfcGeomObjects module, which is now the IfcGeom::Iterator class.
2014-12-19 12:14:36 +00:00
Thomas Krijnen 872dd4e831 Rewrite IfcFile::AddEntity() not to rely on exceptions, as suggested by ch0kee. 2014-11-02 18:36:51 +00:00
Thomas Krijnen 1b54ba039d - Add support for IFC4 nurbs surfaces (IfcBSplineSurfaceWithKnots and IfcAdvancedFace)
- Remove unnecessary typedefs
2014-05-04 14:42:55 +00:00
Thomas Krijnen aebb9469a9 Fixes for parsing files with comments 2014-04-02 15:04:09 +00:00
Thomas Krijnen 17f873b486 First stab at a new express parser to have some more luck with Ifc4 2014-02-17 22:13:55 +00:00
Thomas Krijnen 87259c0cab Bump version numbers 2014-01-12 11:03:50 +00:00
Thomas Krijnen 24b03330ef Update version numbers 2013-01-01 15:11:04 +00:00
Thomas Krijnen 578dce4a47 Provide more contextual information in the IFC SPF file header 2012-11-17 15:19:38 +00:00
Thomas Krijnen 6f1e1c3bad NOTE: From now on Boost is required in order to compile IfcOpenShell
====================================================================

- Use boost::optional for optional IFC arguments
- Use boost::uuid for the creation of GlobalIds
- New IfcGeomObjects setting to force alignment of TopoDS_Face normal to CCW orientation
- Removed static Ifc class, renamed to non-static IfcFile. IfcFile renamed to IfcSpfStream
- Introduced Logger class
- Introduced EntityBuffer class that keeps track of all writable entities created to add them all in once to the IfcFile class
2012-08-11 13:24:08 +00:00
Thomas Krijnen b4e42025fd Convert all .cpp and .h files to UTF-8 with BOM 2012-07-19 18:26:47 +00:00
Thomas Krijnen 6ced646413 IfcParse: get entities by type string 2012-07-19 00:14:01 +00:00
Thomas Krijnen 1d4a999381 Initial draft of writing and modifying IFC files 2012-07-18 19:32:58 +00:00
Thomas Krijnen 700cc772fb - Add an alternative method to process openings that is potentially faster. Use IfcGeomObjects::FASTER_BOOLEANS to enable.
- Begin working on verbosity levels
2012-06-07 14:38:21 +00:00
Thomas Krijnen a9bba39b9d Applied Patch #3509752 by mv2ax
Made the sewing of TopoDS_Shells into a IfcGeomObjects::Setting
Limit the maximum number of faces a shell to be sewed
2012-03-23 17:38:44 +00:00
Thomas Krijnen 4760ad1910 Fix a typo preventing gcc compilation
Increment version string to 0.3.0-rc3
Add version string to IfcObj output
2012-03-19 10:12:56 +00:00
Thomas Krijnen c31bc16dba Try to better my life as a programmer, starting with more comments and documentation 2012-03-17 11:47:31 +00:00
Thomas Krijnen cdbafac676 Fix a bug in the order of applying the scaling of a IfcCartesianTransformationOperator3DnonUniform
Fix a bug in the formatting of IFC simple types
Provide a way of iterating over all entities in the IFC file
Added IFC test file by Ryan Schultz
Added another IFC test file from AutoCAD Architecture 2010
2012-03-16 15:21:52 +00:00
Thomas Krijnen 3bb008c89f - Switch to double precision
- Allow accessing entities by GlobalId
- Some more support for writing back IFC
- Prefix EXPRESS Enum values to avoid collisions
- Fix a bug in the SenseAgreement of Cartesian trimmed curves
- Use straight line segment in case point projection failed on trimmed curve
- Add epsilon to polylines and -loops point equality test
- Decompose a convex polygonal bounded halfspace into several unbounded halfspace and process only if they operate on a volume larger than some epsilon
- No longer fail connected facesets if a single face is invalid
- Updated IfcBlender for compatibility with Blender 2.62
- Added additional test files
2012-03-13 11:56:52 +00:00
Thomas Krijnen 644ff7c033 - IfcJni: Fix access violation errors by creating a copy of the byte[]
- Add version identifier to bimserver_plugin and IfcJni
2012-01-24 13:38:37 +00:00
Thomas Krijnen 9d88d75b3b Fixes #3452363 Fail to create meshes of parametric curves when no angular unit information is present in the IFC file 2011-12-07 14:07:22 +00:00
Thomas Krijnen ac155dc810 - Jave Native Interface library for use with the open source http://BIMserver.org
- IfcParse accepts char* as input
- IfcOpeningElements now return geometry
2011-10-27 16:13:29 +00:00
Thomas Krijnen 34efb480d6 - Provide logging information to IfcBlender
- Disallow open curves for IfcPolygonalBoundedHalfSpace [fixes #3405490 Incorrectly rendered wall in FZK-Haus-EliteCAD.ifc]
- Disable tolerance on IfcCompositeCurve
- Try to convert IfcConnectedFaceSets to TopoDS_Solids regardless of whether they are open or closed shells, improves openings in IFC files exported by Revit
- Provide debugging information based on shape volume on IfcBooleanClippingResult and IfcOpeningElement
2011-10-12 16:43:29 +00:00
Thomas Krijnen f7abadc081 Ensure correct parsing and decoding of strings [#3395016] 2011-09-25 09:53:22 +00:00
Thomas Krijnen d02eeac132 Reduce unnecessary use of smart pointers
Speed up type checking by using std::maps and switch statements
Add compile flag to win/IfcGeom.vcproj
2011-09-03 13:58:59 +00:00
Thomas Krijnen 0b45066736 IfcParse: allow reading of IFC file from stdin
IfcServer: first commit of a stdin/stdout interface to IfcGeomObjects [undocumented for now]
BIMserver_plugin: first commit of IfcEngine plugin implementation for use with http://BIMserver.org [undocumented for now]
2011-08-20 09:08:56 +00:00
Thomas Krijnen c99633eb90 - Fixed CMake errors, added missing libraries
- Basic checks for valid file stream, seperated logging to stdout and stderr
- Use placement new to reconstruct MakeFace for non-planar face
2011-08-07 10:21:22 +00:00
Thomas Krijnen 9b36321861 Rewritten library to use code generated from IFC2X3_TC1.exp 2011-07-25 14:56:40 +00:00
Thomas Krijnen 75c26a34e1 Patch by Antti Risteli (andepoikka)
Compile problems on gcc ubuntu-4.4.3 + misc
2011-07-22 08:24:00 +00:00
Thomas Krijnen 8767f6e52a IfcBlender: updated to Blender 2.58 (Patch by Yorik van Havre)
IfcParse: lazy loading of entities
IfcGeom: caching of binary entities
2011-07-11 09:33:18 +00:00
Thomas Krijnen a7ed78c4a8 - Parsing: support for comments
- Geometry: support for some complex filleted profiles ( e.g. IfcIShapeProfileDef, IfcCShapeProfileDef )
2011-06-13 12:28:38 +00:00
Thomas Krijnen 93d7b8fba9 - Parsing: support for nested types
- Parsing: some support for units
- Geometry: IfcCircleProfileDef, IfcCircleHollowProfileDef, IfcCompositeCurve, IfcTrimmedCurve, IfcCircle, IfcEllipse
2011-06-13 07:23:09 +00:00
Thomas Krijnen a1016d82da Initial commit 2011-05-08 11:04:32 +00:00