@@ -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