-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathObject3D.py
126 lines (95 loc) · 3.81 KB
/
Object3D.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
126
class Object3D:
def __init__(self, handle=None):
self.swerveHandle = handle
self.uo = None
self.ii = False
def get_user_id(self):
# Substituir por implementação real
pass
def get_animation_track_count(self):
# Substituir por implementação real
pass
def set_user_id(self, user_id):
# Substituir por implementação real
pass
def get_animation_track(self, index):
# Substituir por implementação real
track_handle = self.get_animation_track_impl(index)
return Engine.instantiate_java_peer(track_handle)
def get_animation_track_impl(self, index):
# Substituir por implementação real
pass
def add_animation_track(self, animation_track):
self.add_animation_track_impl(animation_track)
Engine.add_xot(animation_track)
def add_animation_track_impl(self, animation_track):
# Substituir por implementação real
pass
def remove_animation_track(self, animation_track):
# Substituir por implementação real
pass
def animate(self, param):
# Substituir por implementação real
pass
def find(self, user_id):
object3d_handle = self.find_impl(user_id)
return Engine.instantiate_java_peer(object3d_handle)
def find_impl(self, user_id):
# Substituir por implementação real
pass
def get_references_impl(self, references):
# Substituir por implementação real
pass
def get_references(self, references):
c_references = self.get_references_impl(None)
if references is None:
return c_references
if len(references) < c_references:
raise ValueError("Insufficient space in references array.")
handles = [0] * len(references)
len_references = self.get_references_impl(handles)
if len_references > c_references:
len_references = c_references
for i in range(len_references):
references[i] = Engine.instantiate_java_peer(handles[i])
return len_references
def remove_user_parameters(self):
# Substituir por implementação real
pass
def get_user_parameter_id(self, param):
# Substituir por implementação real
pass
def get_user_parameter_value(self, param, byte_array):
# Substituir por implementação real
pass
def duplicate_impl(self):
# Substituir por implementação real
pass
def duplicate(self):
duplicate_object = Engine.instantiate_java_peer(self.duplicate_impl())
self.duplicate_helper(duplicate_object, self)
return duplicate_object
@staticmethod
def duplicate_helper(dst, src):
dst.set_user_object(src.uo)
if isinstance(src, Group):
src_group = src
dst_group = dst
children = src_group.get_child_count()
for child in range(children):
try:
Object3D.duplicate_helper(dst_group.get_child(child), src_group.get_child(child))
except IndexError:
break
elif isinstance(src, SkinnedMesh):
Object3D.duplicate_helper(dst.get_skeleton(), src.get_skeleton())
def get_user_object(self):
return self.uo
def set_user_object(self, user_object):
self.uo = user_object
if self.uo is not None:
Engine.add_xot(self)
@staticmethod
def engine_cache_fid():
Engine.cache_fid(Object3D, 0)
# Substitua o código das classes Engine, Group, SkinnedMesh e outros tipos com as implementações apropriadas para seu contexto.