diff options
Diffstat (limited to 'extern/draco/draco/src/draco/attributes/attribute_octahedron_transform.h')
-rw-r--r-- | extern/draco/draco/src/draco/attributes/attribute_octahedron_transform.h | 31 |
1 files changed, 26 insertions, 5 deletions
diff --git a/extern/draco/draco/src/draco/attributes/attribute_octahedron_transform.h b/extern/draco/draco/src/draco/attributes/attribute_octahedron_transform.h index 6e4e74284f0..21a1725bb52 100644 --- a/extern/draco/draco/src/draco/attributes/attribute_octahedron_transform.h +++ b/extern/draco/draco/src/draco/attributes/attribute_octahedron_transform.h @@ -37,19 +37,40 @@ class AttributeOctahedronTransform : public AttributeTransform { void CopyToAttributeTransformData( AttributeTransformData *out_data) const override; + bool TransformAttribute(const PointAttribute &attribute, + const std::vector<PointIndex> &point_ids, + PointAttribute *target_attribute) override; + + bool InverseTransformAttribute(const PointAttribute &attribute, + PointAttribute *target_attribute) override; + // Set number of quantization bits. void SetParameters(int quantization_bits); // Encode relevant parameters into buffer. - bool EncodeParameters(EncoderBuffer *encoder_buffer) const; + bool EncodeParameters(EncoderBuffer *encoder_buffer) const override; + + bool DecodeParameters(const PointAttribute &attribute, + DecoderBuffer *decoder_buffer) override; bool is_initialized() const { return quantization_bits_ != -1; } int32_t quantization_bits() const { return quantization_bits_; } - // Create portable attribute. - std::unique_ptr<PointAttribute> GeneratePortableAttribute( - const PointAttribute &attribute, const std::vector<PointIndex> &point_ids, - int num_points) const; + protected: + DataType GetTransformedDataType( + const PointAttribute &attribute) const override { + return DT_UINT32; + } + int GetTransformedNumComponents( + const PointAttribute &attribute) const override { + return 2; + } + + // Perform the actual transformation. + bool GeneratePortableAttribute(const PointAttribute &attribute, + const std::vector<PointIndex> &point_ids, + int num_points, + PointAttribute *target_attribute) const; private: int32_t quantization_bits_; |