diff --git a/src/constants/referenceGeometries/index.js b/src/constants/referenceGeometries/index.js index f7973b2..2d3b040 100644 --- a/src/constants/referenceGeometries/index.js +++ b/src/constants/referenceGeometries/index.js @@ -37,22 +37,18 @@ function generateLinear() { } function generateVShape() { - // vT-2: Divacant Tetrahedron (V-shape, 109.47°) - Official CoSyMlib reference - // CORRECTED: Coordinates centered on metal position before normalization - // Metal center in cosymlib: [0, 0, -0.534522] + // vT-2: Divacant Tetrahedron (V-shape, 109.47°) - Official CoSyMlib reference (normalized) return [ - [0.801784, 0.801784, 0.801784], - [-0.801784, -0.801784, 0.801784] + [0.801784, 0.801784, 0.267261], + [-0.801784, -0.801784, 0.267261] ].map(normalize); } function generateLShape() { - // vOC-2: Tetravacant Octahedron (L-shape, 90°) - Official CoSyMlib reference - // CORRECTED: Coordinates centered on metal position before normalization - // Metal center in cosymlib: [-0.5, -0.5, 0] + // vOC-2: Tetravacant Octahedron (L-shape, 90°) - Official CoSyMlib reference (normalized) return [ - [1.500000, 0.000000, 0.000000], - [0.000000, 1.500000, 0.000000] + [1.000000, -0.500000, 0.000000], + [-0.500000, 1.000000, 0.000000] ].map(normalize); } @@ -67,35 +63,29 @@ function generateTrigonalPlanar() { } function generatePyramid() { - // vT-3: Vacant Tetrahedron (Trigonal Pyramid) - Official CoSyMlib reference - // CORRECTED: Coordinates centered on metal position before normalization - // Metal center in cosymlib: [0, 0, -0.301511] + // vT-3: Vacant Tetrahedron (Trigonal Pyramid) - Official CoSyMlib reference (normalized) return [ - [1.137070, 0.000000, 0.402015], - [-0.568535, 0.984732, 0.402015], - [-0.568535, -0.984732, 0.402015] + [1.137070, -0.000000, 0.100504], + [-0.568535, 0.984732, 0.100504], + [-0.568535, -0.984732, 0.100504] ].map(normalize); } function generateFacTrivacantOctahedron() { - // fac-vOC-3: fac-Trivacant Octahedron - Official CoSyMlib reference - // CORRECTED: Coordinates centered on metal position before normalization - // Metal center in cosymlib: [-0.333333, -0.333333, -0.333333] + // fac-vOC-3: fac-Trivacant Octahedron - Official CoSyMlib reference (normalized) return [ - [1.333333, 0.000000, 0.000000], - [0.000000, 1.333333, 0.000000], - [0.000000, 0.000000, 1.333333] + [1.000000, -0.333333, -0.333333], + [-0.333333, 1.000000, -0.333333], + [-0.333333, -0.333333, 1.000000] ].map(normalize); } function generateTShaped() { - // mer-vOC-3: mer-Trivacant Octahedron (T-shaped) - Official CoSyMlib reference - // CORRECTED: Coordinates centered on metal position before normalization - // Metal center in cosymlib: [0, -0.301511, 0] + // mer-vOC-3: mer-Trivacant Octahedron (T-shaped) - Official CoSyMlib reference (normalized) return [ - [1.206045, 0.000000, 0.000000], - [0.000000, 1.206045, 0.000000], - [-1.206045, 0.000000, 0.000000] + [1.206045, -0.301511, 0.000000], + [0.000000, 0.904534, 0.000000], + [-1.206045, -0.301511, 0.000000] ].map(normalize); } @@ -120,28 +110,22 @@ function generateSquarePlanar() { } function generateSeesaw() { - // SS-4: Seesaw (cis-divacant octahedron) - Official CoSyMlib reference - // CORRECTED: Coordinates centered on metal position before normalization - // Metal center in cosymlib: [-0.235702, -0.235702, 0] - // After centering: vertices form orthogonal seesaw geometry + // SS-4: Seesaw (cis-divacant octahedron) - Official CoSyMlib reference (normalized) return [ - [0.000000, 0.000000, -1.178511], // axial -z - [1.178511, 0.000000, 0.000000], // equatorial +x - [0.000000, 1.178511, 0.000000], // equatorial +y - [0.000000, 0.000000, 1.178511] // axial +z + [-0.235702, -0.235702, -1.178511], + [0.942809, -0.235702, 0.000000], + [-0.235702, 0.942809, 0.000000], + [-0.235702, -0.235702, 1.178511] ].map(normalize); } function generateAxialVacantTBPY() { - // vTBPY-4: Axially Vacant Trigonal Bipyramid - Official CoSyMlib reference - // CORRECTED: Coordinates centered on metal position before normalization - // Metal center in cosymlib: [0, 0, 0.229416] - // After centering: axial at -z, three equatorial in xy-plane + // vTBPY-4: Axially Vacant Trigonal Bipyramid - Official CoSyMlib reference (normalized) return [ - [0.000000, 0.000000, -1.147079], // axial -z - [1.147079, 0.000000, 0.000000], // equatorial +x - [-0.573539, 0.993399, 0.000000], // equatorial 120° - [-0.573539, -0.993399, 0.000000] // equatorial 240° + [0.000000, -0.000000, -0.917663], + [1.147079, -0.000000, 0.229416], + [-0.573539, 0.993399, 0.229416], + [-0.573539, -0.993399, 0.229416] ].map(normalize); } @@ -157,16 +141,13 @@ function generatePentagon() { } function generateSquarePyramid() { - // vOC-5: Vacant Octahedron (Johnson Square Pyramid J1) - Official CoSyMlib reference - // CORRECTED: Coordinates centered on metal position before normalization - // Metal center in cosymlib: [0, 0, 0.185695] - // After centering: apex at -z, four base vertices in xy-plane + // vOC-5: Vacant Octahedron (Johnson Square Pyramid J1) - Official CoSyMlib reference (normalized) return [ - [0.000000, 0.000000, -1.114172], // apex -z - [1.114172, 0.000000, 0.000000], // base +x - [0.000000, 1.114172, 0.000000], // base +y - [-1.114172, 0.000000, 0.000000], // base -x - [0.000000, -1.114172, 0.000000] // base -y + [0.000000, -0.000000, -0.928477], + [1.114172, -0.000000, 0.185695], + [0.000000, 1.114172, 0.185695], + [-1.114172, 0.000000, 0.185695], + [-0.000000, -1.114172, 0.185695] ].map(normalize); } @@ -215,16 +196,14 @@ function generateHexagon() { } function generatePentagonalPyramid() { - // PPY-6: Pentagonal Pyramid - Official CoSyMlib reference - // CORRECTED: Coordinates centered on metal position before normalization - // Metal center in cosymlib: [0, 0, 0.156174] + // PPY-6: Pentagonal Pyramid - Official CoSyMlib reference (normalized) return [ - [0.000000, 0.000000, -1.093217], // apex -z - [1.093216, 0.000000, 0.000000], // base vertex - [0.337822, 1.039711, 0.000000], - [-0.884431, 0.642576, 0.000000], - [-0.884431, -0.642576, 0.000000], - [0.337822, -1.039711, 0.000000] + [0.000000, -0.000000, -0.937043], + [1.093216, -0.000000, 0.156174], + [0.337822, 1.039711, 0.156174], + [-0.884431, 0.642576, 0.156174], + [-0.884431, -0.642576, 0.156174], + [0.337822, -1.039711, 0.156174] ].map(normalize); } @@ -253,16 +232,14 @@ function generateTrigonalPrism() { } function generateJohnsonPentagonalPyramid6() { - // JPPY-6: Johnson Pentagonal Pyramid (J2) - Official CoSyMlib reference - // CORRECTED: Coordinates centered on metal position before normalization - // Metal center in cosymlib: [0, 0, 0.101206] - return [ - [1.146282, 0.000000, 0.000000], // base vertex - [0.354221, 1.090179, 0.000000], - [-0.927361, 0.673768, 0.000000], - [-0.927361, -0.673768, 0.000000], - [0.354221, -1.090179, 0.000000], - [0.000000, 0.000000, -0.708441] // apex -z + // JPPY-6: Johnson Pentagonal Pyramid (J2) - Official CoSyMlib reference (normalized) + return [ + [1.146282, -0.000000, 0.101206], + [0.354221, 1.090179, 0.101206], + [-0.927361, 0.673768, 0.101206], + [-0.927361, -0.673768, 0.101206], + [0.354221, -1.090179, 0.101206], + [0.000000, -0.000000, -0.607235] ].map(normalize); }