Branch data Line data Source code
1 : : /*
2 : : * MBSplitOp.hpp
3 : : *
4 : : * Created on: Oct 2, 2011
5 : : * Author: iulian
6 : : */
7 : :
8 : : #ifndef MBSPLITOP_HPP_
9 : : #define MBSPLITOP_HPP_
10 : :
11 : : #include "meshkit/MeshScheme.hpp"
12 : :
13 : : namespace MeshKit {
14 : :
15 : : class MBSplitOp: public MeshKit::MeshScheme
16 : : {
17 : : public:
18 : : MBSplitOp(MKCore *mk_core, const MEntVector &me_vec);
19 : : virtual ~MBSplitOp();
20 : :
21 : : // set options polyline[3*nPoints], closed (1 or 0, closed loop or open polyline,
22 : : // intersect the boundary)
23 : : // globalId: to identify / single out the gface to be split
24 : : // the gface will be found among gfaces in the mentSelection
25 : : void set_options(int globalId,
26 : : double dirx, double diry, double dirz, int closed, double min_dot);
27 : :
28 : : void add_points(double x, double y, double z);
29 : : //set up the splitting of a gface, with a polyline or loop
30 : : virtual void setup_this();
31 : :
32 : : // construct the mesh
33 : : virtual void execute_this();
34 : :
35 : : /**\brief Get class name */
36 : 382 : static const char* name()
37 : : {
38 : 382 : return "MBSplitOp";
39 : : }
40 : :
41 : 160 : static bool can_mesh(iBase_EntityType dim)
42 : : {
43 : 160 : return false;
44 : : }
45 : :
46 : : /** \brief Function returning whether this scheme can mesh the specified entity
47 : : *
48 : : * Used by MeshOpFactory to find scheme for an entity.
49 : : * \param me ModelEnt being queried
50 : : * \return If true, this scheme can mesh the specified ModelEnt
51 : : */
52 : 0 : static bool can_mesh(ModelEnt *me)
53 : : {
54 : 0 : return false;// this is not used for meshing, but for geometry creation
55 : : }
56 : :
57 : : /**\brief Get list of mesh entity types that can be generated.
58 : : *\return array terminated with \c moab::MBMAXTYPE
59 : : */
60 : : static const moab::EntityType* output_types();
61 : :
62 : : /** \brief Return the mesh entity types operated on by this scheme
63 : : * \return array terminated with \c moab::MBMAXTYPE
64 : : */
65 : 0 : virtual const moab::EntityType* mesh_types_arr() const
66 : : {
67 : 0 : return output_types();
68 : : }
69 : :
70 : : private:
71 : : int _globalId;
72 : : std::vector<double>_polyline;
73 : : double _direction[3];
74 : : int _closed;
75 : : double _min_dot;
76 : : };
77 : :
78 : : }
79 : :
80 : : #endif /* MBSPLITOP_HPP_ */
|