コード例 #1
0
ファイル: Bone.java プロジェクト: mimusangel/java-BVHLoader
  public Bone(String n, Bone p) {
    name = n;
    parent = p;
    offset = new Transform();
    if (p != null) {
      offset.setParent(p.offset);
    }

    channels = new ArrayList<Channel>();
  }
コード例 #2
0
ファイル: Bone.java プロジェクト: mimusangel/java-BVHLoader
 public Transform getOffset(int frame) {
   //		Transform f = new Transform(offset);
   //		if(parent != null) {
   //			return new Vec3(parent.getOffset(frame)).add(f.getPosition());
   //		}
   Transform f = new Transform(offset);
   if (parent != null) f.setParent(parent.getOffset(frame));
   for (int i = 0; i < channels.size(); i++) {
     Channel chan = channels.get(i);
     if (chan.index == Channel.Xposition) {
       f.translate(new Vec3(1, 0, 0), chan.frameValue.get(frame));
       continue;
     }
     if (chan.index == Channel.Yposition) {
       f.translate(new Vec3(0, 1, 0), chan.frameValue.get(frame));
       continue;
     }
     if (chan.index == Channel.Zposition) {
       f.translate(new Vec3(0, 0, 1), chan.frameValue.get(frame));
       continue;
     }
     if (chan.index == Channel.Xrotation) {
       f.rotate(new Vec3(1, 0, 0), chan.frameValue.get(frame));
       continue;
     }
     if (chan.index == Channel.Yrotation) {
       f.rotate(new Vec3(0, 1, 0), chan.frameValue.get(frame));
       continue;
     }
     if (chan.index == Channel.Zrotation) {
       f.rotate(new Vec3(0, 0, 1), chan.frameValue.get(frame));
       continue;
     }
   }
   return f;
 }