import { GpuShaderDefinition } from '../../gpu/porters'; import { transformPosition, transformColor } from '../../utilities/transformations'; import { BoundingBoxOrigin } from '../../types'; export interface ComponentProps { /** * Reference edge the center position is measured from (center default). Lets you pin the shape relative to a corner or the canvas centre. * * @default "center" */ origin: BoundingBoxOrigin; /** * Center position of the carbon shape * * Accepts `{ x, y }` objects with values from 0 to 1, or CSS positions like `top center`. * @default {"x":0.5,"y":0.5} */ center: Parameters[0]; /** * Scale of the carbon shape (1 = default size) * * Accepts a number between 0.1 and 3. * @default 1 */ scale: number; /** * Rotation of the carbon shape in degrees * * Accepts a number between 0 and 360. * @default 0 */ rotation: number; /** * The bright tone of the fibre sheen — recolor for forged/coloured carbon (red, blue, bronze) * * Accepts hex strings (`#ff0000`), RGB objects (`{ r, g, b }`), or CSS color names (`limegreen`). * @default "#b9bdc6" */ lightColor: Parameters[0]; /** * The deep resin tone the weave falls to in shadow — near-black for classic carbon * * Accepts hex strings (`#ff0000`), RGB objects (`{ r, g, b }`), or CSS color names (`limegreen`). * @default "#0b0c0e" */ darkColor: Parameters[0]; /** * Weave pattern — plain (checkerboard) or 2×2 twill (the diagonal supercar weave) * * Accepts one of: `"twill"`, `"plain"`. * @default "twill" */ weaveStyle: string; /** * Rotates the whole weave grid in degrees * * Accepts a number between 0 and 360. * @default 0 */ weaveAngle: number; /** * Number of woven tows across the shape — higher = finer, denser weave * * Accepts a number between 2 and 50. * @default 30 */ weaveScale: number; /** * Depth of the quilted weave — how far each tow bulges, catching light on its crown and shadowing the valleys between * * Accepts a number between 0 and 1. * @default 0.5 */ relief: number; /** * Strength of the anisotropic fibre sheen — the directional satin glint running along each tow * * Accepts a number between 0 and 1.5. * @default 1.2 */ fiberSheen: number; /** * Softness of the fibre sheen — 0 = tight crisp glints, 1 = soft matte satin * * Accepts a number between 0 and 1. * @default 0.5 */ roughness: number; /** * Strength of the glossy lacquer coat — the sharp studio reflections of the wet clearcoat over the weave * * Accepts a number between 0 and 2. * @default 1.2 */ clearcoat: number; /** * Strength of the reflected studio lighting seen in the clearcoat * * @default 2 */ environment: number; envRotation: number; /** * Direction of the key light for the fibre sheen, in degrees * * @default 215 */ lightAngle: number; /** * Width of the edge bevel, relative to the shape — thin for machined jewellery edges, wide for soft pillowed metal * * @default 0.05 */ bevelWidth: number; /** * Bevel profile — 0 = one smooth round fillet, 1 = machined: a steep outer fillet, a chamfer plateau and an inner knee, each catching its own line of light * * @default 0 */ bevelShape: number; edgeSoftness: number; /** * Serialized shape configuration (JSON) * * @default "DEFAULT_SHAPE_CONFIG" */ shape: string | Record; /** * URL to a pre-generated SDF .bin file * * @default "" */ shapeSdfUrl: string; /** * Active SDF shape type * * @default "" */ shapeType: string; } export declare const componentDefinition: GpuShaderDefinition; export default componentDefinition; //# sourceMappingURL=index.d.ts.map