3d-tiles-renderer
Version:
https://github.com/AnalyticalGraphicsInc/3d-tiles/tree/master/specification
67 lines (56 loc) • 1.71 kB
TypeScript
import type { TilesRenderer as TilesRendererImpl, TilesRendererEventMap } from '3d-tiles-renderer/three';
import type {
ReactNode,
Context,
ForwardRefExoticComponent,
RefAttributes,
JSX,
} from 'react';
export declare const TilesRendererContext: Context<TilesRendererImpl | null>;
interface EastNorthUpFrameProps {
lat?: number;
lon?: number;
height?: number;
az?: number;
el?: number;
roll?: number;
children?: ReactNode;
}
export declare const EastNorthUpFrame: ForwardRefExoticComponent<
EastNorthUpFrameProps & RefAttributes<any>
>;
interface TilesPluginProps<
Plugin extends new ( ...args: any[] ) => void,
Params extends any[] = ConstructorParameters<Plugin>,
> {
plugin: Plugin;
args?: Params;
[key: string]: Params | Plugin | any;
}
export declare const TilesPlugin: <
Plugin extends new ( ...args: any[] ) => void,
Params extends any[] = ConstructorParameters<Plugin>,
>(
props: TilesPluginProps<Plugin, Params> & RefAttributes<Plugin>,
) => JSX.Element;
// dynamically mapping keys of TilesRendererEventMap to onCamelCased
type CamelCase<S extends string> = S extends `${infer T}-${infer U}`
? `${T}${Capitalize<CamelCase<U>>}`
: S;
type EventHandler<K extends keyof TilesRendererEventMap> = (
event: TilesRendererEventMap[K],
) => void;
type TilesRendererEventMapForR3f = {
[K in keyof TilesRendererEventMap as `on${Capitalize<CamelCase<K>>}`]?: EventHandler<K>;
};
interface TilesRendererProps
extends Partial<TilesRendererImpl>,
TilesRendererEventMapForR3f {
url?: string;
enabled?: boolean;
dispose?: () => void;
children?: ReactNode;
}
export declare const TilesRenderer: ForwardRefExoticComponent<
TilesRendererProps & RefAttributes<TilesRendererImpl>
>;