Loading...
Searching...
No Matches
geo_trace_ray_boundary.h
Go to the documentation of this file.
#ifndef _RHEOLEF_GEO_TRACE_RAY_BOUNDARY_H
#define _RHEOLEF_GEO_TRACE_RAY_BOUNDARY_H
//
// given x and v, search S on boudary mesh such that ray(x,v) hits S
// and returns the closest hit to x
//
// author: Pierre.Saramito@imag.fr
//
// date: 12 march 2012
//
#include "rheolef/point.h"
#include "rheolef/disarray.h"
namespace rheolef {
// forward declarations:
template <class T, class M> class geo_base_rep;
template <class T, class M> class geo_trace_ray_boundary_abstract_rep;
template <class T, class M>
class geo_trace_ray_boundary {
public:
typedef typename disarray<T,M>::size_type size_type;
geo_trace_ray_boundary() : _ptr(0) {}
geo_trace_ray_boundary(const geo_trace_ray_boundary<T,M>&) : _ptr(0) {}
geo_trace_ray_boundary<T,M>& operator= (const geo_trace_ray_boundary<T,M>&) { _ptr = 0; return *this; }
~geo_trace_ray_boundary();
static geo_trace_ray_boundary_abstract_rep<T,M>* make_ptr (const geo_base_rep<T,M>& omega);
bool seq_trace_ray_boundary (
const geo_base_rep<T,M>& omega,
const point_basic<T>& x,
const point_basic<T>& v,
point_basic<T>& y) const;
bool dis_trace_ray_boundary (
const geo_base_rep<T,M>& omega,
const point_basic<T>& x,
const point_basic<T>& v,
point_basic<T>& y) const;
// data:
protected:
mutable geo_trace_ray_boundary_abstract_rep<T,M>* _ptr;
};
} // namespace rheolef
#endif // _RHEOLEF_TRACE_RAY_BOUNDARY_H
rheolef::disarray::size_type
rep::base::size_type size_type
Definition disarray.h:501
rheolef::geo_base_rep
base class for M=sequential or distributed meshes representations
Definition geo.h:528
rheolef::geo_trace_ray_boundary::_ptr
geo_trace_ray_boundary_abstract_rep< T, M > * _ptr
Definition geo_trace_ray_boundary.h:61
rheolef::geo_trace_ray_boundary::seq_trace_ray_boundary
bool seq_trace_ray_boundary(const geo_base_rep< T, M > &omega, const point_basic< T > &x, const point_basic< T > &v, point_basic< T > &y) const
Definition geo_trace_ray_boundary.cc:151
rheolef::geo_trace_ray_boundary::~geo_trace_ray_boundary
~geo_trace_ray_boundary()
Definition geo_trace_ray_boundary.cc:143
rheolef::geo_trace_ray_boundary::dis_trace_ray_boundary
bool dis_trace_ray_boundary(const geo_base_rep< T, M > &omega, const point_basic< T > &x, const point_basic< T > &v, point_basic< T > &y) const
Definition geo_trace_ray_boundary.cc:162
rheolef::geo_trace_ray_boundary::geo_trace_ray_boundary
geo_trace_ray_boundary(const geo_trace_ray_boundary< T, M > &)
Definition geo_trace_ray_boundary.h:45
rheolef::geo_trace_ray_boundary::size_type
disarray< T, M >::size_type size_type
Definition geo_trace_ray_boundary.h:43
rheolef::geo_trace_ray_boundary::geo_trace_ray_boundary
geo_trace_ray_boundary()
Definition geo_trace_ray_boundary.h:44
rheolef::geo_trace_ray_boundary::operator=
geo_trace_ray_boundary< T, M > & operator=(const geo_trace_ray_boundary< T, M > &)
Definition geo_trace_ray_boundary.h:46
rheolef::geo_trace_ray_boundary::make_ptr
static geo_trace_ray_boundary_abstract_rep< T, M > * make_ptr(const geo_base_rep< T, M > &omega)
Definition geo_trace_ray_boundary.cc:564
rheolef::point_basic
Definition point.h:86
rheolef
This file is part of Rheolef.
Definition compiler_eigen.h:39