tripo_api/tasks/
convert_model.rs1use serde::{Deserialize, Serialize};
4
5use crate::enums::{ExportOrientation, FbxPreset, OutputFormat, TextureFormat};
6
7#[derive(Debug, Clone, Serialize, Deserialize)]
9#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
10#[serde(deny_unknown_fields)]
11pub struct ConvertModelRequest {
12 pub original_model_task_id: String,
14 pub format: OutputFormat,
16 #[serde(skip_serializing_if = "Option::is_none")]
18 pub quad: Option<bool>,
19 #[serde(skip_serializing_if = "Option::is_none")]
21 pub force_symmetry: Option<bool>,
22 #[serde(skip_serializing_if = "Option::is_none")]
24 pub face_limit: Option<i32>,
25 #[serde(skip_serializing_if = "Option::is_none")]
27 pub flatten_bottom: Option<bool>,
28 #[serde(skip_serializing_if = "Option::is_none")]
30 pub flatten_bottom_threshold: Option<f64>,
31 #[serde(skip_serializing_if = "Option::is_none")]
33 pub texture_size: Option<i32>,
34 #[serde(skip_serializing_if = "Option::is_none")]
36 pub texture_format: Option<TextureFormat>,
37 #[serde(skip_serializing_if = "Option::is_none")]
39 pub scale_factor: Option<f64>,
40 #[serde(skip_serializing_if = "Option::is_none")]
42 pub pivot_to_center_bottom: Option<bool>,
43 #[serde(skip_serializing_if = "Option::is_none")]
45 pub with_animation: Option<bool>,
46 #[serde(skip_serializing_if = "Option::is_none")]
48 pub pack_uv: Option<bool>,
49 #[serde(skip_serializing_if = "Option::is_none")]
51 pub bake: Option<bool>,
52 #[serde(skip_serializing_if = "Option::is_none")]
54 pub part_names: Option<Vec<String>>,
55 #[serde(skip_serializing_if = "Option::is_none")]
57 pub export_vertex_colors: Option<bool>,
58 #[serde(skip_serializing_if = "Option::is_none")]
60 pub fbx_preset: Option<FbxPreset>,
61 #[serde(skip_serializing_if = "Option::is_none")]
63 pub export_orientation: Option<ExportOrientation>,
64 #[serde(skip_serializing_if = "Option::is_none")]
66 pub animate_in_place: Option<bool>,
67}