1 Star 0 Fork 0

todayjm / draco

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
draco_web_decoder.idl 9.06 KB
一键复制 编辑 原始数据 按行查看 历史
Tom Finegan 提交于 2020-12-01 13:01 . Draco v1.4.0
// Interface exposed to emscripten's WebIDL Binder.
// http://kripken.github.io/emscripten-site/docs/porting/connecting_cpp_and_javascript/WebIDL-Binder.html
// Deprecated: DecoderBuffer is no longer supported and will be removed in
// future releases. Please refer to Decoder declaration below for
// new decoding functions that do not use DecoderBuffer.
[Prefix="draco::"]
interface DecoderBuffer {
void DecoderBuffer();
void Init([Const] byte[] data, unsigned long data_size);
};
// TODO(fgalligan): Can we remove this?
enum draco_AttributeTransformType {
"draco::ATTRIBUTE_INVALID_TRANSFORM",
"draco::ATTRIBUTE_NO_TRANSFORM",
"draco::ATTRIBUTE_QUANTIZATION_TRANSFORM",
"draco::ATTRIBUTE_OCTAHEDRON_TRANSFORM"
};
[Prefix="draco::"]
interface AttributeTransformData {
void AttributeTransformData();
long transform_type();
};
enum draco_GeometryAttribute_Type {
"draco_GeometryAttribute::INVALID",
"draco_GeometryAttribute::POSITION",
"draco_GeometryAttribute::NORMAL",
"draco_GeometryAttribute::COLOR",
"draco_GeometryAttribute::TEX_COORD",
"draco_GeometryAttribute::GENERIC"
};
[Prefix="draco::"]
interface GeometryAttribute {
void GeometryAttribute();
};
enum draco_EncodedGeometryType {
"draco::INVALID_GEOMETRY_TYPE",
"draco::POINT_CLOUD",
"draco::TRIANGULAR_MESH"
};
enum draco_DataType {
"draco::DT_INVALID",
"draco::DT_INT8",
"draco::DT_UINT8",
"draco::DT_INT16",
"draco::DT_UINT16",
"draco::DT_INT32",
"draco::DT_UINT32",
"draco::DT_INT64",
"draco::DT_UINT64",
"draco::DT_FLOAT32",
"draco::DT_FLOAT64",
"draco::DT_BOOL",
"draco::DT_TYPES_COUNT"
};
[Prefix="draco::"]
interface PointAttribute {
void PointAttribute();
long size();
[Const] AttributeTransformData GetAttributeTransformData();
// From GeometryAttribute
long attribute_type();
long data_type();
byte num_components();
boolean normalized();
long byte_stride();
long byte_offset();
long unique_id();
};
[Prefix="draco::"]
interface AttributeQuantizationTransform {
void AttributeQuantizationTransform();
boolean InitFromAttribute([Ref, Const] PointAttribute att);
long quantization_bits();
float min_value(long axis);
float range();
};
[Prefix="draco::"]
interface AttributeOctahedronTransform {
void AttributeOctahedronTransform();
boolean InitFromAttribute([Ref, Const] PointAttribute att);
long quantization_bits();
};
[Prefix="draco::"]
interface PointCloud {
void PointCloud();
long num_attributes();
long num_points();
};
[Prefix="draco::"]
interface Mesh : PointCloud {
void Mesh();
long num_faces();
// From PointCloud
long num_attributes();
long num_points();
};
[Prefix="draco::"]
interface Metadata {
void Metadata();
};
enum draco_StatusCode {
"draco_Status::OK",
"draco_Status::DRACO_ERROR",
"draco_Status::IO_ERROR",
"draco_Status::INVALID_PARAMETER",
"draco_Status::UNSUPPORTED_VERSION",
"draco_Status::UNKNOWN_VERSION",
};
[Prefix="draco::"]
interface Status {
draco_StatusCode code();
boolean ok();
[Const] DOMString error_msg();
};
// Draco version of typed arrays. The memory of these arrays is allocated on the
// emscripten heap.
interface DracoFloat32Array {
void DracoFloat32Array();
float GetValue(long index);
long size();
};
interface DracoInt8Array {
void DracoInt8Array();
byte GetValue(long index);
long size();
};
interface DracoUInt8Array {
void DracoUInt8Array();
octet GetValue(long index);
long size();
};
interface DracoInt16Array {
void DracoInt16Array();
short GetValue(long index);
long size();
};
interface DracoUInt16Array {
void DracoUInt16Array();
unsigned short GetValue(long index);
long size();
};
interface DracoInt32Array {
void DracoInt32Array();
long GetValue(long index);
long size();
};
interface DracoUInt32Array {
void DracoUInt32Array();
unsigned long GetValue(long index);
long size();
};
interface MetadataQuerier {
void MetadataQuerier();
boolean HasEntry([Ref, Const] Metadata metadata,
[Const] DOMString entry_name);
long GetIntEntry([Ref, Const] Metadata metadata,
[Const] DOMString entry_name);
void GetIntEntryArray([Ref, Const] Metadata metadata,
[Const] DOMString entry_name,
DracoInt32Array out_values);
double GetDoubleEntry([Ref, Const] Metadata metadata,
[Const] DOMString entry_name);
[Const] DOMString GetStringEntry([Ref, Const] Metadata metadata,
[Const] DOMString entry_name);
long NumEntries([Ref, Const] Metadata metadata);
[Const] DOMString GetEntryName([Ref, Const] Metadata metadata, long entry_id);
};
interface Decoder {
void Decoder();
[Const] Status DecodeArrayToPointCloud([Const] byte[] data,
unsigned long data_size,
PointCloud out_point_cloud);
[Const] Status DecodeArrayToMesh([Const] byte[] data,
unsigned long data_size,
Mesh out_mesh);
long GetAttributeId([Ref, Const] PointCloud pc,
draco_GeometryAttribute_Type type);
long GetAttributeIdByName([Ref, Const] PointCloud pc, [Const] DOMString name);
long GetAttributeIdByMetadataEntry([Ref, Const] PointCloud pc,
[Const] DOMString name,
[Const] DOMString value);
[Const] PointAttribute GetAttribute([Ref, Const] PointCloud pc, long att_id);
[Const] PointAttribute GetAttributeByUniqueId([Ref, Const] PointCloud pc,
long unique_id);
[Const] Metadata GetMetadata([Ref, Const] PointCloud pc);
[Const] Metadata GetAttributeMetadata([Ref, Const] PointCloud pc,
long att_id);
boolean GetFaceFromMesh([Ref, Const] Mesh m, long face_id,
DracoInt32Array out_values);
long GetTriangleStripsFromMesh([Ref, Const] Mesh m,
DracoInt32Array strip_values);
boolean GetTrianglesUInt16Array([Ref, Const] Mesh m,
long out_size, VoidPtr out_values);
boolean GetTrianglesUInt32Array([Ref, Const] Mesh m,
long out_size, VoidPtr out_values);
boolean GetAttributeFloat([Ref, Const] PointAttribute pa,
long att_index,
DracoFloat32Array out_values);
boolean GetAttributeFloatForAllPoints([Ref, Const] PointCloud pc,
[Ref, Const] PointAttribute pa,
DracoFloat32Array out_values);
// Deprecated, use GetAttributeInt32ForAllPoints instead.
boolean GetAttributeIntForAllPoints([Ref, Const] PointCloud pc,
[Ref, Const] PointAttribute pa,
DracoInt32Array out_values);
boolean GetAttributeInt8ForAllPoints([Ref, Const] PointCloud pc,
[Ref, Const] PointAttribute pa,
DracoInt8Array out_values);
boolean GetAttributeUInt8ForAllPoints([Ref, Const] PointCloud pc,
[Ref, Const] PointAttribute pa,
DracoUInt8Array out_values);
boolean GetAttributeInt16ForAllPoints([Ref, Const] PointCloud pc,
[Ref, Const] PointAttribute pa,
DracoInt16Array out_values);
boolean GetAttributeUInt16ForAllPoints([Ref, Const] PointCloud pc,
[Ref, Const] PointAttribute pa,
DracoUInt16Array out_values);
boolean GetAttributeInt32ForAllPoints([Ref, Const] PointCloud pc,
[Ref, Const] PointAttribute pa,
DracoInt32Array out_values);
boolean GetAttributeUInt32ForAllPoints([Ref, Const] PointCloud pc,
[Ref, Const] PointAttribute pa,
DracoUInt32Array out_values);
boolean GetAttributeDataArrayForAllPoints([Ref, Const] PointCloud pc,
[Ref, Const] PointAttribute pa,
draco_DataType data_type,
long out_size, VoidPtr out_values);
void SkipAttributeTransform(draco_GeometryAttribute_Type att_type);
// Deprecated: Use decoder.GetEncodedGeometryType(array) instead, where
// |array| is an Int8Array containing the encoded data.
draco_EncodedGeometryType GetEncodedGeometryType_Deprecated(
DecoderBuffer in_buffer);
// Deprecated: UseDecodeArrayToPointCloud instead.
[Const] Status DecodeBufferToPointCloud(DecoderBuffer in_buffer,
PointCloud out_point_cloud);
// Deprecated: UseDecodeArrayToMesh instead.
[Const] Status DecodeBufferToMesh(DecoderBuffer in_buffer, Mesh out_mesh);
};
1
https://gitee.com/pcjm/draco.git
git@gitee.com:pcjm/draco.git
pcjm
draco
draco
master

搜索帮助