Skip to content
  • Mark OLESEN's avatar
    ENH: improved handling of coordinateSystems · 7b2bcfda
    Mark OLESEN authored
    - in continuation of #2565 (rotationCentre for surface output formats)
      it is helpful to also support READ_IF_PRESENT behaviour for the
      'origin' keyword.
    
      This can be safely used wherever the coordinate system definition
      is embedded within a sub-dictionary scope.
    
      Eg,
          dict1
          {
              coordinateSystem
              {
                  origin (0 0 0);  // now optional here
                  rotation ...;
              }
          }
    
       but remains mandatory if constructed without a sub-dict:
    
          dict2
          {
              origin (0 0 0);   // still mandatory
              e1  (1 0 0);
              e3  (0 0 1);
          }
    
       With this change, the "transform" sub-dictionary can written
       more naturally:
    
           formatOptions
           {
               vtk
               {
                   scale 1000;  // m -> mm
                   transform
                   {
                       rotationCentre  (1 0 0);
                       rotation axisAngle;
                       axis    (0 0 1);
                       angle   -45;
                   }
               }
           }
    
    ENH: simplify handling of "coordinateSystem" dictionary lookups
    
    - coordinateSystems::NewIfPresent method for optional entries:
    
        coordSysPtr_ = coordinateSystem::NewIfPresent(mesh, dict);
    
      Instead of
    
        if (dict.found(coordinateSystem::typeName, keyType::LITERAL))
        {
            coordSysPtr_ =
                coordinateSystem::New
                (
                    mesh_,
                    dict,
                    coordinateSystem::typeName
                );
        }
        else
        {
            coordSysPtr_.reset();
        }
    
    ENH: more consistent handling of priorities for binModels, forces (#2598)
    
    - if the dictionaries are overspecified, give a 'coordinateSystem'
      entry a higher prioriy than the 'CofR' shortcuts.
    
      Was previously slightly inconsistent between the different models.
    7b2bcfda