Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions ApplicationLibCode/Application/Tools/CMakeLists_files.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,8 @@ set(SOURCE_GROUP_HEADER_FILES
${CMAKE_CURRENT_LIST_DIR}/RiaProjectBackupTools.h
${CMAKE_CURRENT_LIST_DIR}/RiaQuantityInfoTools.h
${CMAKE_CURRENT_LIST_DIR}/RiaHashTools.h
${CMAKE_CURRENT_LIST_DIR}/RiaAngleUtils.h
${CMAKE_CURRENT_LIST_DIR}/RiaAngleUtils.inl
)

set(SOURCE_GROUP_SOURCE_FILES
Expand Down Expand Up @@ -108,6 +110,7 @@ set(SOURCE_GROUP_SOURCE_FILES
${CMAKE_CURRENT_LIST_DIR}/RiaFileLogger.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaProjectBackupTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaQuantityInfoTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaAngleUtils.cpp
)

list(APPEND CODE_SOURCE_FILES ${SOURCE_GROUP_SOURCE_FILES})
69 changes: 69 additions & 0 deletions ApplicationLibCode/Application/Tools/RiaAngleUtils.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
/////////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2025 Equinor ASA
//
// ResInsight is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE.
//
// See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>
// for more details.
//
/////////////////////////////////////////////////////////////////////////////////

#include "RiaAngleUtils.h"

#include <cmath>

namespace Ria
{

// Explicit instantiation of commonly used types
template class Degrees<float>;
template class Degrees<double>;
template class Radians<float>;
template class Radians<double>;

// Explicit instantiation of coordinate conversion functions
template cvf::Vector3<float> CoordinateConverter::cylindricalToCartesian<float>( float, const Radians<float>&, float );
template cvf::Vector3<double> CoordinateConverter::cylindricalToCartesian<double>( double, const Radians<double>&, double );
template cvf::Vector3<float> CoordinateConverter::cylindricalToCartesian<float>( float, const Degrees<float>&, float );
template cvf::Vector3<double> CoordinateConverter::cylindricalToCartesian<double>( double, const Degrees<double>&, double );
template cvf::Vector3<float> CoordinateConverter::cylindricalToCartesian<float>( const CylindricalCoordinate& );
template cvf::Vector3<double> CoordinateConverter::cylindricalToCartesian<double>( const CylindricalCoordinate& );
template CylindricalCoordinate CoordinateConverter::cartesianToCylindrical<float>( const cvf::Vector3<float>& );
template CylindricalCoordinate CoordinateConverter::cartesianToCylindrical<double>( const cvf::Vector3<double>& );
template CylindricalCoordinate CoordinateConverter::cartesianToCylindrical<float>( float, float, float );
template CylindricalCoordinate CoordinateConverter::cartesianToCylindrical<double>( double, double, double );

// Explicit instantiation of trigonometric functions
template float sin<float>( const Degrees<float>& );
template double sin<double>( const Degrees<double>& );
template float sin<float>( const Radians<float>& );
template double sin<double>( const Radians<double>& );

template float cos<float>( const Degrees<float>& );
template double cos<double>( const Degrees<double>& );
template float cos<float>( const Radians<float>& );
template double cos<double>( const Radians<double>& );

template float tan<float>( const Degrees<float>& );
template double tan<double>( const Degrees<double>& );
template float tan<float>( const Radians<float>& );
template double tan<double>( const Radians<double>& );

template Radians<float> asin<float>( float );
template Radians<double> asin<double>( double );
template Radians<float> acos<float>( float );
template Radians<double> acos<double>( double );
template Radians<float> atan<float>( float );
template Radians<double> atan<double>( double );
template Radians<float> atan2<float>( float, float );
template Radians<double> atan2<double>( double, double );

} // namespace Ria
Loading