-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathview_skeleton.py
59 lines (41 loc) · 1.52 KB
/
view_skeleton.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
# Author: Anish Moorthy
import sys
from pydart2.gui.pyqt5.window import PyQt5Window
from pydart2.gui.trackball import Trackball
import pydart2 as pydart
import argparse
import math
from amc import Skel_AMC
def getViewer(sim, title=None):
win = PyQt5Window(sim, title)
win.scene.add_camera(Trackball(theta=0, phi = 0, zoom=1.2,trans=[0,0.0,-30]), 'Hopper_camera')
win.scene.set_camera(win.scene.num_cameras()-1)
#win.run()
return win
class MovieWorld(pydart.World):
def __init__(self, *args):
pydart.World.__init__(self, *args)
self.amc = None
self.count = 0
def set_amc(self, amc):
self.amc = amc
def render_with_ri(self, ri):
self.count += 1
ri.render_axes([0,0,0], 5, r_base_ = .2)
if self.amc is not None:
self.amc.sync_angles(self.count % len(self.amc.frames))
if __name__ == '__main__':
parser = argparse.ArgumentParser(description="Views a skel file")
parser.add_argument("--skel", dest="skel_path", required=True)
parser.add_argument("--asf", dest="asf_path", required=True)
parser.add_argument("--amc", dest="amc_path", required=False, default=None)
args = parser.parse_args()
pydart.init(verbose=True)
print('pydart initialization OK')
world = MovieWorld(0.0002, args.skel_path)
skel = world.skeletons[1]
amc = Skel_AMC(skel, args.amc_path, args.asf_path) if args.amc_path is not None else None
world.set_amc(amc)
print('pydart create_world OK')
window = getViewer(world)
window.run()