/** * Spline Mesh * * Represents a Bézier spline curve that can be rendered as a tube mesh. * Uses cubic Bézier curves with handles for control points. */ import { OutlinerElement, OutlinerElementData } from './outliner_element'; import { SplineHandle, SplineHandleData } from './spline_handle'; import { SplineCurve, SplineCurveData } from './spline_curve'; import { Vector3 } from '../modeling/transform'; export interface SplineMeshData extends OutlinerElementData { vertices?: Record | Vector3[]; handles?: Record; curves?: Record; texture?: string | false | null; radial_resolution?: number; tubular_resolution?: number; radius_multiplier?: number; render_mode?: 'mesh' | 'path'; shading?: 'flat' | 'smooth'; display_space?: boolean; cyclic?: boolean; uv_mode?: 'length_accurate' | 'uniform' | 'per_segment'; } export declare class SplineMesh extends OutlinerElement { private _vertices; private _handles; private _curves; private _faces; texture: string | false | null; radial_resolution: number; tubular_resolution: number; radius_multiplier: number; render_mode: 'mesh' | 'path'; shading: 'flat' | 'smooth'; display_space: boolean; cyclic: boolean; uv_mode: 'length_accurate' | 'uniform' | 'per_segment'; color: number; constructor(data?: SplineMeshData, uuid?: string); get vertices(): Record; get handles(): Record; get curves(): Record; get faces(): Record; set vertices(v: Record); set handles(v: Record); set curves(v: Record); get position(): Vector3; get vertice_list(): Vector3[]; /** * Add vertices to the spline */ addVertices(...vectors: Vector3[]): string[]; /** * Add handles to the spline */ addHandles(...handles: SplineHandle[]): string[]; /** * Add curves to the spline */ addCurves(...curves: SplineCurve[]): string[]; /** * Extend spline with new data */ extend(data: SplineMeshData): this; /** * Get handle of a point */ getHandleOfPoint(vKey: string): string | undefined; /** * Get selected vertices * Framework adapters would implement selection checking */ getSelectedVertices(make?: boolean, splineSelection?: Record): string[]; /** * Get selected handles */ getSelectedHandles(loose?: boolean, splineSelection?: Record): string[]; /** * Get selected curves */ getSelectedCurves(loose?: boolean, splineSelection?: Record): string[]; /** * Get curves of a handle */ getCurvesOfHandle(hKey: string): string[]; /** * Get curves of a point */ getCurvesOfPoint(vKey: string): string[]; /** * Get first handle */ getFirstHandle(): { data: SplineHandle; key: string; } | null; /** * Get last handle */ getLastHandle(): { data: SplineHandle; key: string; } | null; /** * Get center of spline */ getCenter(global?: boolean): Vector3; /** * Get world center (for gizmo positioning) */ getWorldCenter(ignoreMeshSelection?: boolean): Vector3; /** * Get texture * Framework adapters would resolve actual texture object */ getTexture(textures?: any[]): any | null | false; /** * Apply texture */ applyTexture(texture: any): this; /** * Get save copy for serialization */ getSaveCopy(): SplineMeshData; /** * Get undo copy */ getUndoCopy(aspects?: any): SplineMeshData; /** * Roll (rotate around axis) */ roll(axis: number, steps: number, originArg?: Vector3): this; /** * Flip (mirror) along axis */ flip(axis: number, center?: Vector3): this; } //# sourceMappingURL=spline_mesh.d.ts.map