* 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.
* 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).
====================================================================
- 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
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
- 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
- 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
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]
- Parsing: some support for units
- Geometry: IfcCircleProfileDef, IfcCircleHollowProfileDef, IfcCompositeCurve, IfcTrimmedCurve, IfcCircle, IfcEllipse