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

GUI.cpp

Blame
  • Forked from gmsh / gmsh
    Source project has a limited visibility.
    Iso.cpp 10.07 KiB
    // $Id: Iso.cpp,v 1.5 2001-01-19 22:32:31 remacle Exp $
    
    #include "Gmsh.h"
    #include "Mesh.h"
    #include "Draw.h"
    #include "Numeric.h"
    
    void RaiseFill(int i, double Val, double ValMin, double Raise[3][5]);
    
    /* ------------------------------------------------------------------------ */
    /*  I n t e r p o l a t e                                                   */
    /* ------------------------------------------------------------------------ */
    
    void Interpolate(double *X, double *Y, double *Z, 
                     double *Val, double V, int I1, int I2, 
                     double *XI, double *YI ,double *ZI){
      
      if(Val[I1] == Val[I2]){
        *XI = X[I1]; 
        *YI = Y[I1]; 
        *ZI = Z[I1]; 
      }
      else{
        *XI= (V - Val[I1])*(X[I2]-X[I1])/(Val[I2]-Val[I1]) + X[I1];
        *YI= (V - Val[I1])*(Y[I2]-Y[I1])/(Val[I2]-Val[I1]) + Y[I1];
        *ZI= (V - Val[I1])*(Z[I2]-Z[I1])/(Val[I2]-Val[I1]) + Z[I1];
      }
    }
    
    /* ------------------------------------------------------------------------ */
    /*  S i m p l e x                                                           */
    /* ------------------------------------------------------------------------ */
    
    void IsoSimplex(double *X, double *Y, double *Z, double *Val, 
                    double V, double Vmin, double Vmax, 
                    double *Offset, double Raise[3][5], int shade){
      int    nb,i;
      double Xp[6],Yp[6],Zp[6];
      double Xpi[6],Ypi[6],Zpi[6];
    
      if(V != Vmax){
        nb = 0;
        if((Val[0] > V && Val[1] <= V) || (Val[1] > V && Val[0] <= V)){
          Interpolate(X,Y,Z,Val,V,0,1,&Xp[nb],&Yp[nb],&Zp[nb]); nb++;
        }
        if((Val[0] > V && Val[2] <= V) || (Val[2] > V && Val[0] <= V)){
          Interpolate(X,Y,Z,Val,V,0,2,&Xp[nb],&Yp[nb],&Zp[nb]); nb++;
        }
        if((Val[0] > V && Val[3] <= V) || (Val[3] > V && Val[0] <= V)){
          Interpolate(X,Y,Z,Val,V,0,3,&Xp[nb],&Yp[nb],&Zp[nb]); nb++;
        }
        if((Val[1] > V && Val[2] <= V) || (Val[2] > V && Val[1] <= V)){
          Interpolate(X,Y,Z,Val,V,1,2,&Xp[nb],&Yp[nb],&Zp[nb]); nb++;
        }
        if((Val[1] > V && Val[3] <= V) || (Val[3] > V && Val[1] <= V)){
          Interpolate(X,Y,Z,Val,V,1,3,&Xp[nb],&Yp[nb],&Zp[nb]); nb++;
        }
        if((Val[2] > V && Val[3] <= V) || (Val[3] > V && Val[2] <= V)){
          Interpolate(X,Y,Z,Val,V,2,3,&Xp[nb],&Yp[nb],&Zp[nb]); nb++;
        }
      }
      else{
        nb=0;
        if((Val[0] < V && Val[1] <= V) || (Val[1] < V && Val[0] <= V)){
          Interpolate(X,Y,Z,Val,V,0,1,&Xp[nb],&Yp[nb],&Zp[nb]); nb++;
        }
        if((Val[0] < V && Val[2] <= V) || (Val[2] < V && Val[0] <= V)){
          Interpolate(X,Y,Z,Val,V,0,2,&Xp[nb],&Yp[nb],&Zp[nb]); nb++;
        }
        if((Val[0] < V && Val[3] <= V) || (Val[3] < V && Val[0] <= V)){