mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-19 22:50:21 +00:00
Fixes parabolic curves in IfcAlignment examples and helper functions
This commit is contained in:
@@ -151,7 +151,7 @@ std::pair<typename Schema::IfcCurveSegment*, typename Schema::IfcAlignmentSegmen
|
|||||||
// creates geometry and business logic segments for vertical profile parabolic vertical curves
|
// creates geometry and business logic segments for vertical profile parabolic vertical curves
|
||||||
std::pair<typename Schema::IfcCurveSegment*, typename Schema::IfcAlignmentSegment*> create_vcurve(typename Schema::IfcCartesianPoint* p, double start_slope, double end_slope, double length) {
|
std::pair<typename Schema::IfcCurveSegment*, typename Schema::IfcAlignmentSegment*> create_vcurve(typename Schema::IfcCartesianPoint* p, double start_slope, double end_slope, double length) {
|
||||||
// geometry
|
// geometry
|
||||||
double A = 0.0;
|
double A = p->Coordinates()[1];
|
||||||
double B = start_slope;
|
double B = start_slope;
|
||||||
double C = (end_slope - start_slope) / (2 * length);
|
double C = (end_slope - start_slope) / (2 * length);
|
||||||
|
|
||||||
|
|||||||
@@ -696,7 +696,7 @@ std::pair<Ifc4x3_add2::IfcCurveSegment*, Ifc4x3_add2::IfcCurveSegment*> mapAlign
|
|||||||
result.first = curve_segment;
|
result.first = curve_segment;
|
||||||
|
|
||||||
} else if (type == Ifc4x3_add2::IfcAlignmentVerticalSegmentTypeEnum::IfcAlignmentVerticalSegmentType_PARABOLICARC) {
|
} else if (type == Ifc4x3_add2::IfcAlignmentVerticalSegmentTypeEnum::IfcAlignmentVerticalSegmentType_PARABOLICARC) {
|
||||||
double A = 0.0;
|
double A = start_height;
|
||||||
double B = start_gradient;
|
double B = start_gradient;
|
||||||
double C = (end_gradient - start_gradient) / (2 * horizontal_length);
|
double C = (end_gradient - start_gradient) / (2 * horizontal_length);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user