vpin 0.23.5

Rust library for working with Visual Pinball VPX files
Documentation
#![allow(clippy::excessive_precision, clippy::approx_constant)]
//! Bulb light mesh data
//!
//! Ported from VPinball src/meshes/bulbLightMesh.h

use crate::vpx::model::Vertex3dNoTex2;

/// Number of vertices in the bulb light mesh
#[allow(dead_code)]
pub const BULB_LIGHT_NUM_VERTICES: usize = 67;

/// Number of faces (triangles) in the bulb light mesh
#[allow(dead_code)]
pub const BULB_LIGHT_NUM_FACES: usize = 120;

/// Bulb light mesh vertices
/// Format: x, y, z, nx, ny, nz, tu, tv
#[rustfmt::skip]
pub static BULB_LIGHT_VERTICES: [Vertex3dNoTex2; BULB_LIGHT_NUM_VERTICES] = [
    Vertex3dNoTex2 { x: 0.220295, y: -0.381570, z: 0.984870, nx: 0.496400, ny: -0.859800, nz: 0.119300, tu: 0.698812, tv: 0.614784 },
    Vertex3dNoTex2 { x: 0.000000, y: -0.407060, z: 1.148565, nx: 0.000000, ny: -0.924900, nz: 0.380300, tu: 0.688975, tv: 0.500000 },
    Vertex3dNoTex2 { x: 0.000000, y: -0.440600, z: 0.984870, nx: 0.000000, ny: -0.992800, nz: 0.119300, tu: 0.729568, tv: 0.500000 },
    Vertex3dNoTex2 { x: 0.203525, y: -0.352525, z: 1.148565, nx: 0.462400, ny: -0.800900, nz: 0.380300, tu: 0.663657, tv: 0.594488 },
    Vertex3dNoTex2 { x: 0.352515, y: -0.203530, z: 1.148565, nx: 0.801000, ny: -0.462400, nz: 0.380300, tu: 0.594488, tv: 0.663657 },
    Vertex3dNoTex2 { x: 0.381560, y: -0.220300, z: 0.984870, nx: 0.859800, ny: -0.496400, nz: 0.119300, tu: 0.614784, tv: 0.698812 },
    Vertex3dNoTex2 { x: 0.440585, y: 0.000000, z: 0.984870, nx: 0.992900, ny: 0.000000, nz: 0.119300, tu: 0.500000, tv: 0.729568 },
    Vertex3dNoTex2 { x: 0.407050, y: 0.000000, z: 1.148565, nx: 0.924900, ny: 0.000000, nz: 0.380300, tu: 0.500000, tv: 0.688975 },
    Vertex3dNoTex2 { x: 0.352515, y: 0.203530, z: 1.148565, nx: 0.801000, ny: 0.462400, nz: 0.380300, tu: 0.405512, tv: 0.663657 },
    Vertex3dNoTex2 { x: 0.381560, y: 0.220300, z: 0.984870, nx: 0.859800, ny: 0.496400, nz: 0.119300, tu: 0.385216, tv: 0.698812 },
    Vertex3dNoTex2 { x: 0.220295, y: 0.381570, z: 0.984870, nx: 0.496400, ny: 0.859800, nz: 0.119300, tu: 0.301188, tv: 0.614784 },
    Vertex3dNoTex2 { x: 0.203525, y: 0.352525, z: 1.148565, nx: 0.462400, ny: 0.800900, nz: 0.380300, tu: 0.336343, tv: 0.594488 },
    Vertex3dNoTex2 { x: 0.000000, y: 0.407060, z: 1.148565, nx: 0.000000, ny: 0.924900, nz: 0.380300, tu: 0.311025, tv: 0.500000 },
    Vertex3dNoTex2 { x: 0.000000, y: 0.440600, z: 0.984870, nx: 0.000000, ny: 0.992800, nz: 0.119300, tu: 0.270432, tv: 0.500000 },
    Vertex3dNoTex2 { x: -0.220295, y: 0.381570, z: 0.984870, nx: -0.496400, ny: 0.859800, nz: 0.119300, tu: 0.301188, tv: 0.385216 },
    Vertex3dNoTex2 { x: -0.203525, y: 0.352525, z: 1.148565, nx: -0.462400, ny: 0.800900, nz: 0.380300, tu: 0.336343, tv: 0.405512 },
    Vertex3dNoTex2 { x: -0.352515, y: 0.203530, z: 1.148565, nx: -0.801000, ny: 0.462400, nz: 0.380300, tu: 0.405512, tv: 0.336343 },
    Vertex3dNoTex2 { x: -0.381560, y: 0.220300, z: 0.984870, nx: -0.859800, ny: 0.496400, nz: 0.119300, tu: 0.385216, tv: 0.301188 },
    Vertex3dNoTex2 { x: -0.440585, y: 0.000000, z: 0.984870, nx: -0.992900, ny: 0.000000, nz: 0.119300, tu: 0.500000, tv: 0.270432 },
    Vertex3dNoTex2 { x: -0.407050, y: 0.000000, z: 1.148565, nx: -0.924900, ny: 0.000000, nz: 0.380300, tu: 0.500000, tv: 0.311025 },
    Vertex3dNoTex2 { x: -0.352515, y: -0.203530, z: 1.148565, nx: -0.801000, ny: -0.462400, nz: 0.380300, tu: 0.594488, tv: 0.336343 },
    Vertex3dNoTex2 { x: -0.381560, y: -0.220300, z: 0.984870, nx: -0.859800, ny: -0.496400, nz: 0.119300, tu: 0.614784, tv: 0.301188 },
    Vertex3dNoTex2 { x: -0.220295, y: -0.381570, z: 0.984870, nx: -0.496400, ny: -0.859800, nz: 0.119300, tu: 0.698812, tv: 0.385216 },
    Vertex3dNoTex2 { x: -0.203525, y: -0.352525, z: 1.148565, nx: -0.462400, ny: -0.800900, nz: 0.380300, tu: 0.663657, tv: 0.405512 },
    Vertex3dNoTex2 { x: 0.155770, y: -0.269810, z: 1.287345, nx: 0.353500, ny: -0.612300, nz: 0.707200, tu: 0.625258, tv: 0.572318 },
    Vertex3dNoTex2 { x: 0.000000, y: -0.311550, z: 1.287345, nx: 0.000000, ny: -0.713200, nz: 0.700900, tu: 0.644635, tv: 0.500000 },
    Vertex3dNoTex2 { x: 0.269805, y: -0.155775, z: 1.287345, nx: 0.617700, ny: -0.356600, nz: 0.700900, tu: 0.572318, tv: 0.625258 },
    Vertex3dNoTex2 { x: 0.311540, y: 0.000000, z: 1.287345, nx: 0.707000, ny: 0.000000, nz: 0.707200, tu: 0.500000, tv: 0.644635 },
    Vertex3dNoTex2 { x: 0.269805, y: 0.155775, z: 1.287345, nx: 0.617700, ny: 0.356600, nz: 0.700900, tu: 0.427682, tv: 0.625258 },
    Vertex3dNoTex2 { x: 0.155770, y: 0.269810, z: 1.287345, nx: 0.353500, ny: 0.612300, nz: 0.707200, tu: 0.374742, tv: 0.572318 },
    Vertex3dNoTex2 { x: 0.000000, y: 0.311550, z: 1.287345, nx: 0.000000, ny: 0.713200, nz: 0.700900, tu: 0.355365, tv: 0.500000 },
    Vertex3dNoTex2 { x: -0.155770, y: 0.269810, z: 1.287345, nx: -0.353500, ny: 0.612300, nz: 0.707200, tu: 0.374742, tv: 0.427682 },
    Vertex3dNoTex2 { x: -0.269805, y: 0.155775, z: 1.287345, nx: -0.617700, ny: 0.356600, nz: 0.700900, tu: 0.427682, tv: 0.374742 },
    Vertex3dNoTex2 { x: -0.311540, y: 0.000000, z: 1.287345, nx: -0.707000, ny: 0.000000, nz: 0.707200, tu: 0.500000, tv: 0.355365 },
    Vertex3dNoTex2 { x: -0.269805, y: -0.155775, z: 1.287345, nx: -0.617700, ny: -0.356600, nz: 0.700900, tu: 0.572318, tv: 0.374742 },
    Vertex3dNoTex2 { x: -0.155770, y: -0.269810, z: 1.287345, nx: -0.353500, ny: -0.612300, nz: 0.707200, tu: 0.625258, tv: 0.427682 },
    Vertex3dNoTex2 { x: 0.000000, y: -0.168610, z: 1.380070, nx: 0.000000, ny: -0.385700, nz: 0.922600, tu: 0.578276, tv: 0.500000 },
    Vertex3dNoTex2 { x: 0.146015, y: -0.084305, z: 1.380070, nx: 0.334000, ny: -0.192800, nz: 0.922600, tu: 0.539138, tv: 0.567789 },
    Vertex3dNoTex2 { x: 0.146015, y: 0.084305, z: 1.380070, nx: 0.334000, ny: 0.192800, nz: 0.922600, tu: 0.460862, tv: 0.567789 },
    Vertex3dNoTex2 { x: 0.000000, y: 0.168610, z: 1.380070, nx: 0.000000, ny: 0.385700, nz: 0.922600, tu: 0.421724, tv: 0.500000 },
    Vertex3dNoTex2 { x: -0.146015, y: 0.084305, z: 1.380070, nx: -0.334000, ny: 0.192800, nz: 0.922600, tu: 0.460862, tv: 0.432211 },
    Vertex3dNoTex2 { x: -0.146015, y: -0.084305, z: 1.380070, nx: -0.334000, ny: -0.192800, nz: 0.922600, tu: 0.539138, tv: 0.432211 },
    Vertex3dNoTex2 { x: 0.000000, y: 0.000000, z: 1.412630, nx: 0.000000, ny: 0.000000, nz: 1.000000, tu: 0.500000, tv: 0.500000 },
    Vertex3dNoTex2 { x: 0.237500, y: -0.411375, z: 0.129865, nx: 0.497700, ny: -0.862000, nz: -0.096000, tu: 0.879719, tv: 0.719231 },
    Vertex3dNoTex2 { x: 0.000000, y: -0.475015, z: 0.129865, nx: 0.000000, ny: -0.995400, nz: -0.096000, tu: 0.938461, tv: 0.500000 },
    Vertex3dNoTex2 { x: 0.411360, y: -0.237505, z: 0.129865, nx: 0.862000, ny: -0.497700, nz: -0.096000, tu: 0.719231, tv: 0.879719 },
    Vertex3dNoTex2 { x: 0.475000, y: 0.000000, z: 0.129865, nx: 0.995400, ny: 0.000000, nz: -0.096000, tu: 0.500000, tv: 0.938461 },
    Vertex3dNoTex2 { x: 0.411360, y: 0.237505, z: 0.129865, nx: 0.862000, ny: 0.497700, nz: -0.096000, tu: 0.280769, tv: 0.879719 },
    Vertex3dNoTex2 { x: 0.237500, y: 0.411375, z: 0.129865, nx: 0.497700, ny: 0.862000, nz: -0.096000, tu: 0.120281, tv: 0.719231 },
    Vertex3dNoTex2 { x: 0.000000, y: 0.475015, z: 0.129865, nx: 0.000000, ny: 0.995400, nz: -0.096000, tu: 0.061539, tv: 0.500000 },
    Vertex3dNoTex2 { x: -0.237500, y: 0.411375, z: 0.129865, nx: -0.497700, ny: 0.862000, nz: -0.096000, tu: 0.120281, tv: 0.280769 },
    Vertex3dNoTex2 { x: -0.411360, y: 0.237505, z: 0.129865, nx: -0.862000, ny: 0.497700, nz: -0.096000, tu: 0.280769, tv: 0.120281 },
    Vertex3dNoTex2 { x: -0.475000, y: 0.000000, z: 0.129865, nx: -0.995400, ny: 0.000000, nz: -0.096000, tu: 0.500000, tv: 0.061539 },
    Vertex3dNoTex2 { x: -0.411360, y: -0.237505, z: 0.129865, nx: -0.862000, ny: -0.497700, nz: -0.096000, tu: 0.719231, tv: 0.120281 },
    Vertex3dNoTex2 { x: -0.237500, y: -0.411375, z: 0.129865, nx: -0.497700, ny: -0.862000, nz: -0.096000, tu: 0.879719, tv: 0.280769 },
    Vertex3dNoTex2 { x: 0.220295, y: -0.381570, z: -0.012635, nx: 0.486000, ny: -0.841800, nz: -0.234800, tu: 0.926171, tv: 0.746050 },
    Vertex3dNoTex2 { x: 0.000000, y: -0.440600, z: -0.012635, nx: 0.000000, ny: -0.972100, nz: -0.234800, tu: 0.992100, tv: 0.500000 },
    Vertex3dNoTex2 { x: 0.381560, y: -0.220300, z: -0.012635, nx: 0.841800, ny: -0.486000, nz: -0.234700, tu: 0.746050, tv: 0.926171 },
    Vertex3dNoTex2 { x: 0.440585, y: 0.000000, z: -0.012635, nx: 0.972100, ny: -0.000000, nz: -0.234700, tu: 0.500000, tv: 0.992100 },
    Vertex3dNoTex2 { x: 0.381560, y: 0.220300, z: -0.012635, nx: 0.841800, ny: 0.486000, nz: -0.234700, tu: 0.253950, tv: 0.926171 },
    Vertex3dNoTex2 { x: 0.220295, y: 0.381570, z: -0.012635, nx: 0.486000, ny: 0.841800, nz: -0.234800, tu: 0.073829, tv: 0.746050 },
    Vertex3dNoTex2 { x: 0.000000, y: 0.440600, z: -0.012635, nx: 0.000000, ny: 0.972100, nz: -0.234800, tu: 0.007900, tv: 0.500000 },
    Vertex3dNoTex2 { x: -0.220295, y: 0.381570, z: -0.012635, nx: -0.486000, ny: 0.841800, nz: -0.234800, tu: 0.073829, tv: 0.253950 },
    Vertex3dNoTex2 { x: -0.381560, y: 0.220300, z: -0.012635, nx: -0.841800, ny: 0.486000, nz: -0.234700, tu: 0.253950, tv: 0.073829 },
    Vertex3dNoTex2 { x: -0.440585, y: 0.000000, z: -0.012635, nx: -0.972100, ny: 0.000000, nz: -0.234700, tu: 0.500000, tv: 0.007900 },
    Vertex3dNoTex2 { x: -0.381560, y: -0.220300, z: -0.012635, nx: -0.841800, ny: -0.486000, nz: -0.234700, tu: 0.746050, tv: 0.073829 },
    Vertex3dNoTex2 { x: -0.220295, y: -0.381570, z: -0.012635, nx: -0.486000, ny: -0.841800, nz: -0.234800, tu: 0.926171, tv: 0.253950 },
];

/// Bulb light mesh indices (360 indices = 120 triangles)
#[rustfmt::skip]
pub static BULB_LIGHT_INDICES: [u16; 360] = [
    44, 56, 55,
    56, 44, 66,
    55, 43, 44,
    43, 55, 45,
    57, 45, 55,
    45, 57, 58,
    43, 0, 44,
    45, 0, 43,
    54, 66, 44,
    58, 46, 45,
    66, 54, 53,
    53, 65, 66,
    65, 53, 64,
    46, 58, 47,
    59, 47, 58,
    47, 59, 60,
    46, 6, 45,
    47, 6, 46,
    5, 45, 6,
    0, 45, 5,
    60, 48, 47,
    5, 4, 0,
    6, 4, 5,
    48, 60, 49,
    61, 49, 60,
    49, 61, 62,
    48, 10, 47,
    49, 10, 48,
    6, 47, 9,
    9, 47, 10,
    9, 8, 6,
    10, 8, 9,
    8, 7, 6,
    6, 7, 4,
    10, 11, 8,
    7, 27, 4,
    8, 27, 7,
    12, 11, 10,
    11, 29, 8,
    12, 29, 11,
    8, 28, 27,
    29, 28, 8,
    13, 12, 10,
    10, 49, 13,
    29, 38, 28,
    28, 38, 27,
    13, 49, 14,
    14, 12, 13,
    50, 14, 49,
    62, 50, 49,
    50, 62, 51,
    51, 14, 50,
    63, 51, 62,
    51, 63, 64,
    64, 52, 51,
    52, 64, 53,
    52, 18, 51,
    53, 18, 52,
    14, 51, 17,
    17, 51, 18,
    17, 16, 14,
    18, 16, 17,
    14, 15, 12,
    16, 15, 14,
    15, 31, 12,
    16, 31, 15,
    31, 30, 12,
    12, 30, 29,
    30, 39, 29,
    31, 39, 30,
    38, 29, 39,
    16, 32, 31,
    40, 39, 31,
    32, 40, 31,
    42, 38, 39,
    42, 39, 40,
    33, 32, 16,
    33, 40, 32,
    19, 33, 16,
    18, 19, 16,
    33, 41, 40,
    41, 42, 40,
    20, 33, 19,
    20, 19, 18,
    34, 41, 33,
    20, 34, 33,
    35, 41, 34,
    35, 34, 20,
    41, 36, 42,
    41, 35, 36,
    38, 42, 37,
    37, 42, 36,
    37, 27, 38,
    27, 37, 26,
    27, 26, 4,
    26, 37, 24,
    4, 26, 24,
    36, 24, 37,
    4, 24, 3,
    4, 3, 0,
    24, 36, 25,
    25, 36, 35,
    3, 24, 1,
    24, 25, 1,
    0, 3, 1,
    1, 25, 35,
    0, 1, 2,
    0, 2, 44,
    1, 35, 23,
    23, 35, 20,
    22, 2, 1,
    1, 23, 22,
    22, 44, 2,
    22, 23, 20,
    44, 22, 54,
    54, 22, 53,
    22, 20, 21,
    21, 53, 22,
    21, 20, 18,
    18, 53, 21,
];