import { RequestHeader, ResponseHeader } from "./header"; import { Ray, Vec3, FrameTreeSnapshot } from "./geometry"; import _m0 from "protobufjs/minimal"; export declare const protobufPackage = "bosdyn.api"; export interface RaycastRequest { /** Common request header. */ header: RequestHeader | undefined; /** The ray's coordinate frame. When unset, this will default to vision frame. */ rayFrameName: string; /** The ray, containing and origin and an direction. */ ray: Ray | undefined; /** * Ignore intersections closer than this location on the ray. * Defaults to 0 if not provided. */ minIntersectionDistance: number; /** * Type of the raycast you want to perform. If multiple are set, the result will wait until * all raycasts are complete and return a single result proto. * * If this field is left empty, all available sources are used. */ intersectionTypes: RayIntersection_Type[]; } export interface RayIntersection { /** Type of the raycast intersection that was performed. */ type: RayIntersection_Type; /** Position of ray cast hit in the RaycastResponse hit_frame. */ hitPositionInHitFrame: Vec3 | undefined; /** Distance of hit from ray origin. */ distanceMeters: number; } export declare enum RayIntersection_Type { /** TYPE_UNKNOWN - TYPE_UNKNOWN should not be used. */ TYPE_UNKNOWN = 0, /** TYPE_GROUND_PLANE - Intersected against estimated ground plane. */ TYPE_GROUND_PLANE = 1, /** TYPE_TERRAIN_MAP - Intersected against the terrain map. */ TYPE_TERRAIN_MAP = 2, /** TYPE_VOXEL_MAP - Intersected against the full 3D voxel map. */ TYPE_VOXEL_MAP = 3, /** TYPE_HAND_DEPTH - Intersected against the hand depth data. */ TYPE_HAND_DEPTH = 4, UNRECOGNIZED = -1 } export declare function rayIntersection_TypeFromJSON(object: any): RayIntersection_Type; export declare function rayIntersection_TypeToJSON(object: RayIntersection_Type): string; export interface RaycastResponse { /** Common response header. */ header: ResponseHeader | undefined; /** Return status for a request. */ status: RaycastResponse_Status; /** Human-readable error description. Not for programmatic analysis. */ message: string; /** * The frame raycast hits are returned in. Generally this should be the same frame the client * initially requested in. */ hitFrameName: string; /** Ray cast hits, sorted with the closest hit first along the ray's extent. */ hits: RayIntersection[]; /** * A tree-based collection of transformations, which will include the * transformations to each of the returned world objects in addition to * transformations to the common frames ("vision", "body", "odom"). All * transforms within the snapshot are taken at the time when the request is received. * * Note that each object's frame names are defined within the properties * submessage e.g. "frame_name". */ transformsSnapshot: FrameTreeSnapshot | undefined; } export declare enum RaycastResponse_Status { /** STATUS_UNKNOWN - An unknown / unexpected error occurred. */ STATUS_UNKNOWN = 0, /** STATUS_OK - Request was accepted. */ STATUS_OK = 1, /** STATUS_INVALID_REQUEST - [Programming Error] Request was invalid / malformed in some way. */ STATUS_INVALID_REQUEST = 2, /** STATUS_INVALID_INTERSECTION_TYPE - [Programming Error] Requested source not valid for current robot configuration. */ STATUS_INVALID_INTERSECTION_TYPE = 3, /** STATUS_UNKNOWN_FRAME - [Frame Error] The frame_name for a command was not a known frame. */ STATUS_UNKNOWN_FRAME = 4, UNRECOGNIZED = -1 } export declare function raycastResponse_StatusFromJSON(object: any): RaycastResponse_Status; export declare function raycastResponse_StatusToJSON(object: RaycastResponse_Status): string; export declare const RaycastRequest: { encode(message: RaycastRequest, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): RaycastRequest; fromJSON(object: any): RaycastRequest; toJSON(message: RaycastRequest): unknown; fromPartial]: never; }) | undefined; rayFrameName?: string | undefined; ray?: ({ origin?: { x?: number | undefined; y?: number | undefined; z?: number | undefined; } | undefined; direction?: { x?: number | undefined; y?: number | undefined; z?: number | undefined; } | undefined; } & { origin?: ({ x?: number | undefined; y?: number | undefined; z?: number | undefined; } & { x?: number | undefined; y?: number | undefined; z?: number | undefined; } & { [K_1 in Exclude]: never; }) | undefined; direction?: ({ x?: number | undefined; y?: number | undefined; z?: number | undefined; } & { x?: number | undefined; y?: number | undefined; z?: number | undefined; } & { [K_2 in Exclude]: never; }) | undefined; } & { [K_3 in Exclude]: never; }) | undefined; minIntersectionDistance?: number | undefined; intersectionTypes?: (RayIntersection_Type[] & RayIntersection_Type[] & { [K_4 in Exclude]: never; }) | undefined; } & { [K_5 in Exclude]: never; }>(object: I): RaycastRequest; }; export declare const RayIntersection: { encode(message: RayIntersection, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): RayIntersection; fromJSON(object: any): RayIntersection; toJSON(message: RayIntersection): unknown; fromPartial]: never; }) | undefined; distanceMeters?: number | undefined; } & { [K_1 in Exclude]: never; }>(object: I): RayIntersection; }; export declare const RaycastResponse: { encode(message: RaycastResponse, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): RaycastResponse; fromJSON(object: any): RaycastResponse; toJSON(message: RaycastResponse): unknown; fromPartial]: never; }) | undefined; requestReceivedTimestamp?: Date | undefined; responseTimestamp?: Date | undefined; error?: ({ code?: import("./header").CommonError_Code | undefined; message?: string | undefined; data?: { typeUrl?: string | undefined; value?: Uint8Array | undefined; } | undefined; } & { code?: import("./header").CommonError_Code | undefined; message?: string | undefined; data?: ({ typeUrl?: string | undefined; value?: Uint8Array | undefined; } & { typeUrl?: string | undefined; value?: Uint8Array | undefined; } & { [K_1 in Exclude]: never; }) | undefined; } & { [K_2 in Exclude]: never; }) | undefined; request?: ({ typeUrl?: string | undefined; value?: Uint8Array | undefined; } & { typeUrl?: string | undefined; value?: Uint8Array | undefined; } & { [K_3 in Exclude]: never; }) | undefined; } & { [K_4 in Exclude]: never; }) | undefined; status?: RaycastResponse_Status | undefined; message?: string | undefined; hitFrameName?: string | undefined; hits?: ({ type?: RayIntersection_Type | undefined; hitPositionInHitFrame?: { x?: number | undefined; y?: number | undefined; z?: number | undefined; } | undefined; distanceMeters?: number | undefined; }[] & ({ type?: RayIntersection_Type | undefined; hitPositionInHitFrame?: { x?: number | undefined; y?: number | undefined; z?: number | undefined; } | undefined; distanceMeters?: number | undefined; } & { type?: RayIntersection_Type | undefined; hitPositionInHitFrame?: ({ x?: number | undefined; y?: number | undefined; z?: number | undefined; } & { x?: number | undefined; y?: number | undefined; z?: number | undefined; } & { [K_5 in Exclude]: never; }) | undefined; distanceMeters?: number | undefined; } & { [K_6 in Exclude]: never; })[] & { [K_7 in Exclude]: never; }) | undefined; transformsSnapshot?: ({ childToParentEdgeMap?: { [x: string]: { parentFrameName?: string | undefined; parentTformChild?: { position?: { x?: number | undefined; y?: number | undefined; z?: number | undefined; } | undefined; rotation?: { x?: number | undefined; y?: number | undefined; z?: number | undefined; w?: number | undefined; } | undefined; } | undefined; } | undefined; } | undefined; } & { childToParentEdgeMap?: ({ [x: string]: { parentFrameName?: string | undefined; parentTformChild?: { position?: { x?: number | undefined; y?: number | undefined; z?: number | undefined; } | undefined; rotation?: { x?: number | undefined; y?: number | undefined; z?: number | undefined; w?: number | undefined; } | undefined; } | undefined; } | undefined; } & { [x: string]: ({ parentFrameName?: string | undefined; parentTformChild?: { position?: { x?: number | undefined; y?: number | undefined; z?: number | undefined; } | undefined; rotation?: { x?: number | undefined; y?: number | undefined; z?: number | undefined; w?: number | undefined; } | undefined; } | undefined; } & { parentFrameName?: string | undefined; parentTformChild?: ({ position?: { x?: number | undefined; y?: number | undefined; z?: number | undefined; } | undefined; rotation?: { x?: number | undefined; y?: number | undefined; z?: number | undefined; w?: number | undefined; } | undefined; } & { position?: ({ x?: number | undefined; y?: number | undefined; z?: number | undefined; } & { x?: number | undefined; y?: number | undefined; z?: number | undefined; } & { [K_8 in Exclude]: never; }) | undefined; rotation?: ({ x?: number | undefined; y?: number | undefined; z?: number | undefined; w?: number | undefined; } & { x?: number | undefined; y?: number | undefined; z?: number | undefined; w?: number | undefined; } & { [K_9 in Exclude]: never; }) | undefined; } & { [K_10 in Exclude]: never; }) | undefined; } & { [K_11 in Exclude]: never; }) | undefined; } & { [K_12 in Exclude]: never; }) | undefined; } & { [K_13 in Exclude]: never; }) | undefined; } & { [K_14 in Exclude]: never; }>(object: I): RaycastResponse; }; declare type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined; export declare type DeepPartial = T extends Builtin ? T : T extends Array ? Array> : T extends ReadonlyArray ? ReadonlyArray> : T extends {} ? { [K in keyof T]?: DeepPartial; } : Partial; declare type KeysOfUnion = T extends T ? keyof T : never; export declare type Exact = P extends Builtin ? P : P & { [K in keyof P]: Exact; } & { [K in Exclude>]: never; }; export {}; //# sourceMappingURL=ray_cast.d.ts.map