Normand Briere
2019-09-04 c8bb659043bfa0ccf9436d7cbbc49255b4c82402
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
//import java.util.Vector;
 
class FrameSelector extends Object3D implements java.io.Serializable
{
    static final long serialVersionUID = -8438337215051725645L;
 
    Mocap mocap;
    
    FrameSelector(Mocap mocap)
    {
        this.mocap = mocap;
        
        name = "Frame:" + mocap.name;
        //CreateMaterial();
        
        frame = 0;
    }
 
    void DrawNode(iCameraPane display, Object3D /*Composite*/ root, boolean selected)
    {
        while (realframe == 0)
        {
            realframe = (float)Math.random();
        }
        
      //  System.err.println("Select Frame # " + frame);
   //     frame %= (getNumFrames() - mocap.offset);
        if (!link2master) // freeze current value
            frame = (int)((getNumFrames() - mocap.GetFirstFrame()) * realframe);
      //  System.err.println("Select Frame modulo # " + frame);
        boolean waslive = mocap.live;
        mocap.live = true;
        mocap.setPose((mocap.baseframe - mocap.GetFirstFrame() + frame)%(getNumFrames() - mocap.GetFirstFrame()) + mocap.GetFirstFrame());
        mocap.live = waslive;
// inutile june 2014        super.DrawNode(display, root, selected);
    }
    
    int getNumFrames()
    {
        return mocap.bvh.animation.getNumFrames();
    }
    
    Object3D deepCopy()
    {
        FrameSelector e = new FrameSelector(mocap);
        deepCopySelf(e);
        return e;
    }
 
    protected void deepCopyNode(Object3D other)
    {
        super.deepCopyNode(other);
        FrameSelector bp = (FrameSelector)other;
     //   bp.frame = (int)(Math.random()*(getNumFrames() - mocap.offset));
    }
    
    void createEditWindow(GroupEditor callee, boolean newWindow)
    {
        //editWindow = (new SphereEditor(this, deepCopy(), callee)).GetEditor();
        if (newWindow)
        {
            objectUI = new FrameEditor(this, deepCopy(), callee);
        } else
        {
            objectUI = new FrameEditor(this, callee);
        }
        editWindow = objectUI.GetEditor();
    }
 
    int frame;
    float realframe;
}