-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathcustom_property.py
125 lines (117 loc) · 5.01 KB
/
custom_property.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
from ase.atoms import default
import bpy
from bpy.props import (StringProperty,
BoolProperty,
BoolVectorProperty,
IntProperty,
IntVectorProperty,
FloatProperty,
FloatVectorProperty,
EnumProperty,
PointerProperty,
)
class BlaseBatoms(bpy.types.PropertyGroup):
"""
"""
is_batoms: BoolProperty(name="is_batoms", default=False)
model_type: EnumProperty(
name="model_type",
description="Structural models",
items=(('0',"Space-filling", "Use ball"),
('1',"Ball-and-stick", "Use ball and stick"),
('2',"Polyhedral","Use polyhedral"),
('3',"Wireframe", "Use wireframe")),
default='0')
polyhedra_type: EnumProperty(
name="polyhedra_type",
description="Polhhedra models",
items=(('0',"atoms, bonds and polyhedra", "atoms, bonds and polyhedra"),
('1',"atoms, polyhedra", "atoms, polyhedra"),
('2',"central atoms, polyhedra","central atoms, polyhedra"),
('3',"polyhedra", "polyhedra")),
default='0')
pbc: BoolVectorProperty(name="pbc", default = [False, False, False], size = 3)
cell: FloatVectorProperty(name="cell", default = [0, 0, 0, 0, 0, 0, 0, 0, 0], size = 9)
show_unit_cell: BoolProperty(name="show_unit_cell", default = True)
boundary: FloatVectorProperty(name="boundary", default = [0.0, 1.0, 0.0, 1.0, 0.0, 1.0], size = 6)
class BlaseBatom(bpy.types.PropertyGroup):
"""
"""
is_batom: BoolProperty(name="is_batom", default=False)
label: StringProperty(name="species", default = 'X')
species: StringProperty(name="species", default = 'X')
element: StringProperty(name="element", default = '')
radius: FloatProperty(name="radius")
class BlaseBcell(bpy.types.PropertyGroup):
"""
"""
is_bcell: BoolProperty(name="is_bcell", default=False)
label: StringProperty(name="label", default = '')
class BlaseBond(bpy.types.PropertyGroup):
"""
"""
symbol1: StringProperty(name="symbol1")
symbol2: StringProperty(name="symbol2")
name:StringProperty(name = "name")
min: FloatProperty(name="min", description = "min", default = 0.0)
max: FloatProperty(name="max", description = "max", default = 2.0)
search: IntProperty(name="search", default=0)
polyhedra: BoolProperty(name="polyhedra", default=False)
color1: FloatVectorProperty(name="color1", size = 4)
color2: FloatVectorProperty(name="color1", size = 4)
width: FloatProperty(name="width", default = 0.10)
style: EnumProperty(
name="style",
description="bond style",
items=(('0',"Unicolor cylinder", ""),
('1',"Bicolor cylinder", ""),
('2',"Dashed line", ""),
('3',"Dotted line", "")),
default='1')
def as_list(self) -> list:
return [self.min, self.max, self.search, self.polyhedra, self.color1, self.color2, self.width, self.style]
def __repr__(self) -> str:
s = '-'*60 + '\n'
s = 'Bondpair min max Search_bond Polyhedra \n'
s += '{0:10s} {1:4.3f} {2:4.3f} {3:10s} {4:10s} \n'.format(\
self.name, self.min, self.max, str(self.search), str(self.polyhedra))
s += '-'*60 + '\n'
return s
class BlasePolyhedra(bpy.types.PropertyGroup):
"""
"""
symbol: StringProperty(name="symbol")
name:StringProperty(name = "name")
color: FloatVectorProperty(name="color", size = 4)
edgewidth: FloatProperty(name="edgewidth", default = 0.10)
def as_list(self) -> list:
return [self.color, self.edgewidth]
def __repr__(self) -> str:
s = '-'*60 + '\n'
s = 'Center color edgewidth \n'
s += '{0:10s} [{1:1.2f} {2:1.2f} {3:1.2f} {4:1.2f}] {5:1.3f} \n'.format(\
self.symbol, self.color[0], self.color[1], self.color[2], self.color[3], self.edgewidth)
s += '-'*60 + '\n'
return s
class BlaseIsosurface(bpy.types.PropertyGroup):
"""
"""
name: StringProperty(name = "name")
npoint: IntProperty(name="npoint")
level: FloatProperty(name="level", default = 0.10)
color: FloatVectorProperty(name="color", size = 4, default = [1, 1, 0, 0.5])
def as_list(self) -> list:
return [self.level, self.color]
def __repr__(self) -> str:
s = '-'*60 + '\n'
s = 'Name level color \n'
s += '{0:10s} {1:1.6f} [{2:1.2f} {3:1.2f} {4:1.2f} {5:1.2f}] \n'.format(\
self.name, self.level, self.color[0], self.color[1], self.color[2], self.color[3])
s += '-'*60 + '\n'
return s
class BlaseVolume(bpy.types.PropertyGroup):
"""
"""
is_blasevolume: BoolProperty(name="is_blasevolume", default=False)
npoint: IntProperty(name="npoint")
shape: IntVectorProperty(name="shape", size = 3)