File draco.hpp
File List > data_format > draco.hpp
Go to the documentation of this file
#pragma once
#include "draco_illixr/mesh/mesh.h"
#include "illixr/switchboard.hpp"
namespace ILLIXR::data_format {
using VoxelBlockIndex = std::tuple<int, int, int>;
using NewVB = std::tuple<VoxelBlockIndex, std::vector<Eigen::Vector3d>, std::vector<Eigen::Vector3d>>;
struct draco_type : public switchboard::event {
std::unique_ptr<draco_illixr::Mesh> preprocessed_mesh;
unsigned frame_id;
unsigned num_vertices;
unsigned num_faces;
unsigned chunk_id;
unsigned max_chunk;
std::vector<Eigen::Vector3d> vertices;
std::vector<Eigen::Vector3d> colors;
std::unordered_map<unsigned, std::vector<NewVB>> scene_update_mapping;
unsigned face_number;
// 91 for moving scene update mapping
draco_type(unsigned id, unsigned chunk_id_, std::unordered_map<unsigned, std::vector<NewVB>>&& inputUpdateMap)
: frame_id(id)
, chunk_id{chunk_id_}
, scene_update_mapping(std::move(inputUpdateMap)) { }
// 527 for moving generatePartialMesh
draco_type(std::unique_ptr<draco_illixr::Mesh> input_mesh, unsigned id, std::vector<Eigen::Vector3d>& vertices_,
std::vector<Eigen::Vector3d>& colors_, unsigned face_number_)
: preprocessed_mesh(std::move(input_mesh))
, frame_id(id)
, vertices{vertices_}
, colors{colors_}
, face_number{face_number_} { }
draco_type(std::unique_ptr<draco_illixr::Mesh> input_mesh, unsigned id)
: preprocessed_mesh(std::move(input_mesh))
, frame_id(id) { }
draco_type(std::unique_ptr<draco_illixr::Mesh> input_mesh, unsigned id, unsigned chunk_id_, unsigned max_chunk_)
: preprocessed_mesh(std::move(input_mesh))
, frame_id(id)
, chunk_id(chunk_id_)
, max_chunk(max_chunk_) { }
draco_type(std::unique_ptr<draco_illixr::Mesh> input_mesh, unsigned id, unsigned num_vertices_, unsigned num_faces_,
unsigned chunk_id_, unsigned max_chunk_)
: preprocessed_mesh(std::move(input_mesh))
, frame_id(id)
, num_vertices(num_vertices_)
, num_faces(num_faces_)
, chunk_id(chunk_id_)
, max_chunk(max_chunk_) { }
};
} // namespace ILLIXR::data_format