Skip to content
Snippets Groups Projects
Select Git revision
  • be1117bc68966c7df6014f0fc4bc138fcb51bfca
  • master default protected
  • alphashapes
  • quadMeshingTools
  • cygwin_conv_path
  • macos_arm64
  • add-transfiniteautomatic-to-geo
  • patch_releases_4_10
  • HierarchicalHDiv
  • isuruf-master-patch-63355
  • hyperbolic
  • hexdom
  • hxt_update
  • jf
  • 1618-pythonocc-and-gmsh-api-integration
  • octreeSizeField
  • hexbl
  • alignIrregularVertices
  • getEdges
  • patch_releases_4_8
  • isuruf-master-patch-51992
  • gmsh_4_11_0
  • gmsh_4_10_5
  • gmsh_4_10_4
  • gmsh_4_10_3
  • gmsh_4_10_2
  • gmsh_4_10_1
  • gmsh_4_10_0
  • gmsh_4_9_5
  • gmsh_4_9_4
  • gmsh_4_9_3
  • gmsh_4_9_2
  • gmsh_4_9_1
  • gmsh_4_9_0
  • gmsh_4_8_4
  • gmsh_4_8_3
  • gmsh_4_8_2
  • gmsh_4_8_1
  • gmsh_4_8_0
  • gmsh_4_7_1
  • gmsh_4_7_0
41 results

GenericVertex.cpp

Blame
  • Forked from gmsh / gmsh
    Source project has a limited visibility.
    GenericVertex.cpp 1.53 KiB
    // Gmsh - Copyright (C) 1997-2016 C. Geuzaine, J.-F. Remacle
    //
    // See the LICENSE.txt file for license information. Please report all
    // bugs and problems to the public mailing list <gmsh@onelab.info>.
    //
    // Contributed by Paul-Emile Bernard
    
    #include <algorithm>
    #include "GModel.h"
    #include "MVertex.h"
    #include "MPoint.h"
    #include "GenericVertex.h"
    #include "GenericEdge.h"
    #include "GenericFace.h"
    
    GenericVertex::ptrfunction_int_vector GenericVertex::VertexXYZ = NULL;
    GenericVertex::ptrfunction_int_doubleptr_voidptr GenericVertex::VertexMeshSize = NULL;
    
    GenericVertex::GenericVertex(GModel *m, int num, int _native_id)
     : GVertex(m, num), id(_native_id)
    {
      if (!VertexXYZ)
        Msg::Fatal("GenericVertex::ERROR: Callback not set");
    
      std::vector<double> vec(3,0.);
      bool ok = VertexXYZ(id,vec);
      if (!ok) Msg::Error("GenericVertex::ERROR from callback VertexXYZ ");
      _x=vec[0];
      _y=vec[1];
      _z=vec[2];
    }
    
    GenericVertex::GenericVertex(GModel *m, int num, int _native_id, const std::vector<double> &vec)
     : GVertex(m, num), id(_native_id)
    {
      if (!VertexXYZ)
        Msg::Fatal("GenericVertex::ERROR: Callback not set");
      _x=vec[0];
      _y=vec[1];
      _z=vec[2];
    }
    
    GenericVertex::~GenericVertex(){
    
    }
    
    SPoint2 GenericVertex::reparamOnFace(const GFace *gf, int dir) const
    {
      SPoint3 pt(_x,_y,_z);
      return gf->parFromPoint(pt,true);
    }
    
    void GenericVertex::setPosition(GPoint &p)
    {
      _x = p.x();
      _y = p.y();
      _z = p.z();
      if(mesh_vertices.size()){
        mesh_vertices[0]->x() = p.x();
        mesh_vertices[0]->y() = p.y();
        mesh_vertices[0]->z() = p.z();
      }
    }