diff options
Diffstat (limited to 'extern/draco/draco/src/draco/compression/attributes/sequential_quantization_attribute_encoder.cc')
-rw-r--r-- | extern/draco/draco/src/draco/compression/attributes/sequential_quantization_attribute_encoder.cc | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/extern/draco/draco/src/draco/compression/attributes/sequential_quantization_attribute_encoder.cc b/extern/draco/draco/src/draco/compression/attributes/sequential_quantization_attribute_encoder.cc index cd5b8b141e0..d3666f7a411 100644 --- a/extern/draco/draco/src/draco/compression/attributes/sequential_quantization_attribute_encoder.cc +++ b/extern/draco/draco/src/draco/compression/attributes/sequential_quantization_attribute_encoder.cc @@ -50,9 +50,11 @@ bool SequentialQuantizationAttributeEncoder::Init(PointCloudEncoder *encoder, &quantization_origin[0]); const float range = encoder->options()->GetAttributeFloat( attribute_id, "quantization_range", 1.f); - attribute_quantization_transform_.SetParameters( - quantization_bits, quantization_origin.data(), - attribute->num_components(), range); + if (!attribute_quantization_transform_.SetParameters( + quantization_bits, quantization_origin.data(), + attribute->num_components(), range)) { + return false; + } } else { // Compute quantization settings from the attribute values. if (!attribute_quantization_transform_.ComputeParameters( @@ -70,9 +72,14 @@ bool SequentialQuantizationAttributeEncoder:: bool SequentialQuantizationAttributeEncoder::PrepareValues( const std::vector<PointIndex> &point_ids, int num_points) { - SetPortableAttribute( - attribute_quantization_transform_.GeneratePortableAttribute( - *(attribute()), point_ids, num_points)); + auto portable_attribute = + attribute_quantization_transform_.InitTransformedAttribute( + *attribute(), point_ids.size()); + if (!attribute_quantization_transform_.TransformAttribute( + *(attribute()), point_ids, portable_attribute.get())) { + return false; + } + SetPortableAttribute(std::move(portable_attribute)); return true; } |