complexType · extension pointListXYZVectorType · sequence
Smooth curve through an ordered list of points
The curve passes through the points in the order in which they are listed. The entries of x, y and z with the same position form one point; the point indices start at 1. Between the points, the curve is smooth, typically a B-spline. The plane in which a profile lies and the order of its points are described for the profile (profileGeometryType).
Kinks
By default, the curve is smooth at every point. kinkIndices lists the points at which the curve may change its direction abruptly, e.g. where a flat cabin floor meets the side of a fuselage. The curve still passes through such a point, but the shapes before and after the point are independent of each other.
Curve parameter
A position on the curve is described by the curve parameter t, which runs from 0 at the first point to 1 at the last point. Which parameter the points in between receive is not defined by the points alone; a tool usually distributes the parameters according to the distances between the points. The optional parameterMap fixes the parameters of selected points instead; the parameters of the other points are distributed between them.
The parameters matter wherever several curves are combined, above all when a surface is lofted through the profiles of consecutive sections: along the surface, points with equal parameters are connected. If corresponding points of consecutive profiles, such as the kinks at the floor corners, receive the same parameters, these features are connected along the fuselage instead of running diagonally across its surface.
Approximation
By default, the curve interpolates the points, i.e. it passes exactly through each of them. With approximationSettings, the curve approximates the points instead: it is fitted to them with a limited number of control points or within a maximum error. This keeps curves through many or scattered points compact and smooth, but the curve no longer passes exactly through every point. Points that have to lie exactly on the curve nonetheless are listed in interpolatedPointsIndices.
Example
The following fuselage profile has a circular arc and a flat floor between the kinks at points 5 and 9. Points 5, 7 and 9 have fixed curve parameters, so that they meet the corresponding points of a second profile of the same fuselage. It is the profile shown in figure (a) and the rear profile in figure (b).
<fuselageProfile uID="FloorProfile_wide">
<name>Fuselage profile with flat floor, wide</name>
<pointList>
<x>0;0;0;0;0;0;0;0;0;0;0;0;0</x>
<y>0;0.6503;1.077;1.1334;0.8;0.4;0;-0.4;-0.8;-1.1334;-1.077;-0.6503;0</y>
<z>1;0.8006;0.2708;-0.4071;-1;-1;-1;-1;-1;-0.4071;0.2708;0.8006;1</z>
<kinkIndices>5;9</kinkIndices>
<parameterMap>
<pointIndices>5;7;9</pointIndices>
<paramOnCurve>0.4;0.5;0.6</paramOnCurve>
</parameterMap>
</pointList>
</fuselageProfile>| Name | Type | Constraints | Use | Default | Description |
|---|---|---|---|---|---|
@externalDataDirectory | xsd:string | optional | Directory of the external data file | ||
@externalDataNodePath | xsd:string | optional | Path of the node inside the external data file | ||
@externalFileName | xsd:string | optional | Name of the external data file |
| Name | Type | Constraints | OccurrenceHow often the element may appear at this place. The schema writes it as minOccurs and maxOccurs on the declaration. | Default | Description |
|---|---|---|---|---|---|
| sequenceThe children below must appear in exactly this order. Each may repeat as often as its own occurrence allows. | |||||
x | stringVectorBaseType | [1..1] required | Vector of x coordinates | ||
y | stringVectorBaseType | [1..1] required | Vector of y coordinates | ||
z | stringVectorBaseType | [1..1] required | Vector of z coordinates | ||
| sequenceThe children below must appear in exactly this order. Each may repeat as often as its own occurrence allows. | |||||
kinkIndices | stringVectorBaseType | [0..1] optional | Indices of the points at which the curve has a kink, each in the range from 1 to the number of points | ||
parameterMap | curveParamPointMapType | [0..1] optional | Fixed curve parameters of selected points | ||
approximationSettings | approximationSettingsType | [0..1] optional | Settings for approximating the points instead of interpolating them (if omitted: the curve passes through all points) | ||
cpacs/vehicles/profiles/fuselageProfiles/fuselageProfile/pointListcpacs/vehicles/profiles/wingAirfoils/wingAirfoil/pointListcpacs/vehicles/profiles/rotorAirfoils/rotorAirfoil/pointList| Type | Name |
|---|---|
profileGeometryType | pointList |