Skip to content
Snippets Groups Projects
Select Git revision
  • 45da41b689e4e6fbdfc408922ebb3cf12341f191
  • master default
  • cgnsUnstructured
  • partitioning
  • poppler
  • HighOrderBLCurving
  • gmsh_3_0_4
  • gmsh_3_0_3
  • gmsh_3_0_2
  • gmsh_3_0_1
  • gmsh_3_0_0
  • gmsh_2_16_0
  • gmsh_2_15_0
  • gmsh_2_14_1
  • gmsh_2_14_0
  • gmsh_2_13_2
  • gmsh_2_13_1
  • gmsh_2_12_0
  • gmsh_2_11_0
  • gmsh_2_10_1
  • gmsh_2_10_0
  • gmsh_2_9_3
  • gmsh_2_9_2
  • gmsh_2_9_1
  • gmsh_2_9_0
  • gmsh_2_8_6
26 results

periodical.cpp

Blame
  • Forked from gmsh / gmsh
    Source project has a limited visibility.
    gmshFace.cpp 3.59 KiB
    #include "gmshModel.h"
    #include "gmshEdge.h"
    #include "gmshFace.h"
    #include "Interpolation.h"
    #include "CAD.h"
    #include "Geo.h"
    
    gmshFace::gmshFace(GModel *m,Surface * face):GFace (m,face->Num), s(face)
    {
      Curve *c;
      for (int i=0 ; i< List_Nbr ( s->Generatrices ) ; i++)
        {
          List_Read ( s->Generatrices , i, & c );
          GEdge *e = m->edgeByTag ( abs(c->Num) );
          if ( ! e ) throw;
          l_edges.push_back(e);
          e->addFace (this);
          if (c->Num>0) l_dirs.push_back(1);
          else l_dirs.push_back(-1);
        }
    }
    
    
    Range<double> gmshFace::parBounds(int i) const
    { 
    /*  SPAinterval range;
      if(i ==0)
        range = acisSurface()->equation().param_range_u();
      if(i==1)
        range = acisSurface()->equation().param_range_v();
    
      if(range.finite() )
        return( Range<double>(range.start_pt(),range.end_pt()) );
      else{
        //printf("*calcParBounds()* is called\n");
        SBoundingBox2d b = calcParBounds();
        SPoint2 min = b.min();
        SPoint2 max = b.max();
        return Range<double>(min[i],max[i]);
      }
    */
      return Range<double>(0, 1);
    }
    
    int gmshFace::paramDegeneracies(int dir, double *par)
    {
      return 0;
    }
    
    SBoundingBox3d gmshFace::bounds() const
    {
      throw;
    }
    
    SVector3 gmshFace::normal(const SPoint2 &param) const
    {
      Vertex vu = InterpolateSurface( s, param[0], param[1],1,1);
      Vertex vv = InterpolateSurface( s, param[0], param[1],1,2);
      Vertex n = vu % vv;
      n.norme();
      return SVector3(n.Pos.X,n.Pos.Y,n.Pos.Z);
    }
    
    Pair<SVector3,SVector3> gmshFace::firstDer(const SPoint2 &param) const
    {
      Vertex vu = InterpolateSurface( s, param[0], param[1],1,1);
      Vertex vv = InterpolateSurface( s, param[0], param[1],1,2);
      return Pair<SVector3,SVector3>( SVector3(vu.Pos.X,vu.Pos.Y,vu.Pos.Z),
    				  SVector3(vv.Pos.X,vv.Pos.Y,vv.Pos.Z));
    }