15#ifndef DRACO_COMPRESSION_ATTRIBUTES_ATTRIBUTES_ENCODER_H_
16#define DRACO_COMPRESSION_ATTRIBUTES_ATTRIBUTES_ENCODER_H_
92 point_attribute_ids_.push_back(
id);
93 if (
id >=
static_cast<int32_t
>(point_attribute_to_local_id_map_.size())) {
94 point_attribute_to_local_id_map_.resize(
id + 1, -1);
96 point_attribute_to_local_id_map_[id] =
97 static_cast<int32_t
>(point_attribute_ids_.size()) - 1;
102 point_attribute_ids_.clear();
103 point_attribute_to_local_id_map_.clear();
104 for (int32_t att_id : point_attribute_ids) {
111 return static_cast<uint32_t
>(point_attribute_ids_.size());
132 const int id_map_size =
133 static_cast<int>(point_attribute_to_local_id_map_.size());
134 if (point_attribute_id >= id_map_size) {
137 return point_attribute_to_local_id_map_[point_attribute_id];
142 std::vector<int32_t> point_attribute_ids_;
146 std::vector<int32_t> point_attribute_to_local_id_map_;
virtual bool TransformAttributesToPortableFormat()
Definition attributes_encoder.h:118
int32_t GetAttributeId(int i) const
Definition attributes_encoder.h:109
virtual bool EncodeAttributes(EncoderBuffer *out_buffer)
Definition attributes_encoder.h:50
virtual bool EncodeDataNeededByPortableTransforms(EncoderBuffer *out_buffer)
Definition attributes_encoder.h:127
virtual int GetParentAttributeId(int32_t, int32_t) const
Definition attributes_encoder.h:73
virtual bool EncodePortableAttributes(EncoderBuffer *out_buffer)=0
void SetAttributeIds(const std::vector< int32_t > &point_attribute_ids)
Definition attributes_encoder.h:101
PointCloudEncoder * encoder() const
Definition attributes_encoder.h:113
AttributesEncoder()
Definition attributes_encoder.cc:22
virtual bool Init(PointCloudEncoder *encoder, const PointCloud *pc)
Definition attributes_encoder.cc:30
void AddAttributeId(int32_t id)
Definition attributes_encoder.h:91
virtual int NumParentAttributes(int32_t) const
Definition attributes_encoder.h:69
uint32_t num_attributes() const
Definition attributes_encoder.h:110
virtual bool EncodeAttributesEncoderData(EncoderBuffer *out_buffer)
Definition attributes_encoder.cc:36
virtual const PointAttribute * GetPortableAttribute(int32_t)
Definition attributes_encoder.h:86
virtual uint8_t GetUniqueId() const =0
int32_t GetLocalIdForPointAttribute(int32_t point_attribute_id) const
Definition attributes_encoder.h:131
virtual ~AttributesEncoder()=default
virtual bool MarkParentAttribute(int32_t)
Definition attributes_encoder.h:79
Definition encoder_buffer.h:29
Definition point_attribute.h:33
Definition point_cloud_encoder.h:29
Definition point_cloud.h:29
Definition attribute_octahedron_transform.cc:21