208 lines
8.0 KiB
Plaintext
208 lines
8.0 KiB
Plaintext
// Interface exposed to emscripten's WebIDL Binder.
|
|
// http://kripken.github.io/emscripten-site/docs/porting/connecting_cpp_and_javascript/WebIDL-Binder.html
|
|
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_MeshEncoderMethod {
|
|
"draco::MESH_SEQUENTIAL_ENCODING",
|
|
"draco::MESH_EDGEBREAKER_ENCODING"
|
|
};
|
|
|
|
[Prefix="draco::"]
|
|
interface PointAttribute {
|
|
void PointAttribute();
|
|
long size();
|
|
|
|
// 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 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();
|
|
void set_num_points(long num_points);
|
|
};
|
|
|
|
[Prefix="draco::"]
|
|
interface Metadata {
|
|
void Metadata();
|
|
};
|
|
|
|
interface DracoInt8Array {
|
|
void DracoInt8Array();
|
|
long GetValue(long index);
|
|
long size();
|
|
};
|
|
|
|
interface MetadataBuilder {
|
|
void MetadataBuilder();
|
|
|
|
boolean AddStringEntry(Metadata metadata,
|
|
[Const] DOMString entry_name,
|
|
[Const] DOMString entry_value);
|
|
boolean AddIntEntry(Metadata metadata,
|
|
[Const] DOMString entry_name,
|
|
long entry_value);
|
|
boolean AddIntEntryArray(Metadata metadata,
|
|
[Const] DOMString entry_name,
|
|
[Const] long[] att_values,
|
|
long num_values);
|
|
boolean AddDoubleEntry(Metadata metadata,
|
|
[Const] DOMString entry_name,
|
|
double entry_value);
|
|
};
|
|
|
|
interface PointCloudBuilder {
|
|
void PointCloudBuilder();
|
|
long AddFloatAttribute(PointCloud pc, draco_GeometryAttribute_Type type,
|
|
long num_vertices, long num_components,
|
|
[Const] float[] att_values);
|
|
long AddInt8Attribute(PointCloud pc, draco_GeometryAttribute_Type type,
|
|
long num_vertices, long num_components,
|
|
[Const] byte[] att_values);
|
|
long AddUInt8Attribute(PointCloud pc, draco_GeometryAttribute_Type type,
|
|
long num_vertices, long num_components,
|
|
[Const] octet[] att_values);
|
|
long AddInt16Attribute(PointCloud pc, draco_GeometryAttribute_Type type,
|
|
long num_vertices, long num_components,
|
|
[Const] short[] att_values);
|
|
long AddUInt16Attribute(PointCloud pc, draco_GeometryAttribute_Type type,
|
|
long num_vertices, long num_components,
|
|
[Const] unsigned short[] att_values);
|
|
long AddInt32Attribute(PointCloud pc, draco_GeometryAttribute_Type type,
|
|
long num_vertices, long num_components,
|
|
[Const] long[] att_values);
|
|
long AddUInt32Attribute(PointCloud pc, draco_GeometryAttribute_Type type,
|
|
long num_vertices, long num_components,
|
|
[Const] unsigned long[] att_values);
|
|
|
|
boolean AddMetadata(PointCloud pc, [Const] Metadata metadata);
|
|
boolean SetMetadataForAttribute(PointCloud pc, long attribute_id,
|
|
[Const] Metadata metadata);
|
|
};
|
|
|
|
interface MeshBuilder : PointCloudBuilder {
|
|
void MeshBuilder();
|
|
|
|
boolean AddFacesToMesh(Mesh mesh, long num_faces, [Const] long[] faces);
|
|
|
|
// Deprecated.
|
|
long AddFloatAttributeToMesh(Mesh mesh, draco_GeometryAttribute_Type type,
|
|
long num_vertices, long num_components,
|
|
[Const] float[] att_values);
|
|
// Deprecated.
|
|
long AddInt32AttributeToMesh(Mesh mesh, draco_GeometryAttribute_Type type,
|
|
long num_vertices, long num_components,
|
|
[Const] long[] att_values);
|
|
// Deprecated.
|
|
boolean AddMetadataToMesh(Mesh mesh, [Const] Metadata metadata);
|
|
|
|
// From PointCloudBuilder
|
|
long AddFloatAttribute(PointCloud pc, draco_GeometryAttribute_Type type,
|
|
long num_vertices, long num_components,
|
|
[Const] float[] att_values);
|
|
long AddInt8Attribute(PointCloud pc, draco_GeometryAttribute_Type type,
|
|
long num_vertices, long num_components,
|
|
[Const] byte[] att_values);
|
|
long AddUInt8Attribute(PointCloud pc, draco_GeometryAttribute_Type type,
|
|
long num_vertices, long num_components,
|
|
[Const] octet[] att_values);
|
|
long AddInt16Attribute(PointCloud pc, draco_GeometryAttribute_Type type,
|
|
long num_vertices, long num_components,
|
|
[Const] short[] att_values);
|
|
long AddUInt16Attribute(PointCloud pc, draco_GeometryAttribute_Type type,
|
|
long num_vertices, long num_components,
|
|
[Const] unsigned short[] att_values);
|
|
long AddInt32Attribute(PointCloud pc, draco_GeometryAttribute_Type type,
|
|
long num_vertices, long num_components,
|
|
[Const] long[] att_values);
|
|
long AddUInt32Attribute(PointCloud pc, draco_GeometryAttribute_Type type,
|
|
long num_vertices, long num_components,
|
|
[Const] unsigned long[] att_values);
|
|
|
|
boolean AddMetadata(PointCloud pc, [Const] Metadata metadata);
|
|
boolean SetMetadataForAttribute(PointCloud pc, long attribute_id,
|
|
[Const] Metadata metadata);
|
|
};
|
|
|
|
interface Encoder {
|
|
void Encoder();
|
|
void SetEncodingMethod(long method);
|
|
void SetAttributeQuantization(draco_GeometryAttribute_Type type,
|
|
long quantization_bits);
|
|
void SetAttributeExplicitQuantization(draco_GeometryAttribute_Type type,
|
|
long quantization_bits,
|
|
long num_components,
|
|
[Const] float[] origin,
|
|
float range);
|
|
void SetSpeedOptions(long encoding_speed, long decoding_speed);
|
|
void SetTrackEncodedProperties(boolean flag);
|
|
|
|
long EncodeMeshToDracoBuffer(Mesh mesh,
|
|
DracoInt8Array encoded_data);
|
|
long EncodePointCloudToDracoBuffer(PointCloud pc, boolean deduplicate_values,
|
|
DracoInt8Array encoded_data);
|
|
|
|
// Returns the number of encoded points or faces from the last Encode
|
|
// operation. Returns 0 if SetTrackEncodedProperties was not set to true.
|
|
long GetNumberOfEncodedPoints();
|
|
long GetNumberOfEncodedFaces();
|
|
};
|
|
|
|
interface ExpertEncoder {
|
|
void ExpertEncoder(PointCloud pc);
|
|
void SetEncodingMethod(long method);
|
|
void SetAttributeQuantization(long att_id,
|
|
long quantization_bits);
|
|
void SetAttributeExplicitQuantization(long att_id,
|
|
long quantization_bits,
|
|
long num_components,
|
|
[Const] float[] origin,
|
|
float range);
|
|
void SetSpeedOptions(long encoding_speed, long decoding_speed);
|
|
void SetTrackEncodedProperties(boolean flag);
|
|
|
|
long EncodeToDracoBuffer(boolean deduplicate_values,
|
|
DracoInt8Array encoded_data);
|
|
|
|
// Returns the number of encoded points or faces from the last Encode
|
|
// operation. Returns 0 if SetTrackEncodedProperties was not set to true.
|
|
long GetNumberOfEncodedPoints();
|
|
long GetNumberOfEncodedFaces();
|
|
}; |