Ejemplo n.º 1
0
int32_t main()
{
  mat33 m, mr, mp;
  vec3 b;
  vec3 sol;

  mat22 m2, mr2, mp2;
  vec2 b2;
  vec2 sol2;

  triangle t;

  mesh * msh;

  m[0][0] = 1.0;
  m[0][1] = 2.0;
  m[0][2] = 3.0;
  m[1][0] = 1.0;
  m[1][1] = 5.0;
  m[1][2] = 6.0;
  m[2][0] = 2.0;
  m[2][1] = 3.0;
  m[2][2] = 1.0;
  b[0] = 10.0;
  b[1] = 5.0;
  b[2] = 15.0;

  printmat((double *)m, 3, 3);
  printvec(b, 3);

  if (solsyst3(m, b, sol) == 0)
    printf("determinant nul\n");

  printvec(sol, 3);

  multmat3vec3(m, sol, b);

  printvec(b, 3);

  invmat3(m, mr);

  printmat((double *)mr, 3, 3);

  multmat3mat3(m, mr, mp);

  printmat((double *)mp, 3, 3);

  m2[0][0] = 1.0;
  m2[0][1] = 2.0;
  m2[1][0] = 1.0;
  m2[1][1] = 5.0;
  b2[0] = 10.0;
  b2[1] = 5.0;

  printmat((double *)m2, 2, 2);
  printvec(b2, 2);

  if (solsyst2(m2, b2, sol2) == 0)
    printf("determinant nul\n");

  printvec(sol2, 2);

  multmat2vec2(m2, sol2, b2);

  printvec(b2, 2);

  invmat2(m2, mr2);

  printmat((double *)mr2, 2, 2);

  multmat2mat2(m2, mr2, mp2);

  printmat((double *)mp2, 2, 2);

  t.xa = 1.0;
  t.ya = 1.0;
  t.xb = 2.0;
  t.yb = 1.0;
  t.xc = 1.0;
  t.yc = 2.0;

  if (inittriangle(&t) == 0)
    printf("mauvais triangle\n");

  printtriangle(&t);

  msh = readmesh("essai.msh");
  printmesh(msh);  
  freemesh(msh);  

}
Ejemplo n.º 2
0
int main()
{

/*   surftrack_parameters */
/* ( */
/*    use_fraction 1  !!!!!!!!!!!!!!
/*    min_edge_length 0.5 */
/*    max_edge_length 1.5 */
/*    max_volume_change 0.1 */
/*    min_curvature_multiplier 1.0 
/*    max_curvature_multiplier 1.0 */
/*    merge_proximity 0.001    !!!!!!
/*    repulsion_proximity 0.0001 !!!!!!!!
/*    friction_coefficient 0.0 */
/*    perform_improvement 1 */
/*    allow_topology_changes 0 */
/*    collision_safety 1 */
/*    subdivision_scheme butterfly 
/* ) */


  general_otions.m_verbose = 0;
  general_otions.m_collision_safety = 1;
//  general_otions.m_proximity_epsilon = 1e-3; //!!!!!!!!!

  options.m_perform_improvement = true;
  options.m_allow_topology_changes = false;
  options.m_max_volume_change = 0.1;
  options.m_min_edge_length = 0.5;
  options.m_max_edge_length = 1.5;
//  options.m_min_triangle_area = ;
//  options.m_min_triangle_angle = ;
//  options.m_max_triangle_angle = ;
  options.m_use_curvature_when_splitting = true;
  options.m_use_curvature_when_collapsing = true;
  options.m_min_curvature_multiplier = 1.0;
  options.m_max_curvature_multiplier = 1.0;
//  options.m_allow_vertex_movement = ;
//  options.m_edge_flip_min_length_change = ;
//  options.m_merge_proximity_epsilon = ;
//  options.m_subdivision_scheme = ; // buterfly
  options.m_subdivision_scheme = new ButterflyScheme();
  options.m_collision_safety = true;
  options.m_allow_non_manifold = false;

  
  printmesh(0,Nverticies,Ntriangles,verticies,triangles);

  float predicted[NSIZE];
  float dt = 0.1;
  float t = 0;

  for (int j=1;j<10;j++) {

    set_predicted_vertex_positions(Nverticies,verticies,predicted,t,dt);
    for(int i=0;i<Nverticies*3;i++) {
      verticies[i] = predicted[i];
    }

    printmesh(j,Nverticies,Ntriangles,verticies,triangles);
    t += dt;
  }
  
  printf("Hello world\n");
  return 0;
}