/** * Geometry utility functions * Helper functions for working with cubes, meshes, groups, and bones */ import { Cube } from './cube'; import { Mesh } from './mesh'; import { Group } from './group'; import { OutlinerElement } from './outliner_element'; import { Vector3 } from '../modeling/transform'; /** * Get all children recursively from a group */ export declare function getAllChildren(group: Group): OutlinerElement[]; /** * Get all cubes from a group (recursive) */ export declare function getAllCubes(group: Group): Cube[]; /** * Get all meshes from a group (recursive) */ export declare function getAllMeshes(group: Group): Mesh[]; /** * Calculate bounding box for a cube */ export declare function getCubeBoundingBox(cube: Cube): { min: Vector3; max: Vector3; size: Vector3; }; /** * Calculate center point of a cube */ export declare function getCubeCenter(cube: Cube): Vector3; /** * Calculate bounding box for a mesh */ export declare function getMeshBoundingBox(mesh: Mesh): { min: Vector3; max: Vector3; size: Vector3; }; /** * Calculate center point of a mesh */ export declare function getMeshCenter(mesh: Mesh): Vector3; /** * Calculate bounding box for a group (including all children) */ export declare function getGroupBoundingBox(group: Group): { min: Vector3; max: Vector3; size: Vector3; }; /** * Calculate center point of a group */ export declare function getGroupCenter(group: Group): Vector3; /** * Get cube size (accounting for stretch) */ export declare function getCubeSize(cube: Cube, axis?: 0 | 1 | 2): number | Vector3; /** * Check if a point is inside a cube */ export declare function isPointInCube(cube: Cube, point: Vector3): boolean; /** * Get cube volume */ export declare function getCubeVolume(cube: Cube): number; /** * Get mesh volume (approximate, using bounding box) */ export declare function getMeshVolume(mesh: Mesh): number; /** * Get total volume of all elements in a group */ export declare function getGroupVolume(group: Group): number; /** * Find parent group of an element */ export declare function findParentGroup(element: OutlinerElement, groups: Group[]): Group | null; /** * Get depth of element in hierarchy */ export declare function getElementDepth(element: OutlinerElement, groups: Group[]): number; /** * Get all parent groups of an element */ export declare function getAllParentGroups(element: OutlinerElement, groups: Group[]): Group[]; /** * Check if element is descendant of group */ export declare function isDescendantOf(element: OutlinerElement, group: Group): boolean; /** * Count elements in group */ export declare function countElements(group: Group): { cubes: number; meshes: number; groups: number; total: number; }; //# sourceMappingURL=geometry_utils.d.ts.map