import { ThreeElements } from '@react-three/fiber'; import { MaterialTypes } from './three_materials'; import { ColorRepresentation } from 'three/src/math/Color'; import { TransformProps } from '../../three_transforms/interfaces'; import { VuerProps } from '../../vuer/interfaces'; type MaterialProps = { map?: string | string[]; mapRepeat?: [number, number]; normalMap?: string | string[]; displacementMap?: string | string[]; [key: string]: unknown; }; /** * The Primitive Class **/ interface PrimitiveProps extends VuerProps, TransformProps, Omit { geometry: string; primitiveArgs?: any; material?: MaterialProps; /** * @dial Material * @dial-cols 2 * @dial-value physical * */ materialType?: MaterialTypes; /** @dial Material @dial-value false */ wireframe?: boolean; /** @dial Material @dial-value false */ outlines?: boolean; /** * @dial Material * @dial-dtype color * @dial-default #ffffff * **/ outlineColor?: ColorRepresentation; /** * @dial Material * @dial-value 10 * @dial-min 0 * @dial-max 100 * @dial-step 1 **/ outlineThickness?: number; sendMsg?: any; /** * @dial-value 0 * @dial-dtype number * @dial-min -10 * @dial-max 10 * @dial-step 1 * @dial-label-inline **/ renderOrder?: number; hide?: boolean; onClick?: (e: any) => void; } export declare function Primitive({ _ref, _key, primitiveArgs, geometry: Geometry, scale, hide, materialType, material: { map, mapRepeat, displacementMap, normalMap, ..._material }, wireframe, outlines, outlineColor, outlineThickness, onClick, renderOrder, ...rest }: PrimitiveProps): import("react/jsx-runtime").JSX.Element; export type BoxArgs = [ width: number, height: number, depth: number, widthSegments: number, heightSegments: number, depthSegments: number ]; type BoxProps = { /** * @dial geometry * @dial-vector-cols 2 * @dial-vector-rows 3 */ args: BoxArgs; } & PrimitiveProps; export declare function Box({ args, ...params }: BoxProps): import("react/jsx-runtime").JSX.Element; export type CapsuleArgs = [ radius: number, height: number, capSegments: number, radialSegments: number, heightSegments: number ]; type CapsuleProps = { /** * @dial geometry * @dial-vector-cols 2 * @dial-vector-rows 3 */ args?: CapsuleArgs; } & PrimitiveProps; export declare function Capsule({ args, ...params }: CapsuleProps): import("react/jsx-runtime").JSX.Element; export type CircleArgs = [ radius: number, segments: number, thetaStart: number, thetaLength: number ]; type CircleProps = { /** * @dial geometry * @dial-vector-cols 2 * @dial-vector-rows 2 */ args?: CircleArgs; } & PrimitiveProps; export declare function Circle({ args, ...params }: CircleProps): import("react/jsx-runtime").JSX.Element; export type ConeArgs = [ radius: number, height: number, radialSegments: number, heightSegments: number, openEnded: boolean, thetaStart: number, thetaLength: number ]; type ConeProps = { /** * @dial geometry * @dial-vector-cols 2 * @dial-vector-rows 3 */ args?: ConeArgs; } & PrimitiveProps; export declare function Cone({ args, ...params }: ConeProps): import("react/jsx-runtime").JSX.Element; export type CylinderArgs = [ radiusTop: number, radiusBottom: number, height: number, radialSegments: number, heightSegments: number, openEnded: boolean, thetaStart: number, thetaLength: number ]; type CylinderProps = { /** * @dial geometry * @dial-vector-cols 2 * @dial-vector-rows 4 */ args?: CylinderArgs; } & PrimitiveProps; export declare function Cylinder({ args, ...params }: CylinderProps): import("react/jsx-runtime").JSX.Element; export type DodecahedronArgs = [ radius: number, detail: number ]; type DodecahedronProps = { /** * @dial geometry * @dial-cols 1 */ args?: DodecahedronArgs; } & PrimitiveProps; export declare function Dodecahedron({ args, ...params }: DodecahedronProps): import("react/jsx-runtime").JSX.Element; export type EdgesArgs = [ geometry: any, thresholdAngle: number ]; type EdgesProps = { /** * @dial geometry * @dial-cols 1 */ args?: EdgesArgs; } & PrimitiveProps; export declare function Edges({ args, ...params }: EdgesProps): import("react/jsx-runtime").JSX.Element; export type ExtrudeArgsOption = { curveSegments?: number; steps?: number; depth?: number; bevelEnabled?: boolean; bevelThickness?: number; bevelSize?: number; bevelOffset?: number; bevelSegments?: number; }; type ExtrudeProps = { shapes: any; /** * @dial-dtype object */ options?: ExtrudeArgsOption; } & PrimitiveProps; export declare function Extrude({ shapes, options, ...params }: ExtrudeProps): import("react/jsx-runtime").JSX.Element; export type IcosahedronArgs = [ radius: number, detail: number ]; type IcosahedronProps = { /** * @dial geometry * @dial-cols 1 */ args?: IcosahedronArgs; } & PrimitiveProps; export declare function Icosahedron({ args, ...params }: IcosahedronProps): import("react/jsx-runtime").JSX.Element; export type LatheArgs = [ points: any[], segments: number, phiStart: number, phiLength: number ]; type LatheProps = { /** * @dial geometry * @dial-cols 1 */ args?: LatheArgs; } & PrimitiveProps; export declare function Lathe({ args, ...params }: LatheProps): import("react/jsx-runtime").JSX.Element; export type OctahedronArgs = [ radius: number, detail: number ]; type OctahedronProps = { /** * @dial geometry * @dial-cols 1 */ args?: OctahedronArgs; } & PrimitiveProps; export declare function Octahedron({ args, ...params }: OctahedronProps): import("react/jsx-runtime").JSX.Element; export type PlaneArgs = [ width: number, height: number, widthSegments: number, heightSegments: number ]; type PlaneProps = { /** * @dial geometry * @dial-vector-cols 2 * @dial-vector-rows 2 */ args?: PlaneArgs; } & PrimitiveProps; export declare function Plane({ args, ...params }: PlaneProps): import("react/jsx-runtime").JSX.Element; export type PolyhedronArgs = [ vertices: number[], indices: number[], radius: number, detail: number ]; type PolyhedronProps = { /** * @dial geometry * @dial-cols 2 */ args?: PolyhedronArgs; } & PrimitiveProps; export declare function Polyhedron({ args, ...params }: PolyhedronProps): import("react/jsx-runtime").JSX.Element; export type RingArgs = [ innerRadius: number, outerRadius: number, thetaSegments: number, phiSegments: number, thetaStart: number, thetaLength: number ]; type RingProps = { /** * @dial geometry * @dial-vector-cols 2 * @dial-vector-rows 3 */ args?: RingArgs; } & PrimitiveProps; export declare function Ring({ args, ...params }: RingProps): import("react/jsx-runtime").JSX.Element; export type ShapeArgs = [ shapes: any, curveSegments: number ]; type ShapeProps = { /** * @dial geometry * @dial-cols 1 */ args?: ShapeArgs; } & PrimitiveProps; export declare function Shape({ args, ...params }: ShapeProps): import("react/jsx-runtime").JSX.Element; export type SphereArgs = [ radius: number, widthSegments: number, heightSegments: number, phiStart: number, phiLength: number, thetaStart: number, thetaLength: number ]; type SphereProps = { /** * @dial geometry * @dial-vector-cols 2 * @dial-vector-rows 4 */ args?: SphereArgs; } & PrimitiveProps; export declare function Sphere({ args, ...params }: SphereProps): import("react/jsx-runtime").JSX.Element; export type TetrahedronArgs = [ radius: number, detail: number ]; type TetrahedronProps = { /** * @dial geometry * @dial-cols 1 */ args?: TetrahedronArgs; } & PrimitiveProps; export declare function Tetrahedron({ args, ...params }: TetrahedronProps): import("react/jsx-runtime").JSX.Element; export type TorusArgs = [ radius: number, tube: number, radialSegments: number, tubularSegments: number, arc: number ]; type TorusProps = { /** * @dial geometry * @dial-vector-cols 2 * @dial-vector-rows 3 */ args?: TorusArgs; } & PrimitiveProps; export declare function Torus({ args, ...params }: TorusProps): import("react/jsx-runtime").JSX.Element; export type TorusKnotArgs = [ radius: number, tube: number, tubularSegments: number, radialSegments: number, p: number, q: number ]; type TorusKnotProps = { /** * @dial geometry * @dial-vector-cols 2 * @dial-vector-rows 3 */ args?: TorusKnotArgs; } & PrimitiveProps; export declare function TorusKnot({ args, ...params }: TorusKnotProps): import("react/jsx-runtime").JSX.Element; export type TubeArgs = [ path: any, tubularSegments: number, radius: number, radialSegments: number, closed: boolean ]; type TubeProps = { /** * @dial geometry * @dial-vector-cols 3 * @dial-vector-rows 2 */ args?: TubeArgs; } & PrimitiveProps; export declare function Tube({ args, ...params }: TubeProps): import("react/jsx-runtime").JSX.Element; export type WireframeArgs = [geometry: any]; type WireframeProps = { /** * @dial geometry * @dial-cols 1 */ args?: WireframeArgs; } & PrimitiveProps; export declare function Wireframe({ args, ...params }: WireframeProps): import("react/jsx-runtime").JSX.Element; export {};