Commit Graph

1550 Commits

Author SHA1 Message Date
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 975d0caa0f If no plane angle unit is provided in the IFC file, create composite curves using both radians and degrees and see which 'looks best' (=successfully created and/or closed curve) 2012-07-29 15:16:30 +00:00
Thomas Krijnen b4e42025fd Convert all .cpp and .h files to UTF-8 with BOM 2012-07-19 18:26:47 +00:00
Jang Myeongho 217a7c6599 added break statements. 2012-06-27 15:59:09 +00:00
Jang Myeongho 00de61cbfc fixed wrong assertion. 2012-06-27 11:16:37 +00:00
Thomas Krijnen 4975de6d74 Apply patch #3537663 by myueho: https://sourceforge.net/tracker/?func=detail&atid=2204968&aid=3537663&group_id=543113 2012-06-25 15:08:58 +00:00
Thomas Krijnen 2137ad2488 Apply patch #3534755 by myueho to use the standard M_PI instead of relying on PI defined in OCC, which recently got removed upstream. 2012-06-13 07:13:31 +00:00
Thomas Krijnen b1adf124c6 Reorder the definition of IfcCircleHollowProfileDef and IfcCircleProfileDef in order for the hollow profiles to get interpreted correctly 2012-06-12 17:03:39 +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 4866953119 Revert the IfcGeomObjects API to float precision instead of double. Internally double precision is still used. 2012-04-08 08:39:09 +00:00
Thomas Krijnen b2b51e343f Only add faces to shells that have a surface area larger than some threshold value 2012-04-07 14:34:44 +00:00
Thomas Krijnen aa7a290ea1 Adjust some tolerances 2012-04-07 09:59:04 +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 df2bcecf96 - Fix a regression due to too high tolerance in Polyline -Loop creation.
- Make tolerances slightly more explicit, ideally these should obviously be configurable at runtime.
2012-03-20 09:32:51 +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 2b27b86b34 - IfcGeom: Major performance improvement by only sewing faces of IfcConnectedFaceSets when needed for boolean operations
- Automatic tests for several well known IFC files on the Internet
- IfcBlender: Make visibility in render consistent with 3d view
- Some compatibility for Ifc2x files with IfcShapeRepresentations and RepresentationIdentifier 'IAI'
2012-03-01 21:17:06 +00:00
Thomas Krijnen 3336102b46 No longer warn about 'empty' halfspace solids 2012-01-31 17:30:46 +00:00
Thomas Krijnen b719e12417 Provide access to IfcGeomObject geometry as Open Cascade BRep data 2012-01-31 08:56:10 +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 798397fa21 Do not trim conical curves if the difference between parametric values is 2pi 2012-01-02 14:56:11 +00:00
Thomas Krijnen 2d30fb4615 Catch errors in the processing of lists of shapes 2011-12-29 14:45:32 +00:00
Thomas Krijnen 508cb2679f #3452372 Parent Elements to Openings to Walls 2011-12-27 09:26:16 +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 479fcd9013 Further address UCS2 - UCS4 incompatibility, move compatibility layer to ifcwrap/Interface.h 2011-12-06 10:38:14 +00:00
Thomas Krijnen 08d3eb649c Allow for string data to be passed as vectors of int between IfcPython and IfcGeom, to circumvent SWG trying to access UCS-2 data as UCS-4 and vice versa 2011-12-05 14:23:22 +00:00
Thomas Krijnen cab44ce754 IfcBlender: provide a temporary workaround for interfacing from a UCS2 Blender Python
A real solution could be to compile IfcGeom into a dynamic library and compile multiple versions of _IfcImport.so for different configurations which are selected based on sys.maxunicode
Another alternative would be not to rely on strings when exchanging textual data but vectors of int that contain the string character codes
2011-12-04 13:33:16 +00:00
Thomas Krijnen f6da8285f7 Use std::string instead of char* for IfcGeomObjects::Init() 2011-12-01 11:19:27 +00:00
Thomas Krijnen 1a40a9f78c Fix compilation of IfcMax by separating ShapeList definition into different header 2011-11-30 11:50:17 +00:00
Thomas Krijnen 4dc0bdbe02 Guess units if none are present and convert back if needed 2011-11-02 12:52:35 +00:00
Thomas Krijnen d6d3333f9d - Correct calculation of normals
- More verbosity for geometry conversion settings
2011-10-28 09:55:26 +00:00
Thomas Krijnen 5ef06dca64 - Calculate normals (incorrectly for curved surfaces) 2011-10-27 20:42:51 +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 bede68bef7 Properly clear log_stream 2011-10-24 19:26:55 +00:00
Thomas Krijnen bd79df2be7 - Make distinction between single shape and list of shapes
- Store shapes in std::vectors rather than TopoDS_Compounds
- Apply transformation only on triangulated meshes or when processing openings
- Store transformations in a gp_GTrsf to allow arbitrary transformations
- Support IfcCartesianTransformationOperator3DnonUniform
- TODO: Create proper class for ShapeList
- TODO: Carefully check for null pointers returned from IfcGeom::convert_shape()
2011-10-23 17:11:06 +00:00
Thomas Krijnen 59d768bcb0 No longer skips IfcShapeRepresentations if they're linked to an IfcProduct via an IfcProductRepresentation rather than an IfcProductDefinitionShape 2011-10-19 12:52:18 +00:00
Thomas Krijnen 61c07dbe37 - Implement correct use of IfcCompositeCurveSegment::SenseAgreement and IfcTrimmedCurve::SameSense
- Reintroduce smaller tolerance value for IfcCompositeCurves
2011-10-13 13:37:38 +00:00
Thomas Krijnen 6dbf618360 - Throw and catch IfcExceptions while parsing
- Fix issues with left-handed IfcCartesianTransformationOperator3D [fixes #3405491 Issues with MappingTarget of IfcMappedItem]
2011-10-13 11:25:59 +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 523ac48afc - Progress bar in Blender console
- Fix bug freeing objects multiple times in IfcGeomObjects::CleanUp()
2011-10-09 09:07:33 +00:00
Thomas Krijnen 87b668959b Process IfcRelAggregates and IfcRelContainedInSpatialStructure to enable IfcBlender to build a parenting graph 2011-10-08 13:06:57 +00:00
Thomas Krijnen 69ad96df25 - Added id (ISO 10303-21 Table 2: ENTITY_INSTANCE_NAME) to IfcGeomObject. Thanks to laurencepike. 2011-10-08 09:01:35 +00:00
Thomas Krijnen f7abadc081 Ensure correct parsing and decoding of strings [#3395016] 2011-09-25 09:53:22 +00:00
Thomas Krijnen 767f7b4090 Use name for imported objects rather than GUID if name is not null 2011-09-22 11:35:03 +00:00
Thomas Krijnen 1b9c9615d1 Process entities with the "Facetation" RepresentationIdentifier too
Fixed a bug in the rendering of IfcTrimmedCurve
Inverted the resulting transformation of IfcCartesianTransformationOperators
2011-09-07 11:28:55 +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 44100ff0d4 Fixes compilation issues due to private copy constructors using older versions of gcc
Added additional default library and include directories to cmake build file
Fixes a compilation error in the python wrapper
2011-08-30 15:49:08 +00:00
Thomas Krijnen ee9c00abcb Fixed a typo preventing the geometry cache from being cleared 2011-08-30 12:42:23 +00:00
Thomas Krijnen 1842dc64da Added missing file 2011-08-24 12:35:42 +00:00
Thomas Krijnen 2561f94acb - Fixed a bug regarding IfcUnitAssignment
- Separate IFC parsing library and geometry libraries [#3395025]
- Added example for IfcParse usage without geometry or Open CASCADE functionality
- Cleanup of vcproj Open CASCADE dependencies
- Added function to query parent class type in IfcExpressParser.py
2011-08-24 12:21:07 +00:00