Commit dfa3073b authored by YIxin-Hu's avatar YIxin-Hu
Browse files

checking quality

parent 58683fe0
Loading
Loading
Loading
Loading
+14 −14
Original line number Diff line number Diff line
@@ -597,21 +597,21 @@ void floatTetWild::output_info(Mesh& mesh, const AABBWrapper& tree) {
//    cout << "#t = " << cnt_t << "(" << tets.size() << ")" << endl;

    //quality
//    Scalar max_energy, avg_energy;
//    get_max_avg_energy(mesh, max_energy, avg_energy);
//    cout << "max_energy = " << max_energy << endl;
//    cout << "avg_energy = " << avg_energy << endl;
    Scalar max_energy, avg_energy;
    get_max_avg_energy(mesh, max_energy, avg_energy);
    cout << "max_energy = " << max_energy << endl;
    cout << "avg_energy = " << avg_energy << endl;

//    for (int i = 0; i < tets.size(); i++) {
//        if (tets[i].is_removed)
//            continue;
//        Scalar q = get_quality(mesh, i);
//        if (abs(tets[i].quality - q)/tets[i].quality > 0.01) {
//            cout << "tets[i].quality != get_quality(mesh,i)" << endl;
//            cout << tets[i].quality << " - " << q << " = " << tets[i].quality - q << endl;
//            //pausee();
//        }
//    }
    for (int i = 0; i < tets.size(); i++) {
        if (tets[i].is_removed)
            continue;
        Scalar q = get_quality(mesh, i);
        if (abs(tets[i].quality - q) / tets[i].quality > 0.01) {
            cout << "tets[i].quality != get_quality(mesh,i)" << endl;
            cout << tets[i].quality << " - " << q << " = " << tets[i].quality - q << endl;
//            pausee();
        }
    }

    if(mesh.params.log_level > 1) {
        output_surface(mesh, mesh.params.output_path+"_"+mesh.params.postfix+"_opt");
+12 −8
Original line number Diff line number Diff line
@@ -320,15 +320,18 @@ void floatTetWild::insert_triangles_aux(const std::vector<Vector3> &input_vertic
    /////
    //build b_tree using b_edges
    tree.init_tmp_b_mesh_and_tree(input_vertices, input_faces, b_edges1, mesh, b_edges2);
    if (!is_again) {
//    if (!is_again) {
//        for (auto &t:mesh.tets) {
//            if(t.quality == 0)
//                t.quality = get_quality(mesh, t);
//        }
//    }
    for (auto &t:mesh.tets) {
            if(t.quality == 0)
        if (!t.is_removed)
            t.quality = get_quality(mesh, t);
    }
    }
    if(std::count(is_face_inserted.begin(), is_face_inserted.end(), false) == 0) {
    if (std::count(is_face_inserted.begin(), is_face_inserted.end(), false) == 0)
        mesh.is_input_all_inserted = true;
    }
    logger().info("#b_edge1 = {}, #b_edges2 = {}", b_edges1.size(), b_edges2.size());

//    ///fortest
@@ -617,6 +620,7 @@ void floatTetWild::simplify_subdivision_result(int insert_f_id, int input_v_size
        static const bool is_check_quality = true;
        auto v1_conn_tets = mesh.tet_vertices[v1_id].conn_tets;
        for (int t_id: mesh.tet_vertices[v1_id].conn_tets) {
//            if(mesh.tets[t_id].quality == 0)
                mesh.tets[t_id].quality = get_quality(mesh, t_id);
        }
        int result = collapse_an_edge(mesh, v_ids[0], v_ids[1], tree, new_edges, _ts, _tet_tss,