DLR-SL / CPACS

CPACS - Common Parametric Aircraft Configuration Schema
http://dlr-sl.github.io/CPACS/
Apache License 2.0
81 stars 38 forks source link

Explicit specification of geometric symmetry #609

Open MarAlder opened 5 years ago

MarAlder commented 5 years ago

We do have the problem that we don't have a consistent interpretation of the symmetry attribute in CPACS. I would like to discuss the following proposal.

We could introduce a new attribute symmetryType, which can have the following values:

Two examples for copies (or should we name it dublicates?): example_rotos example_rotos2

This way the symmetry attribute would still define the symmetry plane (I swapped it into a restricted xsd:string simpleType) and "old" data-sets would remain valid in TiGL. With the additional symmetryType attribute (don't confuse the attributes name with the symmetryType for the symmetry element) tools would know how to properly treat the geometry. The symmetry attribute is part of the following elements and I added the symmetryType attribute with the default value corresponding to the way we previously treated the symmetry:

Do we need the attribute if only one option is possible? Maybe it is then more specify in the schema (and documentation).

joergbrech commented 5 months ago

@MarAlder, @cliersch, @AntonReiswich, @svengoldberg, @merakulix and I had a discussion on how we want to deal with symmetries in CPACS and TiGL in the (near) future. Here are the "minutes":

   - Functions returning a cardinality such as GetSegmentCount will only return the cardinality of the defined part. It does not make sense to add functions that return the cardinality of a symmetric copy, or of “both parts” in total. This prevents out-of-bounds errors or index ambiguities when iterating. As an example, a simple configuration with symmetric main wing and HTP and non-symmetric VTP will continue to have a wing count of 3 and not 5. This is the status quo in TiGL and will not change.     - Functions returning UIDs will not be changed.      - Functions to query geometric information on symmetric parts could be modified for convenience, by adding an enum "Symmetry" which has the values "sym" and "def" (in analogy to the symmetry attribute of the parentUID element). Functions such as CPACSWing::GetPoint(...) would get an optional last argument CPACSWing::GetPoint(..., Symmetry=def). These functions would just transform the result based on the symmetry property of the queried object and the passed argument.

MarAlder commented 1 week ago

@MarAlder, @CLiersch, @AntonReiswich, @svengoldberg, @merakulix, @sdeinert and @rmaierl had a follow-up discussion: