22#ifndef DRACO_COMPRESSION_ATTRIBUTES_PREDICTION_SCHEMES_PREDICTION_SCHEME_FACTORY_H_
23#define DRACO_COMPRESSION_ATTRIBUTES_PREDICTION_SCHEMES_PREDICTION_SCHEME_FACTORY_H_
32template <
class EncodingDataSourceT,
class PredictionSchemeT,
33 class MeshPredictionSchemeFactoryT>
36 int att_id,
const typename PredictionSchemeT::Transform &transform,
37 uint16_t bitstream_version) {
38 const PointAttribute *
const att = source->point_cloud()->attribute(att_id);
46 const CornerTable *
const ct = source->GetCornerTable();
48 source->GetAttributeEncodingData(att_id);
49 if (ct ==
nullptr || encoding_data ==
nullptr) {
55 source->GetAttributeCornerTable(att_id);
56 if (att_ct !=
nullptr) {
59 md.
Set(source->mesh(), att_ct,
62 MeshPredictionSchemeFactoryT factory;
63 auto ret = factory(method, att, transform, md, bitstream_version);
70 md.
Set(source->mesh(), ct,
73 MeshPredictionSchemeFactoryT factory;
74 auto ret = factory(method, att, transform, md, bitstream_version);
Definition corner_table.h:53
Definition mesh_attribute_corner_table.h:30
Definition mesh_prediction_scheme_data.h:26
void Set(const Mesh *mesh, const CornerTable *table, const std::vector< CornerIndex > *data_to_corner_map, const std::vector< int32_t > *vertex_to_data_map)
Definition mesh_prediction_scheme_data.h:35
Definition point_attribute.h:33
ret($return)
Definition mesh_login_result.php:5
Definition attribute_octahedron_transform.cc:21
@ TRIANGULAR_MESH
Definition compression_shared.h:44
std::unique_ptr< PredictionSchemeT > CreateMeshPredictionScheme(const EncodingDataSourceT *source, PredictionSchemeMethod method, int att_id, const typename PredictionSchemeT::Transform &transform, uint16_t bitstream_version)
Definition prediction_scheme_factory.h:34
PredictionSchemeMethod
Definition compression_shared.h:80
@ MESH_PREDICTION_PARALLELOGRAM
Definition compression_shared.h:86
@ MESH_PREDICTION_TEX_COORDS_DEPRECATED
Definition compression_shared.h:88
@ MESH_PREDICTION_CONSTRAINED_MULTI_PARALLELOGRAM
Definition compression_shared.h:89
@ MESH_PREDICTION_GEOMETRIC_NORMAL
Definition compression_shared.h:91
@ MESH_PREDICTION_TEX_COORDS_PORTABLE
Definition compression_shared.h:90
@ MESH_PREDICTION_MULTI_PARALLELOGRAM
Definition compression_shared.h:87
Definition mesh_attribute_indices_encoding_data.h:27
std::vector< CornerIndex > encoded_attribute_value_index_to_corner_map
Definition mesh_attribute_indices_encoding_data.h:44
std::vector< int32_t > vertex_to_encoded_attribute_value_index_map
Definition mesh_attribute_indices_encoding_data.h:50