use serde::{Deserialize,Serialize};
use super::AppearancePlan;
use crate::types::mesh::MeshData;
#[derive(Debug,Clone,Deserialize)]
#[serde(rename_all="camelCase",deny_unknown_fields)]
pub struct CapturedMesh {
pub positions:Vec<[f64;3]>,
pub triangles:Vec<[u32;3]>,
pub uvs:Vec<[f64;2]>,
pub uv_triangles:Vec<[u32;3]>,
}
#[derive(Debug,Clone,Deserialize)]
#[serde(rename_all="camelCase",deny_unknown_fields)]
pub struct CapturedMeshRequest {
pub schema:String,
pub source_revision:String,
pub next_express_id:u32,
pub container_id:u32,
#[serde(rename="GlobalId")]
pub global_id:String,
pub containment_global_id:String,
#[serde(rename="Name")]
pub name:String,
pub image_uri:String,
#[serde(default)]
pub repeat_s:bool,
#[serde(default)]
pub repeat_t:bool,
pub mesh:CapturedMesh,
}
#[derive(Debug,Serialize)]
#[serde(rename_all="camelCase")]
pub struct CapturedMeshPlan {
pub plan:AppearancePlan,
pub object_id:u32,
pub geometry_item_id:u32,
pub mesh:MeshData,
pub coordinate_space:&'static str,
pub rtc_offset:[f64;3],
}