\brief Instantiate a transformation with Position vector transformation * method. * * This is similar to createCoordinateFrameRotation(), except that the sign of * the rotation terms is inverted. * * @param properties See \ref general_properties of the Transformation. * At minimum the name should be defined. * @param sourceCRSIn Source CRS. * @param targetCRSIn Target CRS. * @param trans
| 592 | * @return new Transformation. |
| 593 | */ |
| 594 | TransformationNNPtr Transformation::createPositionVector( |
| 595 | const util::PropertyMap &properties, const crs::CRSNNPtr &sourceCRSIn, |
| 596 | const crs::CRSNNPtr &targetCRSIn, double translationXMetre, |
| 597 | double translationYMetre, double translationZMetre, |
| 598 | double rotationXArcSecond, double rotationYArcSecond, |
| 599 | double rotationZArcSecond, double scaleDifferencePPM, |
| 600 | const std::vector<metadata::PositionalAccuracyNNPtr> &accuracies) { |
| 601 | |
| 602 | bool isGeocentric; |
| 603 | bool isGeog2D; |
| 604 | bool isGeog3D; |
| 605 | getTransformationType(sourceCRSIn, targetCRSIn, isGeocentric, isGeog2D, |
| 606 | isGeog3D); |
| 607 | return createSevenParamsTransform( |
| 608 | properties, |
| 609 | createMethodMapNameEPSGCode(useOperationMethodEPSGCodeIfPresent( |
| 610 | properties, |
| 611 | isGeocentric ? EPSG_CODE_METHOD_POSITION_VECTOR_GEOCENTRIC |
| 612 | : isGeog2D ? EPSG_CODE_METHOD_POSITION_VECTOR_GEOGRAPHIC_2D |
| 613 | : EPSG_CODE_METHOD_POSITION_VECTOR_GEOGRAPHIC_3D)), |
| 614 | sourceCRSIn, targetCRSIn, translationXMetre, translationYMetre, |
| 615 | translationZMetre, rotationXArcSecond, rotationYArcSecond, |
| 616 | rotationZArcSecond, scaleDifferencePPM, accuracies); |
| 617 | } |
| 618 | |
| 619 | // --------------------------------------------------------------------------- |
| 620 |
nothing calls this directly
no test coverage detected