UNPKG

spot-sdk-ts

Version:

TypeScript bindings based on protobufs (proto3) provided by Boston Dynamics

1,166 lines (1,085 loc) 36.4 kB
/* eslint-disable */ import { Timestamp } from "../../google/protobuf/timestamp"; import { FrameTreeSnapshot } from "./geometry"; import { RequestHeader, ResponseHeader } from "./header"; import _m0 from "protobufjs/minimal"; export const protobufPackage = "bosdyn.api"; /** Information about a sensor or process that produces point clouds. */ export interface PointCloudSource { /** * The name of the point cloud source. This is intended to be unique accross all point cloud sources, * and should be human readable. */ name: string; /** * The frame name of the sensor. The transformation from vision_tform_sensor can be computed * by traversing the tree in the FrameTreeSnapshot. */ frameNameSensor: string; /** Time that the data was produced on the sensor in the robot's clock. */ acquisitionTime: Date | undefined; /** * A tree-based collection of transformations, which will include the transformations * to the point cloud data frame and the point cloud sensor frame. */ transformsSnapshot: FrameTreeSnapshot | undefined; } /** Data from a point-cloud producing sensor or process. */ export interface PointCloud { /** The sensor or process that produced the point cloud. */ source: PointCloudSource | undefined; /** The number of points in the point cloud. */ numPoints: number; /** Representation of the underlying point cloud data. */ encoding: PointCloud_Encoding; /** Constants needed to decode the point cloud. */ encodingParameters: PointCloud_EncodingParameters | undefined; /** Raw byte data representing the points. */ data: Uint8Array; } /** Point clouds may be encoded in different ways to preserve bandwidth or disk space. */ export enum PointCloud_Encoding { /** ENCODING_UNKNOWN - The point cloud has an unknown encoding. */ ENCODING_UNKNOWN = 0, /** * ENCODING_XYZ_32F - Each point is x,y,z float32 value (12 bytes, little-endian) stored sequentially. This allows * the point cloud to be expressed in any range and resolution represented by floating point * numbers, but the point cloud will be larger than if one of the other encodings is used. */ ENCODING_XYZ_32F = 1, /** * ENCODING_XYZ_4SC - Each point is 3 signed int8s plus an extra shared signed int8s (4 byte). * byte layout: [..., p1_x, p1_y, p1_z, x, ...] * Each coordinate is mapped to a value between -1 and +1 (corresponding to a * minimum and maximum range). * The resulting point is: * P = remap(p1 * f + p2, c * f, m) * Where: * p1 = the highest byte in each dimension of the point. * p2 = a vector of "extra" bytes converted to metric units. * = [mod (x, f), mod(x/f, f), mod(x/(f^2), f)] - f/2 * x = the "extra" byte for each point. * f = An integer scale factor. * m = [max_x, max_y, max_z], the point cloud max bounds in meters. * c = a remapping constant. * And: * remap(a, b, c) = (a + b)/(2 * b) - c * Point clouds use 1/3 the memory of XYZ_32F, but have limits on resolution * and range. Points must not lie outside of the box of size [-m, m]. Within that box, * the resolution of the point cloud will depend on the encoding parameters. * For example if m = [10, 10, 10], and f = 5 with c = 127 the resolution is * approximately 1.5 cm per point. */ ENCODING_XYZ_4SC = 2, /** * ENCODING_XYZ_5SC - Each point is 3 signed int8s plus two extra shared signed int8s (5 byte). * The encoding is the same as XYZ_4SC, except the "extra" value x is a 16 bit integer. * This encoding has roughly double the resolution of XYZ_4SC, but takes up * an additional byte for each point. */ ENCODING_XYZ_5SC = 3, UNRECOGNIZED = -1, } export function pointCloud_EncodingFromJSON(object: any): PointCloud_Encoding { switch (object) { case 0: case "ENCODING_UNKNOWN": return PointCloud_Encoding.ENCODING_UNKNOWN; case 1: case "ENCODING_XYZ_32F": return PointCloud_Encoding.ENCODING_XYZ_32F; case 2: case "ENCODING_XYZ_4SC": return PointCloud_Encoding.ENCODING_XYZ_4SC; case 3: case "ENCODING_XYZ_5SC": return PointCloud_Encoding.ENCODING_XYZ_5SC; case -1: case "UNRECOGNIZED": default: return PointCloud_Encoding.UNRECOGNIZED; } } export function pointCloud_EncodingToJSON(object: PointCloud_Encoding): string { switch (object) { case PointCloud_Encoding.ENCODING_UNKNOWN: return "ENCODING_UNKNOWN"; case PointCloud_Encoding.ENCODING_XYZ_32F: return "ENCODING_XYZ_32F"; case PointCloud_Encoding.ENCODING_XYZ_4SC: return "ENCODING_XYZ_4SC"; case PointCloud_Encoding.ENCODING_XYZ_5SC: return "ENCODING_XYZ_5SC"; case PointCloud_Encoding.UNRECOGNIZED: default: return "UNRECOGNIZED"; } } /** Parameters needed to decode the point cloud. */ export interface PointCloud_EncodingParameters { /** Used in the remapping process from bytes to metric units. (unitless) */ scaleFactor: number; /** * In XYZ_4SC and XYZ_5SC, the point cloud is assumed to lie inside a box * centered in the data frame. max_x, max_y, max_z are half the dimensions * of that box. These dimensions should be assumed to be meters. */ maxX: number; /** * max_y is half the dimensions of the assumed box (for XYZ_4SC and XYZ_5SC). These * dimensions should be assumed to be meters. */ maxY: number; /** * max_z is half the dimensions of the assumed box (for XYZ_4SC and XYZ_5SC). These * dimensions should be assumed to be meters. */ maxZ: number; /** * Used in the remapping process from bytes to metric units. (unitless) * For XYZ_4SC and XYZ_5C, this should equal 127. */ remappingConstant: number; /** Number of bytes in each point in this encoding. */ bytesPerPoint: number; } export interface ListPointCloudSourcesRequest { /** Common request header. */ header: RequestHeader | undefined; } /** The GetPointCloud response message which returns any point cloud data associated with that service. */ export interface ListPointCloudSourcesResponse { /** Common response Header. */ header: ResponseHeader | undefined; /** * The set of PointCloudSources available from this service. * May be empty if the service serves no point clouds (e.g., if no sensors were found on startup). */ pointCloudSources: PointCloudSource[]; } export interface PointCloudRequest { /** Name of the point cloud source to request from. */ pointCloudSourceName: string; } /** The GetPointCloud request message to ask a specific point cloud service for data. */ export interface GetPointCloudRequest { /** Common request header. */ header: RequestHeader | undefined; /** Sources to retrieve from. The service will return a response for each PointCloudRequest. */ pointCloudRequests: PointCloudRequest[]; } export interface PointCloudResponse { /** Return status for the request. */ status: PointCloudResponse_Status; /** The current point cloud from the service. */ pointCloud: PointCloud | undefined; } export enum PointCloudResponse_Status { /** * STATUS_UNKNOWN - UNKNOWN should never be used. * An internal PointCloudService issue has happened if UNKNOWN is set. * None of the other fields are filled out. */ STATUS_UNKNOWN = 0, /** STATUS_OK - Call succeeded at filling out all the fields. */ STATUS_OK = 1, /** STATUS_SOURCE_DATA_ERROR - Failed to fill out PointCloudSource. All the other fields are not filled out. */ STATUS_SOURCE_DATA_ERROR = 2, /** STATUS_POINT_CLOUD_DATA_ERROR - There was a problem with the point cloud data. Only the PointCloudSource is filled out. */ STATUS_POINT_CLOUD_DATA_ERROR = 3, /** STATUS_UNKNOWN_SOURCE - Provided point cloud source was not found. One */ STATUS_UNKNOWN_SOURCE = 4, UNRECOGNIZED = -1, } export function pointCloudResponse_StatusFromJSON( object: any ): PointCloudResponse_Status { switch (object) { case 0: case "STATUS_UNKNOWN": return PointCloudResponse_Status.STATUS_UNKNOWN; case 1: case "STATUS_OK": return PointCloudResponse_Status.STATUS_OK; case 2: case "STATUS_SOURCE_DATA_ERROR": return PointCloudResponse_Status.STATUS_SOURCE_DATA_ERROR; case 3: case "STATUS_POINT_CLOUD_DATA_ERROR": return PointCloudResponse_Status.STATUS_POINT_CLOUD_DATA_ERROR; case 4: case "STATUS_UNKNOWN_SOURCE": return PointCloudResponse_Status.STATUS_UNKNOWN_SOURCE; case -1: case "UNRECOGNIZED": default: return PointCloudResponse_Status.UNRECOGNIZED; } } export function pointCloudResponse_StatusToJSON( object: PointCloudResponse_Status ): string { switch (object) { case PointCloudResponse_Status.STATUS_UNKNOWN: return "STATUS_UNKNOWN"; case PointCloudResponse_Status.STATUS_OK: return "STATUS_OK"; case PointCloudResponse_Status.STATUS_SOURCE_DATA_ERROR: return "STATUS_SOURCE_DATA_ERROR"; case PointCloudResponse_Status.STATUS_POINT_CLOUD_DATA_ERROR: return "STATUS_POINT_CLOUD_DATA_ERROR"; case PointCloudResponse_Status.STATUS_UNKNOWN_SOURCE: return "STATUS_UNKNOWN_SOURCE"; case PointCloudResponse_Status.UNRECOGNIZED: default: return "UNRECOGNIZED"; } } export interface GetPointCloudResponse { /** Common response header. */ header: ResponseHeader | undefined; /** The resulting point clouds for each requested source. */ pointCloudResponses: PointCloudResponse[]; } function createBasePointCloudSource(): PointCloudSource { return { name: "", frameNameSensor: "", acquisitionTime: undefined, transformsSnapshot: undefined, }; } export const PointCloudSource = { encode( message: PointCloudSource, writer: _m0.Writer = _m0.Writer.create() ): _m0.Writer { if (message.name !== "") { writer.uint32(10).string(message.name); } if (message.frameNameSensor !== "") { writer.uint32(26).string(message.frameNameSensor); } if (message.acquisitionTime !== undefined) { Timestamp.encode( toTimestamp(message.acquisitionTime), writer.uint32(242).fork() ).ldelim(); } if (message.transformsSnapshot !== undefined) { FrameTreeSnapshot.encode( message.transformsSnapshot, writer.uint32(250).fork() ).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): PointCloudSource { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBasePointCloudSource(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.name = reader.string(); break; case 3: message.frameNameSensor = reader.string(); break; case 30: message.acquisitionTime = fromTimestamp( Timestamp.decode(reader, reader.uint32()) ); break; case 31: message.transformsSnapshot = FrameTreeSnapshot.decode( reader, reader.uint32() ); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): PointCloudSource { return { name: isSet(object.name) ? String(object.name) : "", frameNameSensor: isSet(object.frameNameSensor) ? String(object.frameNameSensor) : "", acquisitionTime: isSet(object.acquisitionTime) ? fromJsonTimestamp(object.acquisitionTime) : undefined, transformsSnapshot: isSet(object.transformsSnapshot) ? FrameTreeSnapshot.fromJSON(object.transformsSnapshot) : undefined, }; }, toJSON(message: PointCloudSource): unknown { const obj: any = {}; message.name !== undefined && (obj.name = message.name); message.frameNameSensor !== undefined && (obj.frameNameSensor = message.frameNameSensor); message.acquisitionTime !== undefined && (obj.acquisitionTime = message.acquisitionTime.toISOString()); message.transformsSnapshot !== undefined && (obj.transformsSnapshot = message.transformsSnapshot ? FrameTreeSnapshot.toJSON(message.transformsSnapshot) : undefined); return obj; }, fromPartial<I extends Exact<DeepPartial<PointCloudSource>, I>>( object: I ): PointCloudSource { const message = createBasePointCloudSource(); message.name = object.name ?? ""; message.frameNameSensor = object.frameNameSensor ?? ""; message.acquisitionTime = object.acquisitionTime ?? undefined; message.transformsSnapshot = object.transformsSnapshot !== undefined && object.transformsSnapshot !== null ? FrameTreeSnapshot.fromPartial(object.transformsSnapshot) : undefined; return message; }, }; function createBasePointCloud(): PointCloud { return { source: undefined, numPoints: 0, encoding: 0, encodingParameters: undefined, data: new Uint8Array(), }; } export const PointCloud = { encode( message: PointCloud, writer: _m0.Writer = _m0.Writer.create() ): _m0.Writer { if (message.source !== undefined) { PointCloudSource.encode( message.source, writer.uint32(10).fork() ).ldelim(); } if (message.numPoints !== 0) { writer.uint32(16).int32(message.numPoints); } if (message.encoding !== 0) { writer.uint32(24).int32(message.encoding); } if (message.encodingParameters !== undefined) { PointCloud_EncodingParameters.encode( message.encodingParameters, writer.uint32(34).fork() ).ldelim(); } if (message.data.length !== 0) { writer.uint32(42).bytes(message.data); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): PointCloud { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBasePointCloud(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.source = PointCloudSource.decode(reader, reader.uint32()); break; case 2: message.numPoints = reader.int32(); break; case 3: message.encoding = reader.int32() as any; break; case 4: message.encodingParameters = PointCloud_EncodingParameters.decode( reader, reader.uint32() ); break; case 5: message.data = reader.bytes(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): PointCloud { return { source: isSet(object.source) ? PointCloudSource.fromJSON(object.source) : undefined, numPoints: isSet(object.numPoints) ? Number(object.numPoints) : 0, encoding: isSet(object.encoding) ? pointCloud_EncodingFromJSON(object.encoding) : 0, encodingParameters: isSet(object.encodingParameters) ? PointCloud_EncodingParameters.fromJSON(object.encodingParameters) : undefined, data: isSet(object.data) ? bytesFromBase64(object.data) : new Uint8Array(), }; }, toJSON(message: PointCloud): unknown { const obj: any = {}; message.source !== undefined && (obj.source = message.source ? PointCloudSource.toJSON(message.source) : undefined); message.numPoints !== undefined && (obj.numPoints = Math.round(message.numPoints)); message.encoding !== undefined && (obj.encoding = pointCloud_EncodingToJSON(message.encoding)); message.encodingParameters !== undefined && (obj.encodingParameters = message.encodingParameters ? PointCloud_EncodingParameters.toJSON(message.encodingParameters) : undefined); message.data !== undefined && (obj.data = base64FromBytes( message.data !== undefined ? message.data : new Uint8Array() )); return obj; }, fromPartial<I extends Exact<DeepPartial<PointCloud>, I>>( object: I ): PointCloud { const message = createBasePointCloud(); message.source = object.source !== undefined && object.source !== null ? PointCloudSource.fromPartial(object.source) : undefined; message.numPoints = object.numPoints ?? 0; message.encoding = object.encoding ?? 0; message.encodingParameters = object.encodingParameters !== undefined && object.encodingParameters !== null ? PointCloud_EncodingParameters.fromPartial(object.encodingParameters) : undefined; message.data = object.data ?? new Uint8Array(); return message; }, }; function createBasePointCloud_EncodingParameters(): PointCloud_EncodingParameters { return { scaleFactor: 0, maxX: 0, maxY: 0, maxZ: 0, remappingConstant: 0, bytesPerPoint: 0, }; } export const PointCloud_EncodingParameters = { encode( message: PointCloud_EncodingParameters, writer: _m0.Writer = _m0.Writer.create() ): _m0.Writer { if (message.scaleFactor !== 0) { writer.uint32(8).int32(message.scaleFactor); } if (message.maxX !== 0) { writer.uint32(17).double(message.maxX); } if (message.maxY !== 0) { writer.uint32(25).double(message.maxY); } if (message.maxZ !== 0) { writer.uint32(33).double(message.maxZ); } if (message.remappingConstant !== 0) { writer.uint32(41).double(message.remappingConstant); } if (message.bytesPerPoint !== 0) { writer.uint32(48).int32(message.bytesPerPoint); } return writer; }, decode( input: _m0.Reader | Uint8Array, length?: number ): PointCloud_EncodingParameters { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBasePointCloud_EncodingParameters(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.scaleFactor = reader.int32(); break; case 2: message.maxX = reader.double(); break; case 3: message.maxY = reader.double(); break; case 4: message.maxZ = reader.double(); break; case 5: message.remappingConstant = reader.double(); break; case 6: message.bytesPerPoint = reader.int32(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): PointCloud_EncodingParameters { return { scaleFactor: isSet(object.scaleFactor) ? Number(object.scaleFactor) : 0, maxX: isSet(object.maxX) ? Number(object.maxX) : 0, maxY: isSet(object.maxY) ? Number(object.maxY) : 0, maxZ: isSet(object.maxZ) ? Number(object.maxZ) : 0, remappingConstant: isSet(object.remappingConstant) ? Number(object.remappingConstant) : 0, bytesPerPoint: isSet(object.bytesPerPoint) ? Number(object.bytesPerPoint) : 0, }; }, toJSON(message: PointCloud_EncodingParameters): unknown { const obj: any = {}; message.scaleFactor !== undefined && (obj.scaleFactor = Math.round(message.scaleFactor)); message.maxX !== undefined && (obj.maxX = message.maxX); message.maxY !== undefined && (obj.maxY = message.maxY); message.maxZ !== undefined && (obj.maxZ = message.maxZ); message.remappingConstant !== undefined && (obj.remappingConstant = message.remappingConstant); message.bytesPerPoint !== undefined && (obj.bytesPerPoint = Math.round(message.bytesPerPoint)); return obj; }, fromPartial<I extends Exact<DeepPartial<PointCloud_EncodingParameters>, I>>( object: I ): PointCloud_EncodingParameters { const message = createBasePointCloud_EncodingParameters(); message.scaleFactor = object.scaleFactor ?? 0; message.maxX = object.maxX ?? 0; message.maxY = object.maxY ?? 0; message.maxZ = object.maxZ ?? 0; message.remappingConstant = object.remappingConstant ?? 0; message.bytesPerPoint = object.bytesPerPoint ?? 0; return message; }, }; function createBaseListPointCloudSourcesRequest(): ListPointCloudSourcesRequest { return { header: undefined }; } export const ListPointCloudSourcesRequest = { encode( message: ListPointCloudSourcesRequest, writer: _m0.Writer = _m0.Writer.create() ): _m0.Writer { if (message.header !== undefined) { RequestHeader.encode(message.header, writer.uint32(10).fork()).ldelim(); } return writer; }, decode( input: _m0.Reader | Uint8Array, length?: number ): ListPointCloudSourcesRequest { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseListPointCloudSourcesRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.header = RequestHeader.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): ListPointCloudSourcesRequest { return { header: isSet(object.header) ? RequestHeader.fromJSON(object.header) : undefined, }; }, toJSON(message: ListPointCloudSourcesRequest): unknown { const obj: any = {}; message.header !== undefined && (obj.header = message.header ? RequestHeader.toJSON(message.header) : undefined); return obj; }, fromPartial<I extends Exact<DeepPartial<ListPointCloudSourcesRequest>, I>>( object: I ): ListPointCloudSourcesRequest { const message = createBaseListPointCloudSourcesRequest(); message.header = object.header !== undefined && object.header !== null ? RequestHeader.fromPartial(object.header) : undefined; return message; }, }; function createBaseListPointCloudSourcesResponse(): ListPointCloudSourcesResponse { return { header: undefined, pointCloudSources: [] }; } export const ListPointCloudSourcesResponse = { encode( message: ListPointCloudSourcesResponse, writer: _m0.Writer = _m0.Writer.create() ): _m0.Writer { if (message.header !== undefined) { ResponseHeader.encode(message.header, writer.uint32(10).fork()).ldelim(); } for (const v of message.pointCloudSources) { PointCloudSource.encode(v!, writer.uint32(18).fork()).ldelim(); } return writer; }, decode( input: _m0.Reader | Uint8Array, length?: number ): ListPointCloudSourcesResponse { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseListPointCloudSourcesResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.header = ResponseHeader.decode(reader, reader.uint32()); break; case 2: message.pointCloudSources.push( PointCloudSource.decode(reader, reader.uint32()) ); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): ListPointCloudSourcesResponse { return { header: isSet(object.header) ? ResponseHeader.fromJSON(object.header) : undefined, pointCloudSources: Array.isArray(object?.pointCloudSources) ? object.pointCloudSources.map((e: any) => PointCloudSource.fromJSON(e)) : [], }; }, toJSON(message: ListPointCloudSourcesResponse): unknown { const obj: any = {}; message.header !== undefined && (obj.header = message.header ? ResponseHeader.toJSON(message.header) : undefined); if (message.pointCloudSources) { obj.pointCloudSources = message.pointCloudSources.map((e) => e ? PointCloudSource.toJSON(e) : undefined ); } else { obj.pointCloudSources = []; } return obj; }, fromPartial<I extends Exact<DeepPartial<ListPointCloudSourcesResponse>, I>>( object: I ): ListPointCloudSourcesResponse { const message = createBaseListPointCloudSourcesResponse(); message.header = object.header !== undefined && object.header !== null ? ResponseHeader.fromPartial(object.header) : undefined; message.pointCloudSources = object.pointCloudSources?.map((e) => PointCloudSource.fromPartial(e)) || []; return message; }, }; function createBasePointCloudRequest(): PointCloudRequest { return { pointCloudSourceName: "" }; } export const PointCloudRequest = { encode( message: PointCloudRequest, writer: _m0.Writer = _m0.Writer.create() ): _m0.Writer { if (message.pointCloudSourceName !== "") { writer.uint32(10).string(message.pointCloudSourceName); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): PointCloudRequest { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBasePointCloudRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.pointCloudSourceName = reader.string(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): PointCloudRequest { return { pointCloudSourceName: isSet(object.pointCloudSourceName) ? String(object.pointCloudSourceName) : "", }; }, toJSON(message: PointCloudRequest): unknown { const obj: any = {}; message.pointCloudSourceName !== undefined && (obj.pointCloudSourceName = message.pointCloudSourceName); return obj; }, fromPartial<I extends Exact<DeepPartial<PointCloudRequest>, I>>( object: I ): PointCloudRequest { const message = createBasePointCloudRequest(); message.pointCloudSourceName = object.pointCloudSourceName ?? ""; return message; }, }; function createBaseGetPointCloudRequest(): GetPointCloudRequest { return { header: undefined, pointCloudRequests: [] }; } export const GetPointCloudRequest = { encode( message: GetPointCloudRequest, writer: _m0.Writer = _m0.Writer.create() ): _m0.Writer { if (message.header !== undefined) { RequestHeader.encode(message.header, writer.uint32(10).fork()).ldelim(); } for (const v of message.pointCloudRequests) { PointCloudRequest.encode(v!, writer.uint32(18).fork()).ldelim(); } return writer; }, decode( input: _m0.Reader | Uint8Array, length?: number ): GetPointCloudRequest { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseGetPointCloudRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.header = RequestHeader.decode(reader, reader.uint32()); break; case 2: message.pointCloudRequests.push( PointCloudRequest.decode(reader, reader.uint32()) ); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): GetPointCloudRequest { return { header: isSet(object.header) ? RequestHeader.fromJSON(object.header) : undefined, pointCloudRequests: Array.isArray(object?.pointCloudRequests) ? object.pointCloudRequests.map((e: any) => PointCloudRequest.fromJSON(e) ) : [], }; }, toJSON(message: GetPointCloudRequest): unknown { const obj: any = {}; message.header !== undefined && (obj.header = message.header ? RequestHeader.toJSON(message.header) : undefined); if (message.pointCloudRequests) { obj.pointCloudRequests = message.pointCloudRequests.map((e) => e ? PointCloudRequest.toJSON(e) : undefined ); } else { obj.pointCloudRequests = []; } return obj; }, fromPartial<I extends Exact<DeepPartial<GetPointCloudRequest>, I>>( object: I ): GetPointCloudRequest { const message = createBaseGetPointCloudRequest(); message.header = object.header !== undefined && object.header !== null ? RequestHeader.fromPartial(object.header) : undefined; message.pointCloudRequests = object.pointCloudRequests?.map((e) => PointCloudRequest.fromPartial(e)) || []; return message; }, }; function createBasePointCloudResponse(): PointCloudResponse { return { status: 0, pointCloud: undefined }; } export const PointCloudResponse = { encode( message: PointCloudResponse, writer: _m0.Writer = _m0.Writer.create() ): _m0.Writer { if (message.status !== 0) { writer.uint32(8).int32(message.status); } if (message.pointCloud !== undefined) { PointCloud.encode(message.pointCloud, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): PointCloudResponse { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBasePointCloudResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.status = reader.int32() as any; break; case 2: message.pointCloud = PointCloud.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): PointCloudResponse { return { status: isSet(object.status) ? pointCloudResponse_StatusFromJSON(object.status) : 0, pointCloud: isSet(object.pointCloud) ? PointCloud.fromJSON(object.pointCloud) : undefined, }; }, toJSON(message: PointCloudResponse): unknown { const obj: any = {}; message.status !== undefined && (obj.status = pointCloudResponse_StatusToJSON(message.status)); message.pointCloud !== undefined && (obj.pointCloud = message.pointCloud ? PointCloud.toJSON(message.pointCloud) : undefined); return obj; }, fromPartial<I extends Exact<DeepPartial<PointCloudResponse>, I>>( object: I ): PointCloudResponse { const message = createBasePointCloudResponse(); message.status = object.status ?? 0; message.pointCloud = object.pointCloud !== undefined && object.pointCloud !== null ? PointCloud.fromPartial(object.pointCloud) : undefined; return message; }, }; function createBaseGetPointCloudResponse(): GetPointCloudResponse { return { header: undefined, pointCloudResponses: [] }; } export const GetPointCloudResponse = { encode( message: GetPointCloudResponse, writer: _m0.Writer = _m0.Writer.create() ): _m0.Writer { if (message.header !== undefined) { ResponseHeader.encode(message.header, writer.uint32(10).fork()).ldelim(); } for (const v of message.pointCloudResponses) { PointCloudResponse.encode(v!, writer.uint32(34).fork()).ldelim(); } return writer; }, decode( input: _m0.Reader | Uint8Array, length?: number ): GetPointCloudResponse { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseGetPointCloudResponse(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.header = ResponseHeader.decode(reader, reader.uint32()); break; case 4: message.pointCloudResponses.push( PointCloudResponse.decode(reader, reader.uint32()) ); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): GetPointCloudResponse { return { header: isSet(object.header) ? ResponseHeader.fromJSON(object.header) : undefined, pointCloudResponses: Array.isArray(object?.pointCloudResponses) ? object.pointCloudResponses.map((e: any) => PointCloudResponse.fromJSON(e) ) : [], }; }, toJSON(message: GetPointCloudResponse): unknown { const obj: any = {}; message.header !== undefined && (obj.header = message.header ? ResponseHeader.toJSON(message.header) : undefined); if (message.pointCloudResponses) { obj.pointCloudResponses = message.pointCloudResponses.map((e) => e ? PointCloudResponse.toJSON(e) : undefined ); } else { obj.pointCloudResponses = []; } return obj; }, fromPartial<I extends Exact<DeepPartial<GetPointCloudResponse>, I>>( object: I ): GetPointCloudResponse { const message = createBaseGetPointCloudResponse(); message.header = object.header !== undefined && object.header !== null ? ResponseHeader.fromPartial(object.header) : undefined; message.pointCloudResponses = object.pointCloudResponses?.map((e) => PointCloudResponse.fromPartial(e) ) || []; return message; }, }; declare var self: any | undefined; declare var window: any | undefined; declare var global: any | undefined; var globalThis: any = (() => { if (typeof globalThis !== "undefined") return globalThis; if (typeof self !== "undefined") return self; if (typeof window !== "undefined") return window; if (typeof global !== "undefined") return global; throw "Unable to locate global object"; })(); function bytesFromBase64(b64: string): Uint8Array { if (globalThis.Buffer) { return Uint8Array.from(globalThis.Buffer.from(b64, "base64")); } else { const bin = globalThis.atob(b64); const arr = new Uint8Array(bin.length); for (let i = 0; i < bin.length; ++i) { arr[i] = bin.charCodeAt(i); } return arr; } } function base64FromBytes(arr: Uint8Array): string { if (globalThis.Buffer) { return globalThis.Buffer.from(arr).toString("base64"); } else { const bin: string[] = []; arr.forEach((byte) => { bin.push(String.fromCharCode(byte)); }); return globalThis.btoa(bin.join("")); } } type Builtin = | Date | Function | Uint8Array | string | number | boolean | undefined; export type DeepPartial<T> = T extends Builtin ? T : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? { [K in keyof T]?: DeepPartial<T[K]> } : Partial<T>; type KeysOfUnion<T> = T extends T ? keyof T : never; export type Exact<P, I extends P> = P extends Builtin ? P : P & { [K in keyof P]: Exact<P[K], I[K]> } & { [K in Exclude<keyof I, KeysOfUnion<P>>]: never; }; function toTimestamp(date: Date): Timestamp { const seconds = date.getTime() / 1_000; const nanos = (date.getTime() % 1_000) * 1_000_000; return { seconds, nanos }; } function fromTimestamp(t: Timestamp): Date { let millis = t.seconds * 1_000; millis += t.nanos / 1_000_000; return new Date(millis); } function fromJsonTimestamp(o: any): Date { if (o instanceof Date) { return o; } else if (typeof o === "string") { return new Date(o); } else { return fromTimestamp(Timestamp.fromJSON(o)); } } function isSet(value: any): boolean { return value !== null && value !== undefined; }