// segment names, my numbering scheme static final int HEAD_NECK=0; static final int LEFT_SHOULDER_LEFT_ELBOW=1; static final int LEFT_ELBOW_LEFT_HAND=2; static final int LEFT_HIP_LEFT_KNEE=3; static final int LEFT_KNEE_LEFT_FOOT=4; static final int RIGHT_SHOULDER_RIGHT_ELBOW=5; static final int RIGHT_ELBOW_RIGHT_HAND=6; static final int RIGHT_HIP_RIGHT_KNEE=7; static final int RIGHT_KNEE_RIGHT_FOOT=8; static final int SHOULDERS_HIPS=9; static final int LEFT_HIP_RIGHT_HIP=10; //int[] attachX = { // -150, // // left arm // 0, //65, // 0, //0,//65, // // left leg // -60, //-100, // -120, //-200, //-120,//45, // // right arm // 0, //-65, // 0, //-65, // // right leg // 60, //100, // 120, //200,//120,//-45, // 0, // 0, // 0 //}; // //int[] attachY = { // -25, // // left arm // -10, // -10, // // left leg // -150,//-120, // -200,//-170, // // right arm // -10, // -10, // // right leg // -150,//-120, // -200,//-170, // 0, // 0, // 0 //}; int[] attachX = { -150, // left arm 0, //65, 0, //0,//65, // left leg -10, 0, //-200, //-120,//45, // right arm 0, //-65, 0, //-65, // right leg 10, 0, //200,//120,//-45, 0, 0, 0 }; int[] attachY = { -25, // left arm 0,//-10, 0,//-10, // left leg -0,//-150,//-120, 0,//-200,//-170, // right arm 0,//-10, 0,//-10, // right leg -0, //-150,//-120, 0,//-200,//-170, 0, 0, 0 }; class PaperDoll { // joint names, osceleton numbering scheme static final int HEAD=0; static final int NECK=1; static final int RIGHT_COLLAR=2; static final int RIGHT_SHOULDER=3; static final int RIGHT_ELBOW=4; static final int RIGHT_WRIST=5; static final int RIGHT_HAND=6; static final int RIGHT_FINGER=7; static final int LEFT_COLLAR=8; static final int LEFT_SHOULDER=9; static final int LEFT_ELBOW=10; static final int LEFT_WRIST=11; static final int LEFT_HAND=12; static final int LEFT_FINGER=13; static final int TORSO=14; static final int RIGHT_HIP=15; static final int RIGHT_KNEE=16; static final int RIGHT_ANKLE=17; static final int RIGHT_FOOT=18;//18; static final int LEFT_HIP=19; static final int LEFT_KNEE=20; static final int LEFT_ANKLE=21; static final int LEFT_FOOT=22;//22; //static final int numSegments = 2; //static final int numLimbs=5; static final int numSegments=23;//15; float SCALE_FACTOR=0.1; float[] sx = new float[numSegments]; float[] sy = new float[numSegments]; float[] x = new float[numSegments]; float[] y = new float[numSegments]; float[] angle = new float[numSegments]; float[] len = new float[numSegments]; int[] texNums = new int[numSegments]; float segLength = 100; float targetX, targetY; PImage bodyTextures[];// = new PImage[11]; PaperDoll() { // assign texture indices texNums[0]=HEAD_NECK; texNums[1]=RIGHT_SHOULDER_RIGHT_ELBOW; texNums[2]=RIGHT_ELBOW_RIGHT_HAND; texNums[3]=RIGHT_HIP_RIGHT_KNEE; texNums[4]=RIGHT_KNEE_RIGHT_FOOT; texNums[5]=LEFT_SHOULDER_LEFT_ELBOW; texNums[6]=LEFT_ELBOW_LEFT_HAND; texNums[7]=LEFT_HIP_LEFT_KNEE; texNums[8]=LEFT_KNEE_LEFT_FOOT; texNums[9]=SHOULDERS_HIPS; bodyTextures = new PImage[11]; println("doll constructed"); } void calcScreenCoords(Skeleton skelly) { // convert from Kinect 3d skeleton coordinates // to 2d screen space coorddinates. for (int i=0;i