import { OutlinerElement, OutlinerElementData } from './outliner_element'; import { Armature } from './armature'; import { Mesh } from './mesh'; import { Vector3 } from '../modeling/transform'; export interface ArmatureBoneData extends OutlinerElementData { origin?: Vector3; rotation?: Vector3; vertex_weights?: Record; length?: number; width?: number; connected?: boolean; color?: number; children?: ArmatureBone[]; isOpen?: boolean; visibility?: boolean; } export declare class ArmatureBone extends OutlinerElement { children: ArmatureBone[]; isOpen: boolean; visibility: boolean; origin: Vector3; rotation: Vector3; vertex_weights: Record; length: number; width: number; connected: boolean; color: number; constructor(data?: ArmatureBoneData | string, uuid?: string); get position(): Vector3; extend(data: ArmatureBoneData): this; /** * Get armature this bone belongs to */ getArmature(): Armature | undefined; /** * Get vertex weight for a mesh vertex */ getVertexWeight(mesh: Mesh, vkey: string): number; /** * Set vertex weight for a mesh vertex */ setVertexWeight(mesh: Mesh, vkey: string, weight?: number): this; /** * Get tail position (end of bone) */ getTailPosition(): Vector3; /** * Get world position (accounting for parent transformations) */ getWorldPosition(): Vector3; /** * Get all child bones recursively */ getAllChildren(): ArmatureBone[]; /** * Add child bone */ addChild(bone: ArmatureBone): this; /** * Remove child bone */ removeChild(bone: ArmatureBone): this; forEachChild(callback: (bone: ArmatureBone) => void, forSelf?: boolean): void; /** * Get bone size */ size(): Vector3; size(axis: 0 | 1 | 2): number; /** * Get bone volume (approximate) */ getVolume(): number; getSaveCopy(): any; getUndoCopy(): any; } //# sourceMappingURL=armature_bone.d.ts.map