import { ContextManager, Observable } from '@zcomponent/core'; import { Group } from '../Group'; interface ConstructorProps { /** * The radius of the breadcrumb base. * * @zprop * @zdefault 0.05 */ radius: number; /** * The radius of the breadcrumb outline. * * @zprop * @zdefault 0.07 */ outlineRadius: number; /** * The maximum number of breadcrumbs to display. * * @zprop * @zdefault 500 */ maxCrumbs: number; } /** * A component that displays breadcrumbs along a curve. * * You may either set the `curve` property to a Curve3 node, add a Curve3 node as a child, or set the `path` property to an array of points. * * @zcomponent * @zgroup Navigation * @zicon assistant_navigation * @ztag three/CurveHost/Breadcrumbs */ export declare class Breadcrumbs extends Group { constructorProps: ConstructorProps; private _baseMaterial; private _outlineMaterial; private _shadowMaterial; private _baseMesh; private _outlineMesh; private _shadowMesh; private _curve; private _curveComponent; private _generatedPath; constructor(contextManager: ContextManager, constructorProps: ConstructorProps); private _updateCurve; private _updatePath; private _updateAlongPath; _updateHeight: () => void; /** * The path to follow. This is used if no Curve3 is set via the `curve` property or as a child. * @zui */ path: Observable<[x: number, y: number, z: number][], never>; /** * The curve to follow. * * @zui * @zgroup Breadcrumbs * @zgrouppriority 50 * @zvalues nodeids three/Curve3/** */ curve: Observable; /** * The gap between breadcrumbs, in world units. * * @zgroup Breadcrumbs * @zgrouppriority 50 * @zprop * @zdefault 0.3 */ gap: Observable; /** * The color of the breadcrumb base. * * @zgroup Breadcrumbs * @zgrouppriority 50 * @zprop * @ztype color-hex * @zdefault #000000 */ baseColor: Observable; /** * The color of the breadcrumb outline. * * @zgroup Breadcrumbs * @zgrouppriority 50 * @zprop * @ztype color-hex * @zdefault #ffffff */ outlineColor: Observable; /** * The height above the ground to place the breadcrumbs. * * @zgroup Breadcrumbs * @zgrouppriority 50 * @zprop * @zdefault 0.05 */ height: Observable; /** * Whether to align the breadcrumbs with the slope of the curve. * * @zgroup Breadcrumbs * @zgrouppriority 50 * @zprop * @zdefault true */ alignWithSlope: Observable; /** * Whether to update the breadcrumbs every frame. This is useful if the curve's transform is changing often, but has a performance cost. * * @zgroup Breadcrumbs * @zgrouppriority 50 * @zprop * @zdefault false */ updateEveryFrame: Observable; } export {};