Source code for trescope.controller.VisualDataPickControl
from typing import List, Union
from trescope.controller import ControllerNode
class BoundingBox2D():
"""
Image bounding box .
"""
def __init__(self, x, y, width, height):
self.__x = x
self.__y = y
self.__width = width
self.__height = height
def __str__(self):
return f'(bbox2d,{self.__x},{self.__y},{self.__width},{self.__height})'
[docs]class VisualDataPickControl(ControllerNode):
"""
Control for picking visual data , now support **Mesh3D** , **Scatter3D** and **Image bounding box** .
"""
def __init__(self):
super().__init__()
self.__attachOutput = None
self.__colorWhenPicked: int = 0xff888888
self.__defaultValue: List = []
[docs] def attachOutput(self, id: Union[str, int]):
"""
Specify which output to pick data .
:param id: output id
:return: self , for chain call
"""
self.__attachOutput = id
return self
[docs] def colorWhenPicked(self, color: int):
"""
Specify color when data picked .
:param color: color , default 0xff888888 (means light white with no transparency)
:return: self , for chain call
"""
self.__colorWhenPicked = color
return self
[docs] def defaultValue(self, *value):
"""
Specify default data picked .
:param value: value
:return: self , for chain call
"""
self.__defaultValue = value
return self
def toDict(self):
return {**super().toDict(),
'type': 'VisualDataPickControl',
'attachOutput': self.__attachOutput,
'colorWhenPicked': self.__colorWhenPicked,
'value': list(map(str, self.__defaultValue))
}