Loading [MathJax]/extensions/tex2jax.js
Mesh Oriented datABase  (version 5.5.1)
An array-based unstructured mesh library
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
IntxRllCssphere.hpp
Go to the documentation of this file.
1 /* 2  * IntxRllCssphere.hpp 3  * 4  */ 5  6 #ifndef INTXRLLCSSPHERE_HPP_ 7 #define INTXRLLCSSPHERE_HPP_ 8  9 #include "Intx2Mesh.hpp" 10  11 namespace moab 12 { 13  14 class IntxRllCssphere : public moab::Intx2Mesh 15 { 16  public: 17  IntxRllCssphere( Interface* mbimpl ); 18  19  virtual ~IntxRllCssphere(); 20  21  void set_radius( double radius ) 22  { 23  R = radius; 24  } 25  26  double setup_tgt_cell( EntityHandle tgt, int& nsTgt ); 27  28  // src cell will be always lat lon cell, so it will be a rectangle in lat-lon coors 29  // it will be used for "interior" determinations of other points 30  // double setup_src_cell(EntityHandle src, int & nsSrc); 31  32  // main method to intersect meshes on a sphere 33  34  ErrorCode computeIntersectionBetweenTgtAndSrc( EntityHandle tgt, 35  EntityHandle src, 36  double* P, 37  int& nP, 38  double& area, 39  int markb[MAXEDGES], 40  int markr[MAXEDGES], 41  int& nsSrc, 42  int& nsTgt, 43  bool check_boxes_first = false ); 44  45  ErrorCode findNodes( EntityHandle tgt, int nsTgt, EntityHandle src, int nsSrc, double* iP, int nP ); 46  47  private: 48  double R; // radius of the sphere 49  int plane; // current gnomonic plane, will still be used for projection 50  int srcEdgeType[4]; // at most 4 51  // these could be from [-PI/2, +PI/2] and [0 to 2*PI] 52 }; 53  54 } /* namespace moab */ 55 #endif /* INTXRLLCSSPHERE_HPP_ */