Skip to content

Commit 9d9699c

Browse files
gserena01gserenajessfraz
authored
add face and edge uuids to responses that make more geometry: (#863)
* add face and edge uuids to responses that make more geometry: * cleanup: * add default * change defn location * quick fix * add obj id * use faceedgeinfo alone * Update modeling-cmds/src/ok_response.rs Co-authored-by: Jess Frazelle <jessfraz@users.noreply.github.com> * Update modeling-cmds/src/ok_response.rs Co-authored-by: Jess Frazelle <jessfraz@users.noreply.github.com> * Update modeling-cmds/src/ok_response.rs Co-authored-by: Jess Frazelle <jessfraz@users.noreply.github.com> * Update modeling-cmds/src/ok_response.rs Co-authored-by: Jess Frazelle <jessfraz@users.noreply.github.com> * Update modeling-cmds/src/ok_response.rs Co-authored-by: Jess Frazelle <jessfraz@users.noreply.github.com> * Update modeling-cmds/src/ok_response.rs Co-authored-by: Jess Frazelle <jessfraz@users.noreply.github.com> * cleanup * add back the entity_ids --------- Co-authored-by: gserena <serena@zoo.dev> Co-authored-by: Jess Frazelle <jessfraz@users.noreply.github.com>
1 parent a1be026 commit 9d9699c

File tree

1 file changed

+39
-2
lines changed

1 file changed

+39
-2
lines changed

modeling-cmds/src/ok_response.rs

Lines changed: 39 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -766,44 +766,81 @@ define_ok_modeling_cmd_response_enum! {
766766
pub max_distance: LengthUnit,
767767
}
768768

769+
/// Faces and edges id info (most used in identifying geometry in patterned and mirrored objects).
770+
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
771+
pub struct FaceEdgeInfo {
772+
/// The UUID of the object.
773+
pub object_id: Uuid,
774+
/// The faces of each object.
775+
pub faces: Vec<Uuid>,
776+
/// The edges of each object.
777+
pub edges: Vec<Uuid>,
778+
}
779+
769780
/// The response from the `EntityClone` command.
770781
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
771782
pub struct EntityClone {
783+
/// The UUIDs of the entities that were created.
784+
#[serde(default, skip_serializing_if = "Vec::is_empty")]
785+
pub entity_ids: Vec<Uuid>,
786+
/// The Face and Edge Ids of the cloned entity.
787+
#[serde(default, skip_serializing_if = "Vec::is_empty")]
788+
pub face_edge_ids: Vec<FaceEdgeInfo>,
772789
}
773790

774791
/// The response from the `EntityLinearPatternTransform` command.
775792
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
776793
pub struct EntityLinearPatternTransform {
777794
/// The UUIDs of the entities that were created.
795+
#[serde(default, skip_serializing_if = "Vec::is_empty")]
778796
pub entity_ids: Vec<Uuid>,
797+
/// The Face, edge, and entity ids of the patterned entities.
798+
#[serde(default, skip_serializing_if = "Vec::is_empty")]
799+
pub entity_face_edge_ids: Vec<FaceEdgeInfo>,
779800
}
780801

781802
/// The response from the `EntityLinearPattern` command.
782803
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
783804
pub struct EntityLinearPattern {
784805
/// The UUIDs of the entities that were created.
806+
#[serde(default, skip_serializing_if = "Vec::is_empty")]
785807
pub entity_ids: Vec<Uuid>,
808+
/// The Face, edge, and entity ids of the patterned entities.
809+
#[serde(default, skip_serializing_if = "Vec::is_empty")]
810+
pub entity_face_edge_ids: Vec<FaceEdgeInfo>,
786811
}
787812

788813
/// The response from the `EntityCircularPattern` command.
789814
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
790815
pub struct EntityCircularPattern {
791816
/// The UUIDs of the entities that were created.
817+
#[serde(default, skip_serializing_if = "Vec::is_empty")]
792818
pub entity_ids: Vec<Uuid>,
819+
/// The Face, edge, and entity ids of the patterned entities.
820+
#[serde(default, skip_serializing_if = "Vec::is_empty")]
821+
pub entity_face_edge_ids: Vec<FaceEdgeInfo>,
793822
}
794823

795824
/// The response from the `EntityMirror` endpoint.
796825
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
797826
pub struct EntityMirror {
798827
/// The UUIDs of the entities that were created.
799-
pub entity_ids: Vec<Uuid>
828+
#[serde(default, skip_serializing_if = "Vec::is_empty")]
829+
pub entity_ids: Vec<Uuid>,
830+
/// The Face, edge, and entity ids of the patterned entities.
831+
#[serde(default, skip_serializing_if = "Vec::is_empty")]
832+
pub entity_face_edge_ids: Vec<FaceEdgeInfo>,
800833
}
801834

802835
/// The response from the `EntityMirrorAcrossEdge` endpoint.
803836
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
804837
pub struct EntityMirrorAcrossEdge {
805838
/// The UUIDs of the entities that were created.
806-
pub entity_ids: Vec<Uuid>
839+
#[serde(default, skip_serializing_if = "Vec::is_empty")]
840+
pub entity_ids: Vec<Uuid>,
841+
/// The Face, edge, and entity ids of the patterned entities.
842+
#[serde(default, skip_serializing_if = "Vec::is_empty")]
843+
pub entity_face_edge_ids: Vec<FaceEdgeInfo>,
807844
}
808845

809846
/// The response from the `EntityMakeHelix` endpoint.

0 commit comments

Comments
 (0)