Skip to content
Snippets Groups Projects
Select Git revision
  • d66fe6b6e70614b9f6d88a00f5333049854afa51
  • 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

discreteFace.h

Blame
  • Forked from gmsh / gmsh
    Source project has a limited visibility.
    discreteFace.h 2.21 KiB
    // Gmsh - Copyright (C) 1997-2017 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>.
    
    #ifndef _DISCRETE_FACE_H_
    #define _DISCRETE_FACE_H_
    
    #include "GModel.h"
    #include "GFace.h"
    #include "discreteEdge.h"
    #include "MEdge.h"
    #include "MTriangle.h"
    #include "MEdge.h"
    #include "MLine.h"
    
    class discreteDiskFace;
    class triangulation;
    
    class discreteFace : public GFace {
      // FIXME we should at the end use a mesh() function that is specific to
      // discreteFace; we should also SAVE those data's
     public:
      discreteFace(GModel *model, int num);
      virtual ~discreteFace() {}
      void checkAndFixOrientation();
      void setupDiscreteVertex(GVertex*,MVertex*,std::set<MVertex*>*);
      void setupDiscreteEdge(discreteEdge*,std::vector<MLine*>,std::set<MVertex*>*);
      void splitDiscreteEdge(GEdge*,GVertex*,discreteEdge*[2]);
      void updateTopology(std::vector<triangulation*>&);
      void split(triangulation*,std::vector<triangulation*>&,int);
      void fillHoles(triangulation*);
      void addTriangle(triangulation*,MTriangle*);
      void complex_crossField();
      void crossField();
      GPoint point(double par1, double par2) const;
      SPoint2 parFromPoint(const SPoint3 &p, bool onSurface=true) const;
      SVector3 normal(const SPoint2 &param) const;
      double curvatureMax(const SPoint2 &param) const;
      double curvatures(const SPoint2 &param, SVector3 *dirMax, SVector3 *dirMin,
                                      double *curvMax, double *curvMin) const;
      virtual bool haveParametrization() { return getCompound(); }
      GEntity::GeomType geomType() const { return DiscreteSurface; }
      virtual Pair<SVector3, SVector3> firstDer(const SPoint2 &param) const;
      virtual void secondDer(const SPoint2 &param,
                             SVector3 *dudu, SVector3 *dvdv, SVector3 *dudv) const;
      void setBoundEdges(GModel *gm, std::vector<int> tagEdges);
      void findEdges(std::map<MEdge, std::vector<int>, Less_Edge > &map_edges);
      void writeGEO(FILE *fp);
      void createGeometry();
      void gatherMeshes();
      virtual void mesh (bool verbose);
      std::vector<discreteDiskFace*> _atlas;
      std::vector<GFace*> _CAD;
      std::map<MEdge,std::vector<int>,Less_Edge> allEdg2Tri;
    };
    
    #endif