ViennaGrid - The Vienna Grid Library  2.1.0
Data Structures | Namespaces | Functions
viennagrid/algorithm/spanned_volume.hpp File Reference

Computes the volume of n-simplices spanned by points. More...

#include "viennagrid/forwards.hpp"
#include "viennagrid/algorithm/cross_prod.hpp"
#include "viennagrid/algorithm/norm.hpp"
#include "viennagrid/algorithm/inner_prod.hpp"

Go to the source code of this file.

Data Structures

struct  signed_spanned_volume_impl< PointT, 1 >
 Implementation of the volume spanned by two points in one dimension. More...
struct  signed_spanned_volume_impl< PointT, 2 >
 Implementation of the volume of simplices spanned by points in two geometrical dimension. More...
struct  signed_spanned_volume_impl< PointT, 3 >
 Implementation of the volume of simplices spanned by points in three geometrical dimension. More...

Namespaces

namespace  viennagrid
 

The main ViennaGrid namespace. Most user functionality resides directly in this namespace rather than in sub-namespaces.


namespace  viennagrid::detail
 

Namespace for implementation details. Not intended to be used directly by a library user.


Functions

template<typename PointT1 , typename PointT2 >
viennagrid::result_of::coord
< PointT1 >::type 
signed_spanned_volume (PointT1 const &p1, PointT2 const &p2)
 Returns the volume of the 1-simplex (line) spanned by the two points.
template<typename PointT1 , typename PointT2 , typename PointT3 >
viennagrid::result_of::coord
< PointT1 >::type 
signed_spanned_volume (PointT1 const &p1, PointT2 const &p2, PointT3 const &p3)
 Returns the two-dimensional volume of the 2-simplex (triangle) spanned by the three points.
template<typename PointT1 , typename PointT2 , typename PointT3 , typename PointT4 >
viennagrid::result_of::coord
< PointT1 >::type 
signed_spanned_volume (PointT1 const &p1, PointT2 const &p2, PointT3 const &p3, PointT4 const &p4)
 Returns the three-dimensional volume of the 3-simplex (tetrahedron) spanned by the four points.
template<typename PointT1 , typename PointT2 , typename CoordinateSystemT1 , typename CoordinateSystemT2 >
viennagrid::result_of::coord
< PointT1 >::type 
signed_spanned_volume_impl (PointT1 const &p1, PointT2 const &p2, CoordinateSystemT1 const &, CoordinateSystemT2 const &)
 Dispatch facility for two points with possibly different coordinate systems.
template<typename PointT1 , typename PointT2 , typename PointT3 , typename CoordinateSystemT1 , typename CoordinateSystemT2 , typename CoordinateSystemT3 >
viennagrid::result_of::coord
< PointT1 >::type 
signed_spanned_volume_impl (PointT1 const &p1, PointT2 const &p2, PointT3 const &p3, CoordinateSystemT1 const &, CoordinateSystemT2 const &, CoordinateSystemT3 const &)
 Dispatch facility for three points with possibly different coordinate systems.
template<typename PointT1 , typename PointT2 , typename PointT3 , typename PointT4 , typename CoordinateSystemT1 , typename CoordinateSystemT2 , typename CoordinateSystemT3 , typename CoordinateSystemT4 >
viennagrid::result_of::coord
< PointT1 >::type 
signed_spanned_volume_impl (PointT1 const &p1, PointT2 const &p2, PointT3 const &p3, PointT4 const &p4, CoordinateSystemT1 const &, CoordinateSystemT2 const &, CoordinateSystemT3 const &, CoordinateSystemT4 const &)
 Dispatch facility for four points with possibly different coordinate systems.
template<typename PointT1 , typename PointT2 , int DimV>
viennagrid::result_of::coord
< PointT1 >::type 
signed_spanned_volume_impl (PointT1 const &p1, PointT2 const &p2, cartesian_cs< DimV >, cartesian_cs< DimV >)
 Dispatch facility for two points in Cartesian coordinates.
template<typename PointT1 , typename PointT2 , typename PointT3 , int DimV>
viennagrid::result_of::coord
< PointT1 >::type 
signed_spanned_volume_impl (PointT1 const &p1, PointT2 const &p2, PointT3 const &p3, cartesian_cs< DimV >, cartesian_cs< DimV >, cartesian_cs< DimV >)
 Dispatch facility for three points in Cartesian coordinates.
template<typename PointT1 , typename PointT2 , typename PointT3 , typename PointT4 , int DimV>
viennagrid::result_of::coord
< PointT1 >::type 
signed_spanned_volume_impl (PointT1 const &p1, PointT2 const &p2, PointT3 const &p3, PointT4 const &p4, cartesian_cs< DimV >, cartesian_cs< DimV >, cartesian_cs< DimV >, cartesian_cs< DimV >)
 Dispatch facility for four points in Cartesian coordinates.
template<typename PointT1 , typename PointT2 >
viennagrid::result_of::coord
< PointT1 >::type 
spanned_volume (PointT1 const &p1, PointT2 const &p2)
 Returns the volume of the 1-simplex (line) spanned by the two points.
template<typename PointT1 , typename PointT2 , typename PointT3 >
viennagrid::result_of::coord
< PointT1 >::type 
spanned_volume (PointT1 const &p1, PointT2 const &p2, PointT3 const &p3)
 Returns the two-dimensional volume of the 2-simplex (triangle) spanned by the three points.
template<typename PointT1 , typename PointT2 , typename PointT3 , typename PointT4 >
viennagrid::result_of::coord
< PointT1 >::type 
spanned_volume (PointT1 const &p1, PointT2 const &p2, PointT3 const &p3, PointT4 const &p4)
 Returns the three-dimensional volume of the 3-simplex (tetrahedron) spanned by the four points.

Detailed Description

Computes the volume of n-simplices spanned by points.