LCOV - code coverage report
Current view: top level - algs - MeshOpTemplate.cpp (source / functions) Hit Total Coverage
Test: coverage_sk.info Lines: 31 38 81.6 %
Date: 2020-07-01 15:24:36 Functions: 7 10 70.0 %
Branches: 23 48 47.9 %

           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

Generated by: LCOV version 1.11