MEPP2 Project
|
Batch_decompressor: Given a draco buffer, will decompress a non-textured (or not) mesh. More...
#include <Batch_decompressor.h>
Public Types | |
using | vertex_descriptor = typename boost::graph_traits< HalfedgeGraph >::vertex_descriptor |
using | halfedge_descriptor = typename boost::graph_traits< HalfedgeGraph >::halfedge_descriptor |
using | face_descriptor = typename boost::graph_traits< HalfedgeGraph >::face_descriptor |
using | Vector = typename FEVV::Geometry_traits< HalfedgeGraph >::Vector |
using | Point = typename FEVV::Geometry_traits< HalfedgeGraph >::Point |
using | Geometry = typename FEVV::Geometry_traits< HalfedgeGraph > |
Public Member Functions | |
Batch_decompressor (HalfedgeGraph &g, PointMap &pm, Predictor< HalfedgeGraph, PointMap > *predictor, FEVV::Filters::Kept_position< HalfedgeGraph, PointMap, Geometry > *vkept, const FEVV::Header_handler &header, VertexColorMap &vcm) | |
Batch_decompressor. More... | |
~Batch_decompressor () | |
void | predict_positions (const std::list< halfedge_descriptor > &h_extent, std::list< std::pair< Point, Point > > &new_points) |
predict_positions: Given a list of halfedges, will predict every pair of vertices of a split. This function implements line 13 of Algorithm 2. More... | |
void | save_spanning_tree (const FEVV::Comparator::Spanning_tree_vertex_edge_comparator< HalfedgeGraph, PointMap > &spanningtree) |
saves spanning tree (useful for debugging) More... | |
void | dequantize_mesh () |
Dequantizes a mesh (restores integers as original doubles) More... | |
void | decompress_binary_batch (draco::DecoderBuffer &buffer) |
Decompresses a batch using a draco buffer. This function implements lines 5 to 19 of Algorithm 2. More... | |
Private Member Functions | |
bool | split_vertices (const std::list< halfedge_descriptor > &h_extent) |
This function implements lines 13 to 19 of Algorithm 2. More... | |
void | fill_h_extent_list_no_sort (const FEVV::Comparator::Spanning_tree_vertex_edge_comparator< HalfedgeGraph, PointMap, Geometry > &spanningtree, std::list< halfedge_descriptor > &h_extent) |
FEVV::Filters::TOPOLOGY_CASE | find_case (halfedge_descriptor h1, halfedge_descriptor h2) |
halfedge_descriptor | simple_split_sase (halfedge_descriptor h1, halfedge_descriptor h2) |
std::pair< halfedge_descriptor, bool > | find_good_border (halfedge_descriptor h) |
std::pair< halfedge_descriptor, halfedge_descriptor > | find_good_halfedges_for_split (halfedge_descriptor h, TOPOLOGY_CASE cas) |
int | get_face_degree (halfedge_descriptor h) |
halfedge_descriptor | cases_1 (halfedge_descriptor h, TOPOLOGY_CASE current_case) |
halfedge_descriptor | cases_2 (halfedge_descriptor h1, halfedge_descriptor h2, TOPOLOGY_CASE current_case) |
Private Attributes | |
HalfedgeGraph & | _g |
PointMap & | _pm |
const Geometry | _gt |
std::vector< std::vector< bool > > | neighbours_bitmasks |
int | _batch_id |
FEVV::Filters::Predictor< HalfedgeGraph, PointMap > * | _predictor |
FEVV::Filters::Kept_position< HalfedgeGraph, PointMap, Geometry > * | _vkept |
std::list< std::vector< Vector > > | _positions |
std::list< bool > | _bitmask |
std::list< bool > | _edge_bitmask |
std::list< bool > | _other_info_bits |
const FEVV::Header_handler & | _header |
VertexColorMap & | _vcm |
Batch_decompressor: Given a draco buffer, will decompress a non-textured (or not) mesh.
Definition at line 77 of file Batch_decompressor.h.
using FEVV::Filters::Batch_decompressor< HalfedgeGraph, PointMap, VertexColorMap >::face_descriptor = typename boost::graph_traits< HalfedgeGraph >::face_descriptor |
Definition at line 86 of file Batch_decompressor.h.
using FEVV::Filters::Batch_decompressor< HalfedgeGraph, PointMap, VertexColorMap >::Geometry = typename FEVV::Geometry_traits< HalfedgeGraph > |
Definition at line 90 of file Batch_decompressor.h.
using FEVV::Filters::Batch_decompressor< HalfedgeGraph, PointMap, VertexColorMap >::halfedge_descriptor = typename boost::graph_traits< HalfedgeGraph >::halfedge_descriptor |
Definition at line 84 of file Batch_decompressor.h.
using FEVV::Filters::Batch_decompressor< HalfedgeGraph, PointMap, VertexColorMap >::Point = typename FEVV::Geometry_traits< HalfedgeGraph >::Point |
Definition at line 89 of file Batch_decompressor.h.
using FEVV::Filters::Batch_decompressor< HalfedgeGraph, PointMap, VertexColorMap >::Vector = typename FEVV::Geometry_traits< HalfedgeGraph >::Vector |
Definition at line 88 of file Batch_decompressor.h.
using FEVV::Filters::Batch_decompressor< HalfedgeGraph, PointMap, VertexColorMap >::vertex_descriptor = typename boost::graph_traits< HalfedgeGraph >::vertex_descriptor |
Definition at line 82 of file Batch_decompressor.h.
|
inline |
[in,out] | g | Empty halfedge graph that is used to reconstruct the decoded mesh topology. |
[in,out] | pm | Empty pointmap associated with g that is used to reconstruct the decoded mesh geometry (vertex positions). |
[in] | predictor | Pointer to a predictor object (e.g. butterfly). |
[in] | vkept | Pointer to a mid midpoint or halfedge object. |
[in] | header | Header object (contains refinement info: quantization for example). |
[in,out] | vcm | vertex color map associated with g, used to debug topological issues during the decoding |
[in] | bit_quantization | bits of quantization |
Definition at line 106 of file Batch_decompressor.h.
|
inline |
Definition at line 120 of file Batch_decompressor.h.
|
inlineprivate |
Definition at line 702 of file Batch_decompressor.h.
|
inlineprivate |
Definition at line 765 of file Batch_decompressor.h.
|
inline |
Decompresses a batch using a draco buffer. This function implements lines 5 to 19 of Algorithm 2.
[in,out] | buffer | A draco decoderbuffer with refinement info. Not a const param because of call to non-const draco methods such as Decode. |
Definition at line 207 of file Batch_decompressor.h.
|
inline |
Dequantizes a mesh (restores integers as original doubles)
Definition at line 188 of file Batch_decompressor.h.
|
inlineprivate |
Fills the list of halfedges to expand. For cases without any border, two different halfedges will be added. Otherwise, one halfedge will be added twice. This function implements line 12 of Algorithm 2.
Definition at line 352 of file Batch_decompressor.h.
|
inlineprivate |
Definition at line 455 of file Batch_decompressor.h.
|
inlineprivate |
Definition at line 541 of file Batch_decompressor.h.
|
inlineprivate |
Definition at line 568 of file Batch_decompressor.h.
|
inlineprivate |
Definition at line 663 of file Batch_decompressor.h.
|
inline |
predict_positions: Given a list of halfedges, will predict every pair of vertices of a split. This function implements line 13 of Algorithm 2.
[in] | h_extent | List of halfedges to expand to faces. |
[out] | new_points | Empty list of pair<Point,Point>. Will be filled by the function. |
Definition at line 130 of file Batch_decompressor.h.
|
inline |
saves spanning tree (useful for debugging)
Definition at line 164 of file Batch_decompressor.h.
|
inlineprivate |
Definition at line 521 of file Batch_decompressor.h.
|
inlineprivate |
This function implements lines 13 to 19 of Algorithm 2.
Definition at line 278 of file Batch_decompressor.h.
|
private |
Definition at line 259 of file Batch_decompressor.h.
|
private |
Definition at line 270 of file Batch_decompressor.h.
|
private |
Definition at line 271 of file Batch_decompressor.h.
|
private |
Definition at line 255 of file Batch_decompressor.h.
|
private |
Definition at line 257 of file Batch_decompressor.h.
|
private |
Definition at line 273 of file Batch_decompressor.h.
|
private |
Definition at line 272 of file Batch_decompressor.h.
|
private |
Definition at line 256 of file Batch_decompressor.h.
|
private |
Definition at line 268 of file Batch_decompressor.h.
|
private |
Definition at line 263 of file Batch_decompressor.h.
|
private |
Definition at line 275 of file Batch_decompressor.h.
|
private |
Definition at line 266 of file Batch_decompressor.h.
|
private |
Definition at line 258 of file Batch_decompressor.h.