WaveBEM: Unsteady Nonlinear Potential Flow Solver for Ship-Wave Interaction.
occ_axis_projection.h
Go to the documentation of this file.
1 #ifndef occ_axis_projection_h
2 #define occ_axis_projection_h
3 
4 #include <deal.II/base/point.h>
7 
8 #include <deal.II/fe/fe_q.h>
9 #include <deal.II/fe/fe_values.h>
10 
11 #include <TopoDS.hxx>
12 #include <Geom_Curve.hxx>
13 #include <gp_Dir.hxx>
14 
15 #include <deal.II/base/point.h>
17 
18 
19 
20 #include <stdio.h>
21 #include <stdlib.h>
22 
23 using namespace dealii;
24 namespace OpenCascade
25 {
26 
27  class AxisProjection : public StraightBoundary<2,3>
28  {
29  public:
30  AxisProjection(const TopoDS_Shape &sh, Point<3> direction, double tolerance=1e-7, double recovery_tolerance=1e-7);
31 
32  virtual Point<3> get_new_point_on_line
33  (const Triangulation< 2,3 >::line_iterator &line) const;
34 
35  virtual Point<3> get_new_point_on_quad
36  (const Triangulation< 2,3 >::quad_iterator &quad) const;
37 
38  virtual Point<3> project_to_surface
39  (const Triangulation< 2,3 >::quad_iterator &quad, const Point<3> &y) const;
40 
41  const TopoDS_Shape &sh;
42 
43  bool axis_projection(Point<3> &projection,
44  const Point<3> &origin) const;
45 
46  bool assigned_axis_projection(Point<3> &projection,
47  const Point<3> &origin,
48  const Point<3> &assigned_axis) const;
49 
50 
51  bool assigned_axis_projection_and_diff_forms(Point<3> &projection,
52  Point<3> &normal,
53  double &mean_curvature,
54  const Point<3> &origin,
55  const Point<3> &assigned_axis) const;
56 
57 
58  bool axis_projection_and_diff_forms(Point<3> &projection,
59  Point<3> &normal,
60  double &mean_curvature,
61  const Point<3> &origin) const;
62 
63 
64 
65  private:
66  gp_Dir direction;
68  double tolerance;
70 
71 
72  };
73 
74 
75 }
76 
77 #endif
78 
We collect in this namespace all utilities which operate on OpenCascade entities which don't need cla...