15#ifndef DRACO_POINT_CLOUD_POINT_CLOUD_H_
16#define DRACO_POINT_CLOUD_POINT_CLOUD_H_
34#ifdef DRACO_TRANSCODER_SUPPORTED
66 return static_cast<int32_t
>(attributes_.size());
71 return attributes_[att_id].get();
79 return attributes_[att_id].get();
98 AttributeValueIndex::ValueType num_attribute_values);
105 AttributeValueIndex::ValueType num_attribute_values)
const;
109 virtual void SetAttribute(
int att_id, std::unique_ptr<PointAttribute> pa);
115#ifdef DRACO_ATTRIBUTE_VALUES_DEDUPLICATION_SUPPORTED
118 virtual bool DeduplicateAttributeValues();
121#ifdef DRACO_ATTRIBUTE_INDICES_DEDUPLICATION_SUPPORTED
124 virtual void DeduplicatePointIds();
137 std::unique_ptr<AttributeMetadata>
metadata) {
142 metadata->set_att_unique_id(att_unique_id);
143 metadata_->AddAttributeMetadata(std::move(
metadata));
147 int32_t att_id)
const {
148 if (metadata_ ==
nullptr) {
152 return metadata_->GetAttributeMetadataByUniqueId(
unique_id);
157 const std::string &
name,
const std::string &value)
const {
158 if (metadata_ ==
nullptr) {
161 return metadata_->GetAttributeMetadataByStringEntry(
name, value);
166 const std::string &value)
const {
167 if (metadata_ ==
nullptr) {
171 metadata_->GetAttributeMetadataByStringEntry(
name, value);
185 PointIndex::ValueType
num_points()
const {
return num_points_; }
193#ifdef DRACO_TRANSCODER_SUPPORTED
198#ifdef DRACO_ATTRIBUTE_INDICES_DEDUPLICATION_SUPPORTED
200 virtual void ApplyPointIdDeduplication(
202 const std::vector<PointIndex> &unique_point_ids);
207 std::unique_ptr<GeometryMetadata> metadata_;
210 std::vector<std::unique_ptr<PointAttribute>> attributes_;
218 PointIndex::ValueType num_points_;
229 size_t hash = pc.num_points_;
232 hash =
HashCombine(pc.named_attribute_index_[i].size(), hash);
233 for (
int j = 0; j < static_cast<int>(pc.named_attribute_index_[i].size());
235 hash =
HashCombine(pc.named_attribute_index_[i][j], hash);
239 for (
int i = 0; i < static_cast<int>(pc.attributes_.size()); ++i) {
241 hash =
HashCombine(att_hasher(*pc.attributes_[i]), hash);
246 hash =
HashCombine(metadata_hasher(*pc.metadata_), hash);
std::string unique_id()
Definition GameApi_shm.cc:50
Definition bounding_box.h:23
Definition geometry_attribute.h:43
uint32_t unique_id() const
Definition geometry_attribute.h:277
Type
Definition geometry_attribute.h:46
@ NAMED_ATTRIBUTES_COUNT
Definition geometry_attribute.h:72
Definition draco_index_type_vector.h:32
Definition point_attribute.h:33
Definition point_cloud.h:29
PointIndex::ValueType num_points() const
Definition point_cloud.h:185
const AttributeMetadata * GetAttributeMetadataByStringEntry(const std::string &name, const std::string &value) const
Definition point_cloud.h:156
std::unique_ptr< PointAttribute > CreateAttribute(const GeometryAttribute &att, bool identity_mapping, AttributeValueIndex::ValueType num_attribute_values) const
Definition point_cloud.cc:134
int32_t num_attributes() const
Definition point_cloud.h:65
int AddAttribute(std::unique_ptr< PointAttribute > pa)
Definition point_cloud.cc:118
const PointAttribute * GetAttributeByUniqueId(uint32_t id) const
Definition point_cloud.cc:100
void AddMetadata(std::unique_ptr< GeometryMetadata > metadata)
Definition point_cloud.h:131
virtual void SetAttribute(int att_id, std::unique_ptr< PointAttribute > pa)
Definition point_cloud.cc:156
PointAttribute * attribute(int32_t att_id)
Definition point_cloud.h:76
void AddAttributeMetadata(int32_t att_id, std::unique_ptr< AttributeMetadata > metadata)
Definition point_cloud.h:136
virtual ~PointCloud()=default
virtual void DeleteAttribute(int att_id)
Definition point_cloud.cc:168
int32_t GetAttributeIdByUniqueId(uint32_t unique_id) const
Definition point_cloud.cc:109
const PointAttribute * attribute(int32_t att_id) const
Definition point_cloud.h:68
void set_num_points(PointIndex::ValueType num)
Definition point_cloud.h:190
PointCloud()
Definition point_cloud.cc:27
int GetAttributeIdByMetadataEntry(const std::string &name, const std::string &value) const
Definition point_cloud.h:165
const PointAttribute * GetNamedAttributeByUniqueId(GeometryAttribute::Type type, uint32_t id) const
Definition point_cloud.cc:88
const PointAttribute * GetNamedAttribute(GeometryAttribute::Type type) const
Definition point_cloud.cc:74
friend struct PointCloudHasher
Definition point_cloud.h:220
int32_t NumNamedAttributes(GeometryAttribute::Type type) const
Definition point_cloud.cc:54
const GeometryMetadata * GetMetadata() const
Definition point_cloud.h:179
BoundingBox ComputeBoundingBox() const
Definition point_cloud.cc:287
const AttributeMetadata * GetAttributeMetadataByAttributeId(int32_t att_id) const
Definition point_cloud.h:146
GeometryMetadata * metadata()
Definition point_cloud.h:182
int32_t GetNamedAttributeId(GeometryAttribute::Type type) const
Definition point_cloud.cc:62
#define DRACO_DCHECK_LT(a, b)
Definition macros.h:86
#define DRACO_DCHECK_LE(a, b)
Definition macros.h:85
iVBORw0KGgoAAAANSUhEUgAAANcAAAB5CAMAAACdtUQZAAAA51BMVEX</div ></div >< div style="padding: 0px 0px; width: 1324px;">< div style="height: 400px; width: 1324px;"></div >< div itemscope itemtype="https: </div><div itemscope itemtype="https:</div >< div itemscope itemtype="https: </div></div><p><div style="padding:0px 0px;width:1324px;"><div></div><div itemscope itemtype="https:< ul >< li >< b > Application name
8AkrcAgqgAs9wqQ0ey2tkAo8gAuuQfeI4hPUH09fXHy8z4+fng4uNKXF/Lz9BzfoAcgpkQMTUAKjAbOT4Qr9AXhJ8Rl7ktMCwTosA...
Definition meshpage.php:1610
tag src
Definition meshpage.php:1786
Definition attribute_octahedron_transform.cc:21
size_t HashCombine(T1 a, T2 b)
Definition hash_utils.h:26
Definition point_attribute.h:171
Definition point_cloud.h:227
size_t operator()(const PointCloud &pc) const
Definition point_cloud.h:228
num
Definition view.php:2821