Branch data Line data Source code
1 : : #include "meshkit/CopyGeom.hpp"
2 : : #include "meshkit/MKCore.hpp"
3 : : #include "meshkit/SizingFunction.hpp"
4 : : #include "meshkit/RegisterMeshOp.hpp"
5 : : #include "meshkit/LocalSet.hpp"
6 : : #include "meshkit/ModelEnt.hpp"
7 : :
8 : : #include "iMesh_extensions.h"
9 : : #include "MBCN.h"
10 : :
11 : :
12 : : namespace MeshKit
13 : : {
14 : : // static registration of this mesh scheme
15 : : moab::EntityType CopyGeom_tps[] = { moab::MBVERTEX,
16 : : moab::MBEDGE,
17 : : moab::MBTRI,
18 : : moab::MBHEX,
19 : : moab::MBMAXTYPE};
20 : 40 : const moab::EntityType* CopyGeom::output_types()
21 : 40 : { return CopyGeom_tps; }
22 : :
23 : 1 : CopyGeom::CopyGeom(MKCore *mkcore, const MEntVector &me_vec)
24 : : : MeshScheme(mkcore, me_vec),
25 [ + - ][ + - ]: 1 : igeomImpl(mkcore->igeom_instance())
26 : : {
27 [ + - ]: 1 : m_x[0] = 0.0;
28 [ + - ]: 1 : m_x[1] = 0.0;
29 [ + - ]: 1 : m_x[2] = 0.0;
30 : 1 : }
31 : :
32 : 3 : CopyGeom::~CopyGeom()
33 [ - + ]: 2 : {}
34 : :
35 : 0 : bool CopyGeom::add_modelent(ModelEnt *model_ent)
36 : : {
37 : 0 : return MeshOp::add_modelent(model_ent);
38 : : }
39 : :
40 : 1 : void CopyGeom::setup_this()
41 : 1 : {}
42 : :
43 : 1 : void CopyGeom::execute_this()
44 : : {
45 [ + - + - ]: 4 : for (MEntSelection::iterator mit = mentSelection.begin();
[ + + ]
46 : 2 : mit != mentSelection.end(); mit++) {
47 [ + - ]: 1 : ModelEnt *me = mit->first;
48 : : iBase_EntityHandle ent = reinterpret_cast<iBase_EntityHandle>(
49 [ + - ]: 1 : me->geom_handle());
50 : : iBase_EntityHandle tmp;
51 [ + - ][ + - ]: 1 : IBERRCHK(igeomImpl->copyEnt(ent, tmp), *igeomImpl);
52 [ + - ][ + - ]: 1 : IBERRCHK(igeomImpl->moveEnt(tmp, m_x[0], m_x[1], m_x[2]), *igeomImpl);
[ + - ][ + - ]
[ + - ]
53 : : }
54 : 1 : }
55 : :
56 : : // set the target location - m_x
57 : 1 : void CopyGeom::set_location(const Vector<3> &dx)
58 : : {
59 : 1 : m_x = dx;
60 : 1 : }
61 : :
62 : 0 : void CopyGeom::tag_copied_sets(const char **tag_names, const char **tag_vals,
63 : : const int num_tags)
64 : : {
65 : : // TODO:
66 : 0 : }
67 : :
68 [ + - ][ + - ]: 156 : } // namespace MeshKit
|