Skip to content

Instantly share code, notes, and snippets.

View MaelRL's full-sized avatar
🌒
🚀

Mael MaelRL

🌒
🚀
View GitHub Profile
99 predicates:
Angle_2
Angle_3
Are_ordered_along_line_2
Are_ordered_along_line_3
Are_parallel_2
Are_parallel_3
Are_strictly_ordered_along_line_2
Are_strictly_ordered_along_line_3
Bounded_side_2
import numpy as np
import matplotlib as mlp
import matplotlib.cm as cm
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import pandas as pd
print("hello")
# times = pd.read_csv("data/OBB_ordered_by_time.txt", sep=" ", header=None, names=["NV", "CHV", "T"])
#include <CGAL/Simple_cartesian.h>
#include <CGAL/Surface_mesh.h>
#include <CGAL/Surface_mesh_simplification/edge_collapse.h>
#include <CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Constrained_placement.h>
#include <CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Count_stop_predicate.h>
#include <CGAL/Surface_mesh_simplification/Policies/Edge_collapse/LindstromTurk.h>
#include <CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Bounded_normal_change_placement.h>
#include <CGAL/Polygon_mesh_processing/repair.h>
void boundary_split_edge_and_face()
{
put(src_vpm, target(Euler::split_edge(h, src_tm), src_tm),
get(tgt_vpm, subvertices[vid]));
halfedge_descriptor opp_h = opposite(h, src_tm);
Euler::split_face(opp_h, next(next(opp_h, src_tm), src_tm), src_tm);
}
void split_edge_and_face(const edge_descriptor e,
const Point& splitting_position,
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/Polyhedron_3.h>
#include <CGAL/Polygon_mesh_processing/triangulate_hole.h>
#include <iostream>
#include <fstream>
#include <vector>
#include <CGAL/IO/Polyhedron_builder_from_STL.h>
#include <CGAL/IO/STL_writer.h>
#include <CGAL/Polygon_mesh_processing/polygon_soup_to_polygon_mesh.h>
#include <CGAL/Simple_cartesian.h>
#include <CGAL/Interval_nt.h>
#include <CGAL/leda_real.h>
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
using EK = CGAL::Simple_cartesian<leda::real>;
using FK = CGAL::Simple_cartesian<CGAL::Interval_nt<true> >;
namespace CGAL {
// Copyright (c) 2014 GeometryFactory
// All rights reserved.
//
// This file is part of CGAL (www.cgal.org).
// You can redistribute it and/or modify it under the terms of the GNU
// General Public License as published by the Free Software Foundation,
// either version 3 of the License, or (at your option) any later version.
//
// Licensees holding a valid commercial license may use this file in
// accordance with the commercial license agreement provided with the software.
#include <CGAL/QP_models.h>
#include <CGAL/QP_functions.h>
#include <CGAL/exceptions.h>
#include <CGAL/internal/Exact_type_selector.h>
#ifdef CGAL_USE_GMP
#include <CGAL/Gmpq.h>
typedef CGAL::Gmpq ET;
#else
#include <CGAL/MP_Float.h>
std::ofstream out_sel("results/constrained_edges.selection.txt");
out_sel << std::endl << std::endl; // edge selection is on the third line
int counter = 0;
std::map<vertex_descriptor, int> vid;
for(vertex_descriptor v : vertices(tmesh))
vid[v] = counter++;
counter = 0;
for(const auto& ep : is_border_of_selection)
@MaelRL
MaelRL / dump.cc
Last active August 28, 2019 13:59
template <typename FaceContainer, typename TriangleMesh>
void dump_cc(const FaceContainer& cc_faces,
const TriangleMesh& mesh,
const std::string filename)
{
typedef typename boost::graph_traits<TriangleMesh>::face_descriptor face_descriptor;
typedef typename GetVertexPointMap<TriangleMesh>::const_type VertexPointMap;
VertexPointMap vpm =get_const_property_map(vertex_point, mesh);