Skip to content

Commit 145fcaa

Browse files
committed
support container as example
add z index
1 parent a79c0a8 commit 145fcaa

2 files changed

Lines changed: 13 additions & 0 deletions

File tree

unilabos/resources/resource_tracker.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717

1818
EXTRA_CLASS = "unilabos_resource_class"
19+
FRONTEND_POSE_EXTRA = "unilabos_frontend_pose_extra"
1920
EXTRA_SAMPLE_UUID = "sample_uuid"
2021
EXTRA_UNILABOS_SAMPLE_UUID = "unilabos_sample_uuid"
2122

@@ -74,6 +75,14 @@ class ResourceDictPositionObject(BaseModel):
7475
z: float = Field(description="Z coordinate", default=0.0)
7576

7677

78+
class ResourceDictPoseExtraObjectType(BaseModel):
79+
z_index: int
80+
81+
82+
class ResourceDictPoseExtraObject(BaseModel):
83+
z_index: Optional[int] = Field(alias="zIndex", default=None)
84+
85+
7786
class ResourceDictPositionType(TypedDict):
7887
size: ResourceDictPositionSizeType
7988
scale: ResourceDictPositionScaleType
@@ -100,6 +109,7 @@ class ResourceDictPosition(BaseModel):
100109
cross_section_type: Literal["rectangle", "circle", "rounded_rectangle"] = Field(
101110
description="Cross section type", default="rectangle"
102111
)
112+
extra: Optional[ResourceDictPoseExtraObject] = Field(description="Extra data", default=None)
103113

104114

105115
class ResourceDictType(TypedDict):
@@ -463,6 +473,7 @@ def resource_plr_inner(
463473
"position3d": raw_pos,
464474
"rotation": d["rotation"],
465475
"cross_section_type": d.get("cross_section_type", "rectangle"),
476+
"extra": extra.get(FRONTEND_POSE_EXTRA)
466477
}
467478

468479
# 先构建当前节点的字典(不包含children)
@@ -548,6 +559,7 @@ def collect_node_data(node: ResourceDictInstance, name_to_uuid: dict, all_states
548559
name_to_uuid[node.res_content.name] = node.res_content.uuid
549560
all_states[node.res_content.name] = node.res_content.data
550561
name_to_extra[node.res_content.name] = node.res_content.extra
562+
name_to_extra[node.res_content.name][FRONTEND_POSE_EXTRA] = node.res_content.pose.extra
551563
name_to_extra[node.res_content.name][EXTRA_CLASS] = node.res_content.klass
552564
for child in node.children:
553565
collect_node_data(child, name_to_uuid, all_states, name_to_extra)

unilabos/test/experiments/prcxi_9320_slim.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@
8383
"depth": 0
8484
},
8585
"content_type": [
86+
"container",
8687
"plate",
8788
"tip_rack",
8889
"plates",

0 commit comments

Comments
 (0)