Branch data Line data Source code
1 : : #include <stdio.h>
2 : : #include "meshkit/MeshOpTemplate.hpp"
3 : : #include "meshkit/MKCore.hpp"
4 : : #include "meshkit/SizingFunction.hpp"
5 : : #include "meshkit/RegisterMeshOp.hpp"
6 : : #include "meshkit/LocalSet.hpp"
7 : : #include "meshkit/ModelEnt.hpp"
8 : :
9 : : #include "iMesh_extensions.h"
10 : : #include "MBCN.h"
11 : :
12 : :
13 : : namespace MeshKit
14 : : {
15 : : // static registration of this mesh scheme
16 : : moab::EntityType MeshOpTemplate_tps[] = { moab::MBVERTEX,
17 : : moab::MBEDGE,
18 : : moab::MBTRI,
19 : : moab::MBHEX,
20 : : moab::MBMAXTYPE};
21 : 40 : const moab::EntityType* MeshOpTemplate::output_types()
22 : 40 : { return MeshOpTemplate_tps; }
23 : :
24 : 1 : MeshOpTemplate::MeshOpTemplate(MKCore *mkcore, const MEntVector &me_vec)
25 : : : MeshScheme(mkcore, me_vec),
26 [ + - ][ + - ]: 1 : igeomImpl(mkcore->igeom_instance())
27 : : //igeomImpl(mkcore->igeom_instance(), mkmoab(mkcore->moab_instance())
28 : : {
29 [ + - ]: 1 : s_x[0] = 1.0;
30 [ + - ]: 1 : s_x[1] = 1.0;
31 [ + - ]: 1 : s_x[2] = 1.0;
32 : 1 : }
33 : :
34 : 3 : MeshOpTemplate::~MeshOpTemplate()
35 [ - + ]: 2 : {}
36 : :
37 : 0 : bool MeshOpTemplate::add_modelent(ModelEnt *model_ent)
38 : : {
39 : 0 : return MeshOp::add_modelent(model_ent);
40 : : }
41 : :
42 : 1 : void MeshOpTemplate::setup_this()
43 : : {
44 : 1 : }
45 : :
46 : 1 : void MeshOpTemplate::execute_this()
47 : : {
48 : 1 : iBase_EntityHandle_Private * argf = NULL;
49 [ + - ][ + - ]: 1 : igeomImpl->createBrick(s_x[0], s_x[1], s_x[2], argf);
[ + - ][ + - ]
50 [ + - ]: 1 : printf("Made a brick!\n");
51 : :
52 : : iBase_EntitySetHandle seth;
53 : : iBase_TagHandle mattag;
54 [ + - ]: 1 : std::string brick = "opbrick";
55 [ + - ]: 2 : std::string name_tag_id = "NAME";
56 : : // testing to see if this propages to mesh and how to use iRel for relating mesh and geometry mp.brep
57 [ + - ]: 2 : std::string mtag_name = "MATERIAL_TAG";
58 : : iBase_TagHandle name_tag;
59 [ + - ]: 1 : igeomImpl->getTagHandle(name_tag_id.c_str(),name_tag);
60 : :
61 : : // create material_set tag
62 [ + - ]: 1 : igeomImpl->createTag(mtag_name.c_str(),1, iBase_INTEGER, mattag);
63 : :
64 [ + - ]: 1 : igeomImpl->createEntSet(false, seth);
65 [ + - ]: 1 : igeomImpl->addEntToSet(argf, seth);
66 : :
67 [ + - ]: 1 : igeomImpl->setEntSetData(seth,name_tag,brick.c_str());
68 : :
69 : 1 : int matid = 111555;
70 [ + - ]: 1 : igeomImpl->setData(argf,mattag,(char*)(&matid));
71 : : // This does not work?
72 : : //igeomImpl->setEntSetData(seth,mattag, (char*)(&matid));
73 : : // Meshing this with test_ngtetmesher does NOT produce an material set
74 : 1 : bool save = false;
75 [ - + ]: 1 : if (save == true)
76 [ # # ]: 1 : igeomImpl->save("mp.brep");
77 : :
78 : 1 : }
79 : :
80 : : // set the size of the brick - s_x
81 : 0 : void MeshOpTemplate::set_size(const Vector<3> &dx)
82 : : {
83 : 0 : s_x = dx;
84 : 0 : }
85 : :
86 : 0 : void MeshOpTemplate::tag_copied_sets(const char **tag_names, const char **tag_vals,
87 : : const int num_tags)
88 : : {
89 : : // TODO:
90 : 0 : }
91 : :
92 [ + - ][ + - ]: 156 : } // namespace MeshKit
|