15#ifndef DRACO_COMPRESSION_ATTRIBUTES_SEQUENTIAL_ATTRIBUTE_ENCODERS_CONTROLLER_H_
16#define DRACO_COMPRESSION_ATTRIBUTES_SEQUENTIAL_ATTRIBUTE_ENCODERS_CONTROLLER_H_
34 std::unique_ptr<PointsSequencer> sequencer);
36 std::unique_ptr<PointsSequencer> sequencer,
int point_attrib_id);
48 return sequential_encoders_[loc_id]->NumParentAttributes();
52 int32_t parent_i)
const override {
57 return sequential_encoders_[loc_id]->GetParentAttributeId(parent_i);
67 if (sequential_encoder_marked_as_parent_.size() <= loc_id) {
68 sequential_encoder_marked_as_parent_.resize(loc_id + 1,
false);
70 sequential_encoder_marked_as_parent_[loc_id] =
true;
72 if (sequential_encoders_.size() <= loc_id) {
75 sequential_encoders_[loc_id]->MarkParentAttribute();
80 int32_t point_attribute_id)
override {
85 return sequential_encoders_[loc_id]->GetPortableAttribute();
104 std::vector<std::unique_ptr<SequentialAttributeEncoder>> sequential_encoders_;
108 std::vector<bool> sequential_encoder_marked_as_parent_;
109 std::vector<PointIndex> point_ids_;
110 std::unique_ptr<PointsSequencer> sequencer_;
PointCloudEncoder * encoder() const
Definition attributes_encoder.h:113
AttributesEncoder()
Definition attributes_encoder.cc:22
int32_t GetLocalIdForPointAttribute(int32_t point_attribute_id) const
Definition attributes_encoder.h:131
Definition encoder_buffer.h:29
Definition point_attribute.h:33
Definition point_cloud_encoder.h:29
Definition point_cloud.h:29
uint8_t GetUniqueId() const override
Definition sequential_attribute_encoders_controller.h:41
const PointAttribute * GetPortableAttribute(int32_t point_attribute_id) override
Definition sequential_attribute_encoders_controller.h:79
bool EncodePortableAttributes(EncoderBuffer *out_buffer) override
Definition sequential_attribute_encoders_controller.cc:81
virtual bool CreateSequentialEncoders()
Definition sequential_attribute_encoders_controller.cc:103
bool MarkParentAttribute(int32_t point_attribute_id) override
Definition sequential_attribute_encoders_controller.h:60
bool Init(PointCloudEncoder *encoder, const PointCloud *pc) override
Definition sequential_attribute_encoders_controller.cc:32
bool TransformAttributesToPortableFormat() override
Definition sequential_attribute_encoders_controller.cc:71
bool EncodeDataNeededByPortableTransforms(EncoderBuffer *out_buffer) override
Definition sequential_attribute_encoders_controller.cc:93
bool EncodeAttributesEncoderData(EncoderBuffer *out_buffer) override
Definition sequential_attribute_encoders_controller.cc:50
bool EncodeAttributes(EncoderBuffer *buffer) override
Definition sequential_attribute_encoders_controller.cc:62
SequentialAttributeEncodersController(std::unique_ptr< PointsSequencer > sequencer)
Definition sequential_attribute_encoders_controller.cc:24
virtual std::unique_ptr< SequentialAttributeEncoder > CreateSequentialEncoder(int i)
Definition sequential_attribute_encoders_controller.cc:120
int GetParentAttributeId(int32_t point_attribute_id, int32_t parent_i) const override
Definition sequential_attribute_encoders_controller.h:51
int NumParentAttributes(int32_t point_attribute_id) const override
Definition sequential_attribute_encoders_controller.h:43
Definition attribute_octahedron_transform.cc:21
@ BASIC_ATTRIBUTE_ENCODER
Definition compression_shared.h:64