Commit Graph

48 Commits

Author SHA1 Message Date
Richard Brice a94d1e53b7 Fixes some problems with mapping IfcCurveSegment 2024-04-06 19:02:18 -07:00
Richard Brice 83a127b570 Implements IfcSegmentReferenceCurve and cant 2024-03-28 15:04:17 -07:00
Richard Brice ebe6015561 Fixes vertical clothoid, vertical circle, and horizontal cubic cases for alignment 2024-03-06 12:00:35 -08:00
Richard Brice fcfeac95bf WIP getting alignment geometry to match unit test from bSI Rail Room 2024-03-01 10:55:20 -08:00
Richard Brice 0baf3dac52 Adds support for IfcCosineSpiral, IfcSineSpiral, and updates implementation to match results from bSI Railway Room test cases. 2024-02-26 16:34:41 -08:00
Richard Brice bb88ba5bdf Updates implementation of IfcXXXPolynomialSpiral curves as parent curve 2024-02-16 13:54:26 -08:00
Richard Brice abddb74bd9 Adds placeholder implementations for IfcXXXOrderPolynomialSpiral - there are some bugs, but the basic implementation framework is good. 2024-01-17 12:59:48 -08:00
Richard Brice 5815417198 Fixes documentation in comment 2024-01-11 15:36:17 -08:00
Richard Brice 662a4bb6e9 Fixes generated geometry based on evolving understanding of IFC 2023-12-13 16:17:10 -08:00
Richard Brice 7fef3efbeb Fixes horizontal alignment issues 2023-12-13 16:17:10 -08:00
Richard Brice 4b933812a7 Generalized calculation of spiral curve tangent vector 2023-12-07 08:01:31 -08:00
Richard Brice 9e32c0ea93 Fixes problem computing Axis vector for cant 2023-12-06 15:31:01 -08:00
Richard Brice 2126381a15 Adds conversion settings to control the granularity of points computed for a piecewise_function 2023-11-22 15:49:24 -08:00
Richard Brice 39c3cac05d Fixes bugs in segment reference curve geometry 2023-11-22 08:32:59 -08:00
Richard Brice 49d9245e29 Fixes problem computing tangent and normal vectors for Circle 2023-11-21 08:49:16 -08:00
Richard Brice 49b3805859 Updates treatment of IfcLine to account for the fact that IfcLine.Orientation.DirectionRatios are generally normalized. 2023-11-20 11:15:35 -08:00
Richard Brice afb8375e70 Fixes problem with vertical curve slopes 2023-11-17 08:03:03 -08:00
Richard Brice f4ba3fe487 Still trying to figure out cant 2023-11-16 16:17:41 -08:00
Richard Brice f204135aa6 Fixing bugs 2023-11-15 07:21:19 -08:00
Thomas Krijnen 65e874c67f Drastic settings refactoring 2023-11-15 10:32:33 +01:00
Richard Brice 8303a04b4f A couple tweaks for IfcCurveSegment 2023-11-09 09:48:05 -08:00
Richard Brice 12e69ff07a Fixes build issue with mapping 2023-11-09 09:43:36 -08:00
Richard Brice 8409859e8d Implements safer way to use IfcCurveSegment.UsingCurves
Co-authored-by: Thomas Krijnen <t.krijnen@gmail.com>
2023-11-09 03:23:13 -07:00
Richard Brice 7ed85358f9 Implements IfcSegmentedReferenceCurve and first cut at cant geometry 2023-11-08 19:43:21 -08:00
Richard Brice b50f4a2240 Adds a virtual init_adjustments function to precompute common values for segment geometry adjustments 2023-11-01 08:35:29 -07:00
Richard Brice bef86e261c Renamed interpolate to compute_adjustment and made it a template function. 2023-11-01 08:34:58 -07:00
Richard Brice 969181acf3 Implements framework for adjusting geometry based on location of start point of next segment. 2023-10-27 08:10:18 -07:00
Richard Brice 85ece64272 Minor code format revisions 2023-10-27 08:10:18 -07:00
Richard Brice cefbf8b4f2 Fixes runtime check for polynomial curve 2023-10-27 08:10:17 -07:00
Richard Brice dde85265c6 Adds support for IfcLinearPlacement 2023-10-27 08:09:05 -07:00
Richard Brice 1920a6427d Removed assert, added Logger::Warning and Logger::Error. Made treatment of unexpected data more permissive 2023-10-27 08:04:19 -07:00
Richard Brice 528cf06a46 Adds support for IfcLinearPlacement 2023-10-27 08:04:17 -07:00
Richard Brice 8497e655f5 Fixes mapping of horizontal curve with IfcCircle 2023-10-27 08:04:12 -07:00
Richard Brice c1cab4b186 Fixes problems with horizontal curves and clothoid spirals 2023-10-27 08:04:12 -07:00
Thomas Krijnen c1a6d8f347 Small changes to curve segment handling for purpose of wrapper 2023-10-27 08:04:12 -07:00
Richard Brice a5c07d5e24 Adds IfcPolynoialCurve for vertical curves 2023-10-04 13:25:31 -07:00
Richard Brice 7b0e2c52ac Manually merged in aothms revisions for gradient curves and implicit_item taxonomy 2023-10-02 16:30:39 -07:00
Richard Brice c3aeae8661 Implements recommendation to use map_impl(IfcPolyline*) 2023-09-29 13:27:23 -07:00
Richard Brice 00d8ffeba0 Reverts to Taylor Series approximation of Clothoid curve.
If you compare the results generated by the numeric integration and the approximation, they are very different. The approximation compares will with other software so there is likely a problem with the equation of the clothoid
2023-09-29 12:14:38 -07:00
Richard Brice f9d259a3d8 Removes redundant function evaluation in numeric integration 2023-09-29 12:14:38 -07:00
Richard Brice d9b534b66d Implemented position handling with transformation matrix 2023-09-29 12:14:38 -07:00
Richard Brice d4f543d2ad Implemented placement handling with transformation matrix. 2023-09-28 14:58:21 -07:00
Richard Brice 1564b53ef5 Minor revision to numerical integration code 2023-09-28 14:28:17 -07:00
Richard Brice 4f2b083ffc Revises implementation of operator(IfcSchema::IfcClothoid*) to use trapezoid rule numeric integration.
This is a more general approach than the Taylor Series approximation and is applicable to all the other spiral types. I stubbed out a functor for IfcSecondOrderPolynomialSpiral, but haven't tested it. The purpose is to show the concept.
2023-09-28 11:51:26 -07:00
Richard Brice 6ae0cce186 Implements mapping of IfcCurveSegment to taxonomy::geometry 2023-09-27 11:16:55 -07:00
Richard Brice 04b70efd7f Fixed problem with call to boost::mpl::for_each 2023-09-21 15:48:45 -07:00
Thomas Krijnen 053e3a3191 #3098 Move boost::type application to curve to template function 2023-09-17 09:35:14 +02:00
Thomas Krijnen 88ef7c75b8 #3098 IfcCurveSegment and IfcClothoid handling (?) 2023-09-16 22:23:04 +02:00