#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct ShapeHandle(pub(crate) u32);
impl ShapeHandle {
#[must_use]
pub const fn id(self) -> u32 {
self.0
}
}
#[derive(Debug, Clone, Copy, PartialEq)]
pub struct Vec3 {
pub x: f64,
pub y: f64,
pub z: f64,
}
#[derive(Debug, Clone, Copy, PartialEq)]
pub struct BoundingBox {
pub min: Vec3,
pub max: Vec3,
}
#[derive(Debug, Clone)]
pub struct Mesh {
pub positions: Vec<f32>,
pub normals: Vec<f32>,
pub indices: Vec<u32>,
pub face_groups: Vec<i32>,
}
#[derive(Debug, Clone)]
pub struct MeshBatch {
pub positions: Vec<f32>,
pub normals: Vec<f32>,
pub indices: Vec<u32>,
pub shape_offsets: Vec<i32>,
}
#[derive(Debug, Clone)]
pub struct EdgeData {
pub points: Vec<f32>,
pub edge_groups: Vec<i32>,
}
#[derive(Debug, Clone)]
pub struct NurbsCurveData {
pub degree: i32,
pub rational: bool,
pub periodic: bool,
pub knots: Vec<f64>,
pub multiplicities: Vec<i32>,
pub poles: Vec<f64>,
pub weights: Vec<f64>,
}
#[derive(Debug, Clone)]
pub struct EvolutionData {
pub result_id: u32,
pub modified: Vec<i32>,
pub generated: Vec<i32>,
pub deleted: Vec<i32>,
}
#[derive(Debug, Clone)]
pub struct ProjectionData {
pub visible_outline: ShapeHandle,
pub visible_smooth: ShapeHandle,
pub visible_sharp: ShapeHandle,
pub hidden_outline: ShapeHandle,
pub hidden_smooth: ShapeHandle,
pub hidden_sharp: ShapeHandle,
}
#[derive(Debug, Clone)]
pub struct LabelInfo {
pub label_id: i32,
pub name: String,
pub has_color: bool,
pub r: f64,
pub g: f64,
pub b: f64,
pub is_assembly: bool,
pub is_component: bool,
pub shape_id: u32,
}