/usr/include/XdmfGeometryConverter.hpp is in libxdmf-dev 3.0+git20160803-4.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 | /*****************************************************************************/
/* XDMF */
/* eXtensible Data Model and Format */
/* */
/* Id : XdmfGeometryConverter.hpp */
/* */
/* Author: */
/* Andrew Burns */
/* andrew.j.burns2@us.army.mil */
/* US Army Research Laboratory */
/* Aberdeen Proving Ground, MD */
/* */
/* Copyright @ 2014 US Army Research Laboratory */
/* All Rights Reserved */
/* See Copyright.txt for details */
/* */
/* This software is distributed WITHOUT ANY WARRANTY; without */
/* even the implied warranty of MERCHANTABILITY or FITNESS */
/* FOR A PARTICULAR PURPOSE. See the above copyright notice */
/* for more information. */
/* */
/*****************************************************************************/
#ifndef XDMFGEOMETRYCONVERTER_HPP_
#define XDMFGEOMETRYCONVERTER_HPP_
// C Compatible Includes
#include "XdmfUtils.hpp"
#include "XdmfGeometry.hpp"
#ifdef __cplusplus
// Forward Declarations
//class XdmfGeometry;
// Includes
#include "XdmfSharedPtr.hpp"
/**
* @brief Converts an geometry to a different coordinate system.
*
* Converts between the Cartesian and Spherical coordinate systems.
* Maintains number of dimensions, datatype converted to double
* precision floating point (XdmfArrayType::Float64()).
*
* The cmath library is used for the conversions so angles
* are treated as radians.
*/
class XDMFUTILS_EXPORT XdmfGeometryConverter {
public:
/**
* Create a new XdmfGeometryConverter.
*
* @return constructed XdmfGeometryConverter.
*/
static shared_ptr<XdmfGeometryConverter> New();
virtual ~XdmfGeometryConverter();
/**
* Converts the provided geometry to Cartesian coordinates.
*
* @param geometryToConvert The geometry to be converted
* to Cartesian coordinates.
*
* @return The geometry equivalent for
* the Cartesian Coordinate system.
*/
shared_ptr<XdmfGeometry>
convertToCartesian(const shared_ptr<XdmfGeometry> & geometryToConvert) const;
/**
* Converts the provided geometry to spherical coordinates.
*
* @param geometryToConvert The geometry to be converted
* to spherical coordinates.
*
* @return The geometry equivalent for
* the Spherical Coordinate system.
*/
shared_ptr<XdmfGeometry>
convertToSpherical(const shared_ptr<XdmfGeometry> & geometryToConvert) const;
/**
* Converts the provided geometry to Cartesian coordinates. This version
* overwrites the data in the geometry provided instead of returning a new one.
*
* @param geometryToConvert The geometry to be converted
* to Cartesian coordinates.
*/
void
convertToCartesianOverwrite(shared_ptr<XdmfGeometry> & geometryToConvert) const;
/**
* Converts the provided geometry to spherical coordinates. This version
* overwrites the data in the geometry provided instead of returning a new one.
*
* @param geometryToConvert The geometry to be converted
* to spherical coordinates.
*/
void
convertToSphericalOverwrite(shared_ptr<XdmfGeometry> & geometryToConvert) const;
shared_ptr<XdmfGeometry>
zeroOrigin(const shared_ptr<XdmfGeometry> & geometryToConvert);
void
zeroOriginOverwrite(shared_ptr<XdmfGeometry> & geometryToConvert);
XdmfGeometryConverter(const XdmfGeometryConverter &);
protected:
XdmfGeometryConverter();
private:
void operator=(const XdmfGeometryConverter &); // Not implemented.
};
#endif
#ifdef __cplusplus
extern "C" {
#endif
// C wrappers go here
struct XDMFGEOMETRYCONVERTER; // Simply as a typedef to ensure correct typing
typedef struct XDMFGEOMETRYCONVERTER XDMFGEOMETRYCONVERTER;
XDMFUTILS_EXPORT XDMFGEOMETRYCONVERTER * XdmfGeometryConverterNew();
XDMFUTILS_EXPORT XDMFGEOMETRY * XdmfGeometryConverterConvertToCartesian(XDMFGEOMETRYCONVERTER * converter, XDMFGEOMETRY * geometryToConvert);
XDMFUTILS_EXPORT XDMFGEOMETRY * XdmfGeometryConverterConvertToSpherical(XDMFGEOMETRYCONVERTER * converter, XDMFGEOMETRY * geometryToConvert);
XDMFUTILS_EXPORT void XdmfGeometryConverterConvertToCartesianOverwrite(XDMFGEOMETRYCONVERTER * converter, XDMFGEOMETRY * geometryToConvert);
XDMFUTILS_EXPORT void XdmfGeometryConverterConvertToSphericalOverwrite(XDMFGEOMETRYCONVERTER * converter, XDMFGEOMETRY * geometryToConvert);
XDMFUTILS_EXPORT XDMFGEOMETRY * XdmfGeometryConverterZeroOrigin(XDMFGEOMETRYCONVERTER * converter, XDMFGEOMETRY * geometryToConvert);
XDMFUTILS_EXPORT void XdmfGeometryConverterZeroOriginOverwrite(XDMFGEOMETRYCONVERTER * converter, XDMFGEOMETRY * geometryToConvert);
XDMFUTILS_EXPORT void XdmfGeometryConverterFree(XDMFGEOMETRYCONVERTER * converter);
#ifdef __cplusplus
}
#endif
#endif /* XDMFTOPOLOGYCONVERTER_HPP_ */
|