Mesh Oriented datABase  (version 5.5.1)
An array-based unstructured mesh library
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 
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 
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_ */