1- from meshroom .core .desc import ListAttribute , GroupAttribute , FloatParam
1+ from meshroom .core .desc import ListAttribute , GroupAttribute , StringParam , FloatParam , Geometry , Size2d , Vec2d
22
33class Shape (GroupAttribute ):
44 """
55 Base attribute for all Shape attribute.
66 Countains several attributes (inherit from GroupAttribute).
77 """
8- def __init__ (self , groupDesc , name , label , description , group = "allParams" , advanced = False , semantic = "" ,
8+ def __init__ (self , geometryGroupDesc , name , label , description , group = "allParams" , advanced = False , semantic = "" ,
99 enabled = True , visible = True , exposed = False ):
10+ # Shape group desciption
11+ groupDesc = [
12+ StringParam (name = "userName" , label = "User Name" , description = "User shape name." , value = "" ,
13+ group = group , advanced = advanced , enabled = enabled , visible = visible , exposed = exposed ),
14+ StringParam (name = "userColor" , label = "User Color" , description = "User shape color." , value = "#2a82da" ,
15+ group = group , advanced = advanced , enabled = enabled , visible = visible , exposed = exposed ),
16+ Geometry (geometryGroupDesc , name = "geometry" , label = "Geometry" , description = "Shape geometry." ,
17+ group = group , advanced = advanced , enabled = enabled , visible = visible , exposed = exposed )
18+ ]
1019 # GroupAttribute constructor
1120 super (Shape , self ).__init__ (groupDesc = groupDesc , name = name , label = label , description = description ,
1221 group = group , advanced = advanced , semantic = semantic ,
@@ -40,42 +49,23 @@ def getInstanceType(self):
4049 from meshroom .core .attribute import ShapeListAttribute
4150 return ShapeListAttribute
4251
43- class Size2d (Shape ):
44- """
45- Size2d is a Shape attribute that allows to specify a 2d size.
46- Note: This attribute is not displayable.
47- """
48- def __init__ (self , name , label , description , keyable = False , keyType = None ,
49- group = "allParams" , advanced = False , semantic = "" ,
50- enabled = True , visible = True , exposed = False ):
51- # Shape group desciption
52- groupDesc = [
53- FloatParam (name = "width" , label = "Width" , description = "Width size." , value = - 1.0 , keyable = keyable , keyType = keyType ,
54- group = group , advanced = advanced , enabled = enabled , visible = visible , exposed = exposed ),
55- FloatParam (name = "height" , label = "Height" , description = "Height size." , value = - 1.0 , keyable = keyable , keyType = keyType ,
56- group = group , advanced = advanced , enabled = enabled , visible = visible , exposed = exposed )
57- ]
58- # ShapeAttribute constructor
59- super (Size2d , self ).__init__ (groupDesc , name , label , description , group = None , advanced = advanced , semantic = semantic ,
60- enabled = enabled , visible = visible , exposed = exposed )
61-
6252class Point2d (Shape ):
6353 """
6454 Point2d is a Shape attribute that allows to display and modify a 2d point.
6555 """
6656 def __init__ (self , name , label , description , keyable = False , keyType = None ,
6757 group = "allParams" , advanced = False , semantic = "" ,
6858 enabled = True , visible = True , exposed = False ):
69- # Shape group desciption
70- groupDesc = [
59+ # Geometry group desciption
60+ geometryGroupDesc = [
7161 FloatParam (name = "x" , label = "X" , description = "X coordinate." , value = - 1.0 , keyable = keyable , keyType = keyType ,
7262 group = group , advanced = advanced , enabled = enabled , visible = visible , exposed = exposed ),
7363 FloatParam (name = "y" , label = "Y" , description = "Y coordinate." , value = - 1.0 , keyable = keyable , keyType = keyType ,
7464 group = group , advanced = advanced , enabled = enabled , visible = visible , exposed = exposed )
7565 ]
7666 # ShapeAttribute constructor
77- super (Point2d , self ).__init__ (groupDesc , name , label , description , group = None , advanced = advanced , semantic = semantic ,
78- enabled = enabled , visible = visible , exposed = exposed )
67+ super (Point2d , self ).__init__ (geometryGroupDesc , name , label , description , group = None , advanced = advanced ,
68+ semantic = semantic , enabled = enabled , visible = visible , exposed = exposed )
7969
8070class Line2d (Shape ):
8171 """
@@ -84,16 +74,16 @@ class Line2d(Shape):
8474 def __init__ (self , name , label , description , keyable = False , keyType = None ,
8575 group = "allParams" , advanced = False , semantic = "" ,
8676 enabled = True , visible = True , exposed = False ):
87- # Shape group desciption
88- groupDesc = [
89- Point2d (name = "a" , label = "A" , description = "Line A point." , keyable = keyable , keyType = keyType ,
90- group = group , advanced = advanced , enabled = enabled , visible = visible , exposed = exposed ),
91- Point2d (name = "b" , label = "B" , description = "Line B point." , keyable = keyable , keyType = keyType ,
92- group = group , advanced = advanced , enabled = enabled , visible = visible , exposed = exposed )
77+ # Geometry group desciption
78+ geometryGroupDesc = [
79+ Vec2d (name = "a" , label = "A" , description = "Line A point." , x = - 1.0 , y = - 1.0 , keyable = keyable , keyType = keyType ,
80+ group = group , advanced = advanced , enabled = enabled , visible = visible , exposed = exposed ),
81+ Vec2d (name = "b" , label = "B" , description = "Line B point." , x = - 1.0 , y = - 1.0 , keyable = keyable , keyType = keyType ,
82+ group = group , advanced = advanced , enabled = enabled , visible = visible , exposed = exposed )
9383 ]
9484 # ShapeAttribute constructor
95- super (Line2d , self ).__init__ (groupDesc , name , label , description , group = None , advanced = advanced , semantic = semantic ,
96- enabled = enabled , visible = visible , exposed = exposed )
85+ super (Line2d , self ).__init__ (geometryGroupDesc , name , label , description , group = None , advanced = advanced ,
86+ semantic = semantic , enabled = enabled , visible = visible , exposed = exposed )
9787
9888class Rectangle (Shape ):
9989 """
@@ -102,16 +92,18 @@ class Rectangle(Shape):
10292 def __init__ (self , name , label , description , keyable = False , keyType = None ,
10393 group = "allParams" , advanced = False , semantic = "" ,
10494 enabled = True , visible = True , exposed = False ):
105- # Shape group desciption
106- groupDesc = [
107- Point2d (name = "center" , label = "Center" , description = "Rectangle center." , keyable = keyable , keyType = keyType ,
108- group = group , advanced = advanced , enabled = enabled , visible = visible , exposed = exposed ),
109- Size2d (name = "size" , label = "Size" , description = "Rectangle size." , keyable = keyable , keyType = keyType ,
110- group = group , advanced = advanced , enabled = enabled , visible = visible , exposed = exposed )
95+ # Geometry group desciption
96+ geometryGroupDesc = [
97+ Vec2d (name = "center" , label = "Center" , description = "Rectangle center." , x = - 1.0 , y = - 1.0 ,
98+ keyable = keyable , keyType = keyType , group = group , advanced = advanced ,
99+ enabled = enabled , visible = visible , exposed = exposed ),
100+ Size2d (name = "size" , label = "Size" , description = "Rectangle size." , width = - 1.0 , height = - 1.0 ,
101+ keyable = keyable , keyType = keyType , group = group , advanced = advanced ,
102+ enabled = enabled , visible = visible , exposed = exposed )
111103 ]
112104 # ShapeAttribute constructor
113- super (Rectangle , self ).__init__ (groupDesc , name , label , description , group = None , advanced = advanced , semantic = semantic ,
114- enabled = enabled , visible = visible , exposed = exposed )
105+ super (Rectangle , self ).__init__ (geometryGroupDesc , name , label , description , group = None , advanced = advanced ,
106+ semantic = semantic , enabled = enabled , visible = visible , exposed = exposed )
115107
116108class Circle (Shape ):
117109 """
@@ -120,13 +112,15 @@ class Circle(Shape):
120112 def __init__ (self , name , label , description , keyable = False , keyType = None ,
121113 group = "allParams" , advanced = False , semantic = "" ,
122114 enabled = True , visible = True , exposed = False ):
123- # Shape group desciption
124- groupDesc = [
125- Point2d (name = "center" , label = "Center" , description = "Circle center." , keyable = keyable , keyType = keyType ,
126- group = group , advanced = advanced , enabled = enabled , visible = visible , exposed = exposed ),
127- FloatParam (name = "radius" , label = "Radius" , description = "Circle radius." , value = - 1.0 , keyable = keyable , keyType = keyType ,
128- group = group , advanced = advanced , enabled = enabled , visible = visible , exposed = exposed )
115+ # Geometry group desciption
116+ geometryGroupDesc = [
117+ Vec2d (name = "center" , label = "Center" , description = "Circle center." , x = - 1.0 , y = - 1.0 ,
118+ keyable = keyable , keyType = keyType , group = group , advanced = advanced ,
119+ enabled = enabled , visible = visible , exposed = exposed ),
120+ FloatParam (name = "radius" , label = "Radius" , description = "Circle radius." , value = - 1.0 ,
121+ keyable = keyable , keyType = keyType , group = group , advanced = advanced ,
122+ enabled = enabled , visible = visible , exposed = exposed )
129123 ]
130124 # ShapeAttribute constructor
131- super (Circle , self ).__init__ (groupDesc , name , label , description , group = None , advanced = advanced , semantic = semantic ,
132- enabled = enabled , visible = visible , exposed = exposed )
125+ super (Circle , self ).__init__ (geometryGroupDesc , name , label , description , group = None , advanced = advanced ,
126+ semantic = semantic , enabled = enabled , visible = visible , exposed = exposed )
0 commit comments