/*
Auto-generated by: https://github.com/pmndrs/gltfjsx
*/

import * as THREE from 'three'
import React, { useRef } from 'react'
import { useGLTF } from '@react-three/drei'
import { GLTF } from 'three-stdlib'

type GLTFResult = GLTF & {
  nodes: {
    mesh0_mesh: THREE.Mesh
    mesh0_mesh_1: THREE.Mesh
    mesh0_mesh_2: THREE.Mesh
    mesh0_mesh_3: THREE.Mesh
    mesh0_mesh_4: THREE.Mesh
    mesh0_mesh_5: THREE.Mesh
    mesh0_mesh_6: THREE.Mesh
    mesh0_mesh_7: THREE.Mesh
    mesh0_mesh_8: THREE.Mesh
    mesh0_mesh_9: THREE.Mesh
    mesh0_mesh_10: THREE.Mesh
    mesh0_mesh_11: THREE.Mesh
    mesh0_mesh_12: THREE.Mesh
    mesh0_mesh_13: THREE.Mesh
    mesh0_mesh_14: THREE.Mesh
    mesh0_mesh_15: THREE.Mesh
    mesh0_mesh_16: THREE.Mesh
    mesh0_mesh_17: THREE.Mesh
    mesh476_mesh: THREE.Mesh
    mesh476_mesh_1: THREE.Mesh
    mesh476_mesh_2: THREE.Mesh
    mesh476_mesh_3: THREE.Mesh
    mesh476_mesh_4: THREE.Mesh
    mesh476_mesh_5: THREE.Mesh
    mesh476_mesh_6: THREE.Mesh
    mesh476_mesh_7: THREE.Mesh
    mesh476_mesh_8: THREE.Mesh
    mesh476_mesh_9: THREE.Mesh
    mesh476_mesh_10: THREE.Mesh
    mesh476_mesh_11: THREE.Mesh
    mesh476_mesh_12: THREE.Mesh
    mesh476_mesh_13: THREE.Mesh
    mesh476_mesh_14: THREE.Mesh
    mesh476_mesh_15: THREE.Mesh
    mesh476_mesh_16: THREE.Mesh
    mesh476_mesh_17: THREE.Mesh
    mesh476_mesh_18: THREE.Mesh
    mesh476_mesh_19: THREE.Mesh
    mesh476_mesh_20: THREE.Mesh
    mesh476_mesh_21: THREE.Mesh
    mesh476_mesh_22: THREE.Mesh
    mesh476_mesh_23: THREE.Mesh
    mesh476_mesh_24: THREE.Mesh
    mesh476_mesh_25: THREE.Mesh
    M25_x_6mm_Screw: THREE.Mesh
  }
  materials: {
    PaletteMaterial001: THREE.MeshStandardMaterial
  }
}

// @ts-expect-error
export function Model(props: JSX.IntrinsicElements['group']) {
  // @ts-expect-error
  const { nodes, materials } = useGLTF('/assets/farmbot/3D/models/rotary_tool.glb') as GLTFResult
  return (
    <group {...props} dispose={null}>
      <mesh
        name="M25_x_6mm_Screw"
        castShadow
        receiveShadow
        geometry={nodes.M25_x_6mm_Screw.geometry}
        material={materials.PaletteMaterial001}
        position={[0.011, -0.002, -0.049]}
        rotation={[2.967, 0, 0]}
      />
      <mesh
        name="mesh0_mesh"
        castShadow
        receiveShadow
        geometry={nodes.mesh0_mesh.geometry}
        material={materials.PaletteMaterial001}
      />
      <mesh
        name="mesh0_mesh_1"
        castShadow
        receiveShadow
        geometry={nodes.mesh0_mesh_1.geometry}
        material={materials.PaletteMaterial001}
      />
      <mesh
        name="mesh0_mesh_2"
        castShadow
        receiveShadow
        geometry={nodes.mesh0_mesh_2.geometry}
        material={materials.PaletteMaterial001}
      />
      <mesh
        name="mesh0_mesh_3"
        castShadow
        receiveShadow
        geometry={nodes.mesh0_mesh_3.geometry}
        material={materials.PaletteMaterial001}
      />
      <mesh
        name="mesh0_mesh_4"
        castShadow
        receiveShadow
        geometry={nodes.mesh0_mesh_4.geometry}
        material={materials.PaletteMaterial001}
      />
      <mesh
        name="mesh0_mesh_5"
        castShadow
        receiveShadow
        geometry={nodes.mesh0_mesh_5.geometry}
        material={materials.PaletteMaterial001}
      />
      <mesh
        name="mesh0_mesh_6"
        castShadow
        receiveShadow
        geometry={nodes.mesh0_mesh_6.geometry}
        material={materials.PaletteMaterial001}
      />
      <mesh
        name="mesh0_mesh_7"
        castShadow
        receiveShadow
        geometry={nodes.mesh0_mesh_7.geometry}
        material={materials.PaletteMaterial001}
      />
      <mesh
        name="mesh0_mesh_8"
        castShadow
        receiveShadow
        geometry={nodes.mesh0_mesh_8.geometry}
        material={materials.PaletteMaterial001}
      />
      <mesh
        name="mesh0_mesh_9"
        castShadow
        receiveShadow
        geometry={nodes.mesh0_mesh_9.geometry}
        material={materials.PaletteMaterial001}
      />
      <mesh
        name="mesh0_mesh_10"
        castShadow
        receiveShadow
        geometry={nodes.mesh0_mesh_10.geometry}
        material={materials.PaletteMaterial001}
      />
      <mesh
        name="mesh0_mesh_11"
        castShadow
        receiveShadow
        geometry={nodes.mesh0_mesh_11.geometry}
        material={materials.PaletteMaterial001}
      />
      <mesh
        name="mesh0_mesh_12"
        castShadow
        receiveShadow
        geometry={nodes.mesh0_mesh_12.geometry}
        material={materials.PaletteMaterial001}
      />
      <mesh
        name="mesh0_mesh_13"
        castShadow
        receiveShadow
        geometry={nodes.mesh0_mesh_13.geometry}
        material={materials.PaletteMaterial001}
      />
      <mesh
        name="mesh0_mesh_14"
        castShadow
        receiveShadow
        geometry={nodes.mesh0_mesh_14.geometry}
        material={materials.PaletteMaterial001}
      />
      <mesh
        name="mesh0_mesh_15"
        castShadow
        receiveShadow
        geometry={nodes.mesh0_mesh_15.geometry}
        material={materials.PaletteMaterial001}
      />
      <mesh
        name="mesh0_mesh_16"
        castShadow
        receiveShadow
        geometry={nodes.mesh0_mesh_16.geometry}
        material={materials.PaletteMaterial001}
      />
      <mesh
        name="mesh0_mesh_17"
        castShadow
        receiveShadow
        geometry={nodes.mesh0_mesh_17.geometry}
        material={materials.PaletteMaterial001}
      />
      <mesh
        name="mesh476_mesh"
        castShadow
        receiveShadow
        geometry={nodes.mesh476_mesh.geometry}
        material={materials.PaletteMaterial001}
      />
      <mesh
        name="mesh476_mesh_1"
        castShadow
        receiveShadow
        geometry={nodes.mesh476_mesh_1.geometry}
        material={materials.PaletteMaterial001}
      />
      <mesh
        name="mesh476_mesh_2"
        castShadow
        receiveShadow
        geometry={nodes.mesh476_mesh_2.geometry}
        material={materials.PaletteMaterial001}
      />
      <mesh
        name="mesh476_mesh_3"
        castShadow
        receiveShadow
        geometry={nodes.mesh476_mesh_3.geometry}
        material={materials.PaletteMaterial001}
      />
      <mesh
        name="mesh476_mesh_4"
        castShadow
        receiveShadow
        geometry={nodes.mesh476_mesh_4.geometry}
        material={materials.PaletteMaterial001}
      />
      <mesh
        name="mesh476_mesh_5"
        castShadow
        receiveShadow
        geometry={nodes.mesh476_mesh_5.geometry}
        material={materials.PaletteMaterial001}
      />
      <mesh
        name="mesh476_mesh_6"
        castShadow
        receiveShadow
        geometry={nodes.mesh476_mesh_6.geometry}
        material={materials.PaletteMaterial001}
      />
      <mesh
        name="mesh476_mesh_7"
        castShadow
        receiveShadow
        geometry={nodes.mesh476_mesh_7.geometry}
        material={materials.PaletteMaterial001}
      />
      <mesh
        name="mesh476_mesh_8"
        castShadow
        receiveShadow
        geometry={nodes.mesh476_mesh_8.geometry}
        material={materials.PaletteMaterial001}
      />
      <mesh
        name="mesh476_mesh_9"
        castShadow
        receiveShadow
        geometry={nodes.mesh476_mesh_9.geometry}
        material={materials.PaletteMaterial001}
      />
      <mesh
        name="mesh476_mesh_10"
        castShadow
        receiveShadow
        geometry={nodes.mesh476_mesh_10.geometry}
        material={materials.PaletteMaterial001}
      />
      <mesh
        name="mesh476_mesh_11"
        castShadow
        receiveShadow
        geometry={nodes.mesh476_mesh_11.geometry}
        material={materials.PaletteMaterial001}
      />
      <mesh
        name="mesh476_mesh_12"
        castShadow
        receiveShadow
        geometry={nodes.mesh476_mesh_12.geometry}
        material={materials.PaletteMaterial001}
      />
      <mesh
        name="mesh476_mesh_13"
        castShadow
        receiveShadow
        geometry={nodes.mesh476_mesh_13.geometry}
        material={materials.PaletteMaterial001}
      />
      <mesh
        name="mesh476_mesh_14"
        castShadow
        receiveShadow
        geometry={nodes.mesh476_mesh_14.geometry}
        material={materials.PaletteMaterial001}
      />
      <mesh
        name="mesh476_mesh_15"
        castShadow
        receiveShadow
        geometry={nodes.mesh476_mesh_15.geometry}
        material={materials.PaletteMaterial001}
      />
      <mesh
        name="mesh476_mesh_16"
        castShadow
        receiveShadow
        geometry={nodes.mesh476_mesh_16.geometry}
        material={materials.PaletteMaterial001}
      />
      <mesh
        name="mesh476_mesh_17"
        castShadow
        receiveShadow
        geometry={nodes.mesh476_mesh_17.geometry}
        material={materials.PaletteMaterial001}
      />
      <mesh
        name="mesh476_mesh_18"
        castShadow
        receiveShadow
        geometry={nodes.mesh476_mesh_18.geometry}
        material={materials.PaletteMaterial001}
      />
      <mesh
        name="mesh476_mesh_19"
        castShadow
        receiveShadow
        geometry={nodes.mesh476_mesh_19.geometry}
        material={materials.PaletteMaterial001}
      />
      <mesh
        name="mesh476_mesh_20"
        castShadow
        receiveShadow
        geometry={nodes.mesh476_mesh_20.geometry}
        material={materials.PaletteMaterial001}
      />
      <mesh
        name="mesh476_mesh_21"
        castShadow
        receiveShadow
        geometry={nodes.mesh476_mesh_21.geometry}
        material={materials.PaletteMaterial001}
      />
      <mesh
        name="mesh476_mesh_22"
        castShadow
        receiveShadow
        geometry={nodes.mesh476_mesh_22.geometry}
        material={materials.PaletteMaterial001}
      />
      <mesh
        name="mesh476_mesh_23"
        castShadow
        receiveShadow
        geometry={nodes.mesh476_mesh_23.geometry}
        material={materials.PaletteMaterial001}
      />
      <mesh
        name="mesh476_mesh_24"
        castShadow
        receiveShadow
        geometry={nodes.mesh476_mesh_24.geometry}
        material={materials.PaletteMaterial001}
      />
      <mesh
        name="mesh476_mesh_25"
        castShadow
        receiveShadow
        geometry={nodes.mesh476_mesh_25.geometry}
        material={materials.PaletteMaterial001}
      />
    </group>
  )
}

useGLTF.preload('/assets/farmbot/3D/models/rotary_tool.glb')
