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); }
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; }