// Add muscles that connect the segments void DuCTTTestModel::addMuscles(tgStructure& snake) { const std::vector<tgStructure*> children = snake.getChildren(); for (size_t i = 1; i < children.size(); ++i) { tgNodes n0 = children[i-1]->getNodes(); tgNodes n1 = children[i ]->getNodes(); snake.addPair(n0[0], n1[0], "top right muscle"); snake.addPair(n0[1], n1[1], "top left muscle"); snake.addPair(n0[2], n1[0], "front right muscle"); snake.addPair(n0[2], n1[1], "front left muscle"); snake.addPair(n0[3], n1[0], "back right muscle"); snake.addPair(n0[3], n1[1], "back left muscle"); snake.addPair(n0[2], n1[2], "bottom front muscle"); snake.addPair(n0[3], n1[3], "bottom back muscle"); } }
// Add muscles that connect the segments void VerticalSpineModel::addMuscles(tgStructure& snake) { const std::vector<tgStructure*> children = snake.getChildren(); for (size_t i = 1; i < children.size(); ++i) { tgNodes n0 = children[i-1]->getNodes(); tgNodes n1 = children[i ]->getNodes(); // vertical muscles snake.addPair(n0[0], n1[0], "vertical muscle a"); snake.addPair(n0[1], n1[1], "vertical muscle b"); snake.addPair(n0[2], n1[2], "vertical muscle c"); snake.addPair(n0[3], n1[3], "vertical muscle d"); // saddle muscles snake.addPair(n0[2], n1[1], tgString("saddle muscle seg", i-1)); snake.addPair(n0[3], n1[1], tgString("saddle muscle seg", i-1)); snake.addPair(n0[2], n1[0], tgString("saddle muscle seg", i-1)); snake.addPair(n0[3], n1[0], tgString("saddle muscle seg", i-1)); } }
void ScarrArmModel::addMuscles(tgStructure& s) { const std::vector<tgStructure*> children = s.getChildren(); s.addPair(0, 3, "olecranon muscle"); //NB actually fascial tissue s.addPair(0, 4, "olecranon muscle"); //NB actually fascial tissue s.addPair(1, 3, "olecranon muscle"); //NB actually fascial tissue s.addPair(1, 4, "olecranon muscle"); //NB actually fascial tissue s.addPair(2, 3, "olecranon muscle"); //NB actually fascial tissue s.addPair(2, 4, "olecranon muscle"); //NB actually fascial tissue s.addPair(0, 13, "olecranon muscle"); //NB actually fascial tissue s.addPair(1, 13, "olecranon muscle"); //NB actually fascial tissue s.addPair(11, 13, "olecranon muscle"); //NB actually fascial tissue s.addPair(0, 14, "olecranon muscle"); //NB actually fascial tissue s.addPair(1, 14, "olecranon muscle"); //NB actually fascial tissue s.addPair(11, 14, "olecranon muscle"); //NB actually fascial tissue s.addPair(0, 12, "olecranon muscle"); //NB actually fascial tissue s.addPair(11, 12, "olecranon muscle"); //NB actually fascial tissue s.addPair(0, 5, "brachioradialis muscle"); s.addPair(2, 5, "olecranon muscle"); //NB actually fascial tissue s.addPair(3, 13, "right anconeus muscle"); s.addPair(4, 14, "left anconeus muscle"); }
void BigDoxieNoFeet::addMuscles(tgStructure& puppy){ //Time to add the muscles to the structure. Todo: try to clean this up some more. std::vector<tgStructure*> children = puppy.getChildren(); for(std::size_t i = 2; i < (children.size() - (m_hips + m_legs)); i++) { tgNodes n0 = children[i-2]->getNodes(); tgNodes n1 = children[i-1]->getNodes(); tgNodes n2 = children[i]->getNodes(); if(i==2){ //Extra muscles, to keep front vertebra from swinging. puppy.addPair(n0[3], n1[3], tgString("spine front upper right muscleAct1 seg", i-2) + tgString(" seg", i-1)); puppy.addPair(n0[3], n1[4], tgString("spine front upper left muscleAct1 seg", i-2) + tgString(" seg", i-1)); puppy.addPair(n0[4], n1[3], tgString("spine front lower right muscleAct2 seg", i-2) + tgString(" seg", i-1)); puppy.addPair(n0[4], n1[4], tgString("spine front lower left muscleAct2 seg", i-2) + tgString(" seg", i-1)); } //Add muscles to the puppy if(i < 3){ if(i % 2 == 0){ //front puppy.addPair(n0[1], n1[3], tgString("spine front lower right muscleAct2 seg", i-2) + tgString(" seg", i-1)); puppy.addPair(n0[1], n1[4], tgString("spine front lower left muscleAct2 seg", i-2) + tgString(" seg", i-1)); puppy.addPair(n0[2], n1[3], tgString("spine front upper right muscleAct1 seg", i-2) + tgString(" seg", i-1)); puppy.addPair(n0[2], n1[4], tgString("spine front upper left muscleAct1 seg", i-2) + tgString(" seg", i-1)); } else{ //rear puppy.addPair(n0[1], n1[3], tgString("spine rear upper left muscleAct1 seg", i-2) + tgString(" seg", i-1)); puppy.addPair(n0[1], n1[4], tgString("spine rear lower left muscleAct2 seg", i-2) + tgString(" seg", i-1)); puppy.addPair(n0[2], n1[3], tgString("spine rear upper right muscleAct1 seg", i-2) + tgString(" seg", i-1)); puppy.addPair(n0[2], n1[4], tgString("spine rear lower right muscleAct2 seg", i-2) + tgString(" seg", i-1)); } } if(i < m_segments){//Was 6 if(i % 2 == 0){ puppy.addPair(n0[1], n2[4], tgString("spine2 bottom muscleAct2 seg", i-2) + tgString(" seg", i-1)); puppy.addPair(n0[2], n2[3], tgString("spine2 top muscleAct1 seg", i-2) + tgString(" seg", i-1)); } else{ puppy.addPair(n0[1], n2[4], tgString("spine2 lateral left muscleAct1 seg", i-2) + tgString(" seg", i-1)); puppy.addPair(n0[2], n2[3], tgString("spine2 lateral right muscleAct1 seg", i-2) + tgString(" seg", i-1)); } } if(i > 0 && i < m_segments){ if(i % 2 == 0){//rear puppy.addPair(n1[1], n2[3], tgString("spine rear upper left muscleAct1 seg", i-1) + tgString(" seg", i)); puppy.addPair(n1[1], n2[4], tgString("spine rear lower left muscleAct2 seg", i-1) + tgString(" seg", i)); puppy.addPair(n1[2], n2[3], tgString("spine rear upper right muscleAct1 seg", i-1) + tgString(" seg", i)); puppy.addPair(n1[2], n2[4], tgString("spine rear lower right muscleAct2 seg", i-1) + tgString(" seg", i)); } else{//front puppy.addPair(n1[1], n2[3], tgString("spine front lower right muscleAct2 seg", i-1) + tgString(" seg", i)); puppy.addPair(n1[1], n2[4], tgString("spine front lower left muscleAct2 seg", i-1) + tgString(" seg", i)); puppy.addPair(n1[2], n2[3], tgString("spine front upper right muscleAct1 seg", i-1) + tgString(" seg", i)); puppy.addPair(n1[2], n2[4], tgString("spine front upper left muscleAct1 seg", i-1) + tgString(" seg", i)); } } if (i >= 2 && i < m_segments){ puppy.addPair(n1[3], n2[3], tgString("spine all spiral muscleAct1 seg", i-1) + tgString(" seg", i)); puppy.addPair(n1[4], n2[3], tgString("spine all spiral muscleAct1 seg", i-1) + tgString(" seg", i)); puppy.addPair(n1[3], n2[4], tgString("spine all spiral muscleAct1 seg", i-1) + tgString(" seg", i)); puppy.addPair(n1[4], n2[4], tgString("spine all spiral muscleAct1 seg", i-1) + tgString(" seg", i)); } if(i == m_segments - 1){ //rear puppy.addPair(n1[1], n2[2], tgString("spine rear lower left muscleAct2 seg", i-1) + tgString(" seg", i)); puppy.addPair(n1[2], n2[2], tgString("spine rear lower right muscleAct2 seg", i-1) + tgString(" seg", i)); puppy.addPair(n1[1], n2[1], tgString("spine rear upper left muscleAct1 seg", i-1) + tgString(" seg", i)); puppy.addPair(n1[2], n2[1], tgString("spine rear upper right muscleAct1 seg", i-1) + tgString(" seg", i)); } } //Now add muscles to hips.... tgNodes n0 = children[0]->getNodes(); tgNodes n1 = children[1]->getNodes(); tgNodes n2 = children[2]->getNodes(); tgNodes n3 = children[3]->getNodes(); tgNodes n4 = children[4]->getNodes(); tgNodes n5 = children[5]->getNodes(); tgNodes n6 = children[6]->getNodes(); tgNodes n7 = children[7]->getNodes(); tgNodes n8 = children[8]->getNodes(); tgNodes n9 = children[9]->getNodes(); tgNodes n10 = children[10]->getNodes(); tgNodes n11 = children[11]->getNodes(); tgNodes n12 = children[12]->getNodes(); tgNodes n13 = children[13]->getNodes(); tgNodes n14 = children[14]->getNodes(); tgNodes n15 = children[15]->getNodes(); tgNodes n16 = children[16]->getNodes(); //Left shoulder muscles puppy.addPair(n9[1], n1[1], tgString("left shoulder rear upper muscleAct1 seg", 6) + tgString(" seg", 1)); puppy.addPair(n9[1], n1[4], tgString("left shoulder front upper muscleAct1 seg", 6) + tgString(" seg", 1)); puppy.addPair(n9[1], n0[2], tgString("left shoulder front top muscleAct1 seg", 6) + tgString(" seg", 0)); puppy.addPair(n9[1], n2[3], tgString("left shoulder rear top muscleAct1 seg", 6) + tgString(" seg", 2)); puppy.addPair(n9[3], n1[1], tgString("left shoulder rear lower muscleAct1 seg", 6) + tgString(" seg", 1)); puppy.addPair(n9[3], n1[4], tgString("left shoulder front lower muscleAct1 seg", 6) + tgString(" seg", 1)); puppy.addPair(n9[3], n0[1], tgString("left shoulder front bottom muscleAct1 seg", 6) + tgString(" seg", 0)); puppy.addPair(n9[3], n2[4], tgString("left shoulder rear bottom muscleAct1 seg", 6) + tgString(" seg", 2)); //Extra muscles, to move left shoulder forward and back: puppy.addPair(n9[0], n1[1], tgString("left shoulder rear mid muscleAct1 seg", 6) + tgString(" seg", 1)); puppy.addPair(n9[0], n1[4], tgString("left shoulder front mid muscleAct1 seg", 6) + tgString(" seg", 1)); //Left hip muscles puppy.addPair(n10[1], n7[1], tgString("left hip rear upper muscleAct1 seg", 7) + tgString(" seg", 5)); puppy.addPair(n10[1], n7[4], tgString("left hip front upper muscleAct1 seg", 7) + tgString(" seg", 5)); puppy.addPair(n10[1], n6[2], tgString("left hip front top muscleAct1 seg", 7) + tgString(" seg", 4)); puppy.addPair(n10[1], n8[3], tgString("left hip rear top muscleAct1 seg", 7) + tgString(" seg", 4)); puppy.addPair(n10[3], n7[1], tgString("left hip rear lower muscleAct1 seg", 7) + tgString(" seg", 5)); puppy.addPair(n10[3], n7[4], tgString("left hip front lower muscleAct1 seg", 7) + tgString(" seg", 5)); puppy.addPair(n10[3], n6[1], tgString("left hip front bottom muscleAct1 seg", 7) + tgString(" seg", 4)); puppy.addPair(n10[3], n8[4], tgString("left hip front bottom muscleAct1 seg", 7) + tgString(" seg", 6)); //Extra muscles, to move left hip forward and back: puppy.addPair(n10[0], n7[1], tgString("left hip rear mid muscleAct1 seg", 7) + tgString(" seg", 3)); //could also be n3[3] puppy.addPair(n10[0], n7[4], tgString("left hip front mid muscleAct1 seg", 7) + tgString(" seg", 5)); //Right shoulder muscles puppy.addPair(n11[1], n1[2], tgString("right shoulder rear upper muscleAct1 seg", 8) + tgString(" seg", 1)); puppy.addPair(n11[1], n1[3], tgString("right shoulder front upper muscleAct1 seg", 8) + tgString(" seg", 1)); puppy.addPair(n11[1], n0[2], tgString("right shoulder front top muscleAct1 seg", 8) + tgString(" seg", 0)); puppy.addPair(n11[1], n2[3], tgString("right shoulder rear top muscleAct1 seg", 8) + tgString(" seg", 2)); puppy.addPair(n11[3], n1[2], tgString("right shoulder rear lower muscleAct1 seg", 8) + tgString(" seg", 1)); puppy.addPair(n11[3], n1[3], tgString("right shoulder front lower muscleAct1 seg", 8) + tgString(" seg", 1)); puppy.addPair(n11[3], n0[1], tgString("right shoulder front bottom muscleAct1 seg", 8) + tgString(" seg", 0)); puppy.addPair(n11[3], n2[4], tgString("right shoulder rear bottom muscleAct1 seg", 8) + tgString(" seg", 2)); //Extra muscles, to move right shoulder forward and back: puppy.addPair(n11[0], n1[2], tgString("right shoulder rear mid muscleAct1 seg", 8) + tgString(" seg", 1)); puppy.addPair(n11[0], n1[3], tgString("right shoulder front mid muscleAct1 seg", 8) + tgString(" seg", 1)); //Right hip muscles puppy.addPair(n12[1], n7[2], tgString("right hip rear upper muscleAct1 seg", 9) + tgString(" seg", 5)); puppy.addPair(n12[1], n7[3], tgString("right hip front upper muscleAct1 seg", 9) + tgString(" seg", 5)); puppy.addPair(n12[1], n6[2], tgString("right hip front top muscleAct1 seg", 9) + tgString(" seg", 4)); puppy.addPair(n12[1], n8[3], tgString("right hip rear top muscleAct1 seg", 9) + tgString(" seg", 4)); puppy.addPair(n12[3], n7[2], tgString("right hip rear lower muscleAct1 seg", 9) + tgString(" seg", 5)); puppy.addPair(n12[3], n7[3], tgString("right hip front lower muscleAct1 seg", 9) + tgString(" seg", 5)); puppy.addPair(n12[3], n6[1], tgString("right hip bottom muscleAct1 seg", 9) + tgString(" seg", 4)); puppy.addPair(n12[3], n8[4], tgString("right hip bottom muscleAct1 seg", 9) + tgString(" seg", 6)); //Extra muscles, to move right hip forward and back: puppy.addPair(n12[0], n7[2], tgString("right hip rear mid muscle seg", 9) + tgString(" seg", 3)); //could also be n3[3] puppy.addPair(n12[0], n7[3], tgString("right hip front mid muscleAct1 seg", 9) + tgString(" seg", 5)); //Leg/hip connections: //Left front leg/shoulder puppy.addPair(n13[4], n9[3], tgString("right outer bicep muscle3 seg", 13) + tgString(" seg", 9)); puppy.addPair(n13[4], n9[2], tgString("right inner bicep muscle3 seg", 13) + tgString(" seg", 9)); puppy.addPair(n13[4], n1[4], tgString("right front abdomen connection muscle3 seg", 13) + tgString(" seg", 1)); puppy.addPair(n13[3], n1[1],tgString("all left foreleg limb front abdomen connection muscle3 seg", 13) + tgString(" seg", 1)); //Active puppy.addPair(n13[2], n1[4],tgString("all left foreleg limb front abdomen connection muscle3 seg", 13) + tgString(" seg", 1)); //Active puppy.addPair(n13[3], n9[3], tgString("right outer tricep muscle3 seg", 13) + tgString(" seg", 9)); puppy.addPair(n13[3], n9[2], tgString("right inner tricep muscle3 seg", 13) + tgString(" seg", 9)); puppy.addPair(n13[2], n9[3], tgString("right outer front tricep muscle3 seg", 13) + tgString(" seg", 9)); puppy.addPair(n13[2], n9[2], tgString("right inner front tricep muscle3 seg", 13) + tgString(" seg", 9)); //Adding muscle to pull up on right front leg: puppy.addPair(n13[4], n9[1], tgString("right mid bicep muscle3 seg", 13) + tgString(" seg", 9)); //Right front leg/shoulder puppy.addPair(n15[4], n11[2], tgString("left inner bicep muscle3 seg", 15) + tgString(" seg", 11)); puppy.addPair(n15[4], n11[3], tgString("left outer bicep muscle3 seg", 15) + tgString(" seg", 11)); puppy.addPair(n15[4], n1[3], tgString("left front abdomen connection muscle3 seg", 12) + tgString(" seg", 1)); //Was n1[2] puppy.addPair(n15[3], n1[2], tgString("all right foreleg limb front abdomen connection muscle3 seg", 15) + tgString(" seg", 1)); //Active puppy.addPair(n15[2], n1[3], tgString("all right foreleg limb front abdomen connection muscle3 seg", 15) + tgString(" seg", 1)); //Active puppy.addPair(n15[3], n11[2], tgString("left inner tricep muscle3 seg", 12) + tgString(" seg", 8)); puppy.addPair(n15[3], n11[3], tgString("left outer tricep muscle3 seg", 12) + tgString(" seg", 8)); puppy.addPair(n15[2], n11[2], tgString("left inner front tricep muscle3 seg", 12) + tgString(" seg", 8)); puppy.addPair(n15[2], n11[3], tgString("left outer front tricep muscle3 seg", 12) + tgString(" seg", 8)); //Adding muscle to pull up on left front leg: puppy.addPair(n15[4], n11[1], tgString("left mid bicep muscle3 seg", 12) + tgString(" seg", 8)); //Left rear leg/hip puppy.addPair(n14[4], n10[3], tgString("right outer thigh muscle3 seg", 11) + tgString(" seg", 7)); puppy.addPair(n14[4], n10[2], tgString("right inner thigh muscle3 seg", 11) + tgString(" seg", 7)); puppy.addPair(n14[4], n5[1],tgString("right rear abdomen connection muscle3 seg", 11) + tgString(" seg", 3)); puppy.addPair(n14[3], n7[1],tgString("right rear abdomen connection muscle3 seg", 11) + tgString(" seg", 5)); puppy.addPair(n14[2], n7[4],tgString("right rear abdomen connection muscle3 seg", 11) + tgString(" seg", 5)); puppy.addPair(n14[3], n10[3], tgString("right outer calf muscle3 seg", 11) + tgString(" seg", 7)); puppy.addPair(n14[3], n10[2], tgString("right inner calf muscle3 seg", 11) + tgString(" seg", 7)); puppy.addPair(n14[2], n10[3], tgString("right outer front calf muscle3 seg", 11) + tgString(" seg", 7)); puppy.addPair(n14[2], n10[2], tgString("right inner front calf muscle3 seg", 11) + tgString(" seg", 7)); //Adding muscle to pull rear right leg up: puppy.addPair(n14[4], n10[1], tgString("right central thigh muscle3 seg", 11) + tgString(" seg", 7)); //Right rear leg/hip puppy.addPair(n16[4], n12[2], tgString("left inner thigh muscle3 seg", 13) + tgString(" seg", 9)); puppy.addPair(n16[4], n12[3], tgString("left outer thigh muscle3 seg", 13) + tgString(" seg", 9)); puppy.addPair(n16[4], n5[2], tgString("left rear abdomen connection muscle3 seg", 13) + tgString(" seg", 3)); puppy.addPair(n16[3], n7[2], tgString("left rear abdomen connection muscle3 seg", 13) + tgString(" seg", 5)); puppy.addPair(n16[2], n7[3], tgString("left rear abdomen connection muscle3 seg", 13) + tgString(" seg", 5)); puppy.addPair(n16[3], n12[2], tgString("left inner calf muscle3 seg", 13) + tgString(" seg", 9)); puppy.addPair(n16[3], n12[3], tgString("left outer calf muscle3 seg", 13) + tgString(" seg", 9)); puppy.addPair(n16[2], n12[2], tgString("left inner front calf muscle3 seg", 13) + tgString(" seg", 9)); puppy.addPair(n16[2], n12[3], tgString("left outer front calf muscle3 seg", 13) + tgString(" seg", 9)); //Adding muscle to pull rear left leg up: puppy.addPair(n16[4], n12[1], tgString("left central thigh muscle3 seg", 13) + tgString(" seg", 9)); //Populate feet with muscles. Todo: think up names to differentiate each! /*for(std::size_t i = (m_segments + m_hips + m_legs); i < children.size(); i++) { tgNodes ni = children[i]->getNodes(); tgNodes ni4 = children[i-4]->getNodes(); puppy.addPair(ni[0],ni[1],tgString("foot muscle seg", i)); puppy.addPair(ni[0],ni[3],tgString("foot muscle seg", i)); puppy.addPair(ni[1],ni[2],tgString("foot muscle seg", i)); puppy.addPair(ni[2],ni[3],tgString("foot muscle seg", i)); puppy.addPair(ni[0],ni[7],tgString("foot muscle2 seg", i)); puppy.addPair(ni[1],ni[4],tgString("foot muscle2 seg", i)); puppy.addPair(ni[2],ni[5],tgString("foot muscle2 seg", i)); puppy.addPair(ni[3],ni[6],tgString("foot muscle2 seg", i)); puppy.addPair(ni[4],ni[5],tgString("foot muscle2 seg", i)); puppy.addPair(ni[4],ni[7],tgString("foot muscle2 seg", i)); puppy.addPair(ni[5],ni[6],tgString("foot muscle2 seg", i)); puppy.addPair(ni[6],ni[7],tgString("foot muscle2 seg", i)); //Connect feet to legs: puppy.addPair(ni4[5],ni[0],tgString("foot muscle2 seg", i) + tgString(" seg", i-4)); puppy.addPair(ni4[5],ni[1],tgString("foot muscle2 seg", i) + tgString(" seg", i-4)); puppy.addPair(ni4[5],ni[2],tgString("foot muscle2 seg", i) + tgString(" seg", i-4)); puppy.addPair(ni4[5],ni[3],tgString("foot muscle2 seg", i) + tgString(" seg", i-4)); puppy.addPair(ni4[0],ni[4],tgString("foot muscle2 seg", i) + tgString(" seg", i-4)); puppy.addPair(ni4[0],ni[5],tgString("foot muscle2 seg", i) + tgString(" seg", i-4)); puppy.addPair(ni4[0],ni[6],tgString("foot muscle2 seg", i) + tgString(" seg", i-4)); puppy.addPair(ni4[0],ni[7],tgString("foot muscle2 seg", i) + tgString(" seg", i-4)); }*/ }
void BigPuppySymmetricSpiralSegments::addMuscles(tgStructure& puppy){ //Time to add the muscles to the structure. Todo: try to clean this up some more. std::vector<tgStructure*> children = puppy.getChildren(); for(std::size_t i = 2; i < (children.size() - (m_hips + m_legs)); i++) { tgNodes n0 = children[i-2]->getNodes(); tgNodes n1 = children[i-1]->getNodes(); tgNodes n2 = children[i]->getNodes(); if(i==2){ //Extra muscles, to keep front vertebra from swinging. puppy.addPair(n0[3], n1[3], tgString("spine all main front upper right muscleAct1 seg", i-2) + tgString(" seg", i-1)); puppy.addPair(n0[3], n1[4], tgString("spine all main front upper left muscleAct1 seg", i-2) + tgString(" seg", i-1)); puppy.addPair(n0[4], n1[3], tgString("spine all main front lower right muscleAct2 seg", i-2) + tgString(" seg", i-1)); puppy.addPair(n0[4], n1[4], tgString("spine all main front lower left muscleAct2 seg", i-2) + tgString(" seg", i-1)); } //Add muscles to the puppy if(i < 3){ if(i % 2 == 0){ //front puppy.addPair(n0[1], n1[3], tgString("spine all main front lower right muscleAct2 seg", i-2) + tgString(" seg", i-1)); puppy.addPair(n0[1], n1[4], tgString("spine all main front lower left muscleAct2 seg", i-2) + tgString(" seg", i-1)); puppy.addPair(n0[2], n1[3], tgString("spine all main front upper right muscleAct1 seg", i-2) + tgString(" seg", i-1)); puppy.addPair(n0[2], n1[4], tgString("spine main front upper left muscleAct1 seg", i-2) + tgString(" seg", i-1)); } else{ //rear puppy.addPair(n0[1], n1[3], tgString("spine all main rear upper left muscleAct1 seg", i-2) + tgString(" seg", i-1)); puppy.addPair(n0[1], n1[4], tgString("spine all main rear lower left muscleAct2 seg", i-2) + tgString(" seg", i-1)); puppy.addPair(n0[2], n1[3], tgString("spine all main rear upper right muscleAct1 seg", i-2) + tgString(" seg", i-1)); puppy.addPair(n0[2], n1[4], tgString("spine all main rear lower right muscleAct2 seg", i-2) + tgString(" seg", i-1)); } } if(i < 7){//Was 6 if(i % 2 == 0){ puppy.addPair(n0[1], n2[4], tgString("spine2 bottom muscleAct2 seg", i-2) + tgString(" seg", i-1)); puppy.addPair(n0[2], n2[3], tgString("spine2 top muscleAct1 seg", i-2) + tgString(" seg", i-1)); } else{ puppy.addPair(n0[1], n2[4], tgString("spine2 lateral left muscleAct1 seg", i-2) + tgString(" seg", i-1)); puppy.addPair(n0[2], n2[3], tgString("spine2 lateral right muscleAct1 seg", i-2) + tgString(" seg", i-1)); } } if(i > 0 && i < 7){ if(i % 2 == 0){//rear puppy.addPair(n1[1], n2[3], tgString("spine all main rear upper left muscleAct1 seg", i-1) + tgString(" seg", i)); puppy.addPair(n1[1], n2[4], tgString("spine all main rear lower left muscleAct2 seg", i-1) + tgString(" seg", i)); puppy.addPair(n1[2], n2[3], tgString("spine all main rear upper right muscleAct1 seg", i-1) + tgString(" seg", i)); puppy.addPair(n1[2], n2[4], tgString("spine main rear lower right muscleAct2 seg", i-1) + tgString(" seg", i)); } else{//front puppy.addPair(n1[1], n2[3], tgString("spine all main front lower right muscleAct2 seg", i-1) + tgString(" seg", i)); puppy.addPair(n1[1], n2[4], tgString("spine all main front lower left muscleAct2 seg", i-1) + tgString(" seg", i)); puppy.addPair(n1[2], n2[3], tgString("spine all main front upper right muscleAct1 seg", i-1) + tgString(" seg", i)); puppy.addPair(n1[2], n2[4], tgString("spine all main front upper left muscleAct1 seg", i-1) + tgString(" seg", i)); } } if (i >= 2 && i < 7){ puppy.addPair(n1[3], n2[3], tgString("spine all spiral muscleAct1 seg", i-1) + tgString(" seg", i)); puppy.addPair(n1[4], n2[3], tgString("spine all spiral muscleAct1 seg", i-1) + tgString(" seg", i)); puppy.addPair(n1[3], n2[4], tgString("spine all spiral muscleAct1 seg", i-1) + tgString(" seg", i)); puppy.addPair(n1[4], n2[4], tgString("spine spiral muscleAct1 seg", i-1) + tgString(" seg", i)); } if(i == 6){ //rear puppy.addPair(n1[1], n2[2], tgString("spine all rear lower left muscleAct2 seg", i-1) + tgString(" seg", i)); puppy.addPair(n1[2], n2[2], tgString("spine all rear lower right muscleAct2 seg", i-1) + tgString(" seg", i)); puppy.addPair(n1[1], n2[1], tgString("spine all rear upper left muscleAct1 seg", i-1) + tgString(" seg", i)); puppy.addPair(n1[2], n2[1], tgString("spine all rear upper right muscleAct1 seg", i-1) + tgString(" seg", i)); } } //Now add muscles to hips.... tgNodes n0 = children[0]->getNodes(); tgNodes n1 = children[1]->getNodes(); tgNodes n2 = children[2]->getNodes(); tgNodes n3 = children[3]->getNodes(); tgNodes n4 = children[4]->getNodes(); tgNodes n5 = children[5]->getNodes(); tgNodes n6 = children[6]->getNodes(); tgNodes n7 = children[7]->getNodes(); tgNodes n8 = children[8]->getNodes(); tgNodes n9 = children[9]->getNodes(); tgNodes n10 = children[10]->getNodes(); tgNodes n11 = children[11]->getNodes(); tgNodes n12 = children[12]->getNodes(); tgNodes n13 = children[13]->getNodes(); tgNodes n14 = children[14]->getNodes(); //Adding long muscles to spine, for bending/arching: //puppy.addPair(n0[2], n6[3], tgString("spine secondary top arching muscleAct seg", 0) + tgString(" seg", 6)); //Change these to something other than "spine " or "spine2" when it's time to implement new code for them! //puppy.addPair(n0[1], n6[4], tgString("spine bottom arching muscleAct seg", 0) + tgString(" seg", 6)); //puppy.addPair(n1[4], n5[1], tgString("spine right lateral arching muscleAct seg", 1) + tgString(" seg", 5)); //puppy.addPair(n1[3], n5[2], tgString("spine left lateral arching muscleAct seg", 1) + tgString(" seg", 5)); //Left shoulder muscles puppy.addPair(n7[1], n1[1], tgString("all left hip shoulder rear upper muscleAct1 seg", 6) + tgString(" seg", 1)); puppy.addPair(n7[1], n1[4], tgString("all left hip shoulder front upper muscleAct1 seg", 6) + tgString(" seg", 1)); puppy.addPair(n7[1], n0[2], tgString("all left hip shoulder front top muscleAct1 seg", 6) + tgString(" seg", 0)); puppy.addPair(n7[1], n2[3], tgString("all left hip shoulder rear top muscleAct1 seg", 6) + tgString(" seg", 2)); puppy.addPair(n7[3], n1[1], tgString("all left hip shoulder rear lower muscleAct1 seg", 6) + tgString(" seg", 1)); puppy.addPair(n7[3], n1[4], tgString("all left hip shoulder front lower muscleAct1 seg", 6) + tgString(" seg", 1)); puppy.addPair(n7[3], n0[1], tgString("all left hip shoulder front bottom muscleAct1 seg", 6) + tgString(" seg", 0)); puppy.addPair(n7[3], n2[4], tgString("all left hip shoulder rear bottom muscleAct1 seg", 6) + tgString(" seg", 2)); //Extra muscles, to move left shoulder forward and back: puppy.addPair(n7[0], n1[1], tgString("all left hip shoulder rear mid muscleAct1 seg", 6) + tgString(" seg", 1)); puppy.addPair(n7[0], n1[4], tgString("all left hip shoulder front mid muscleAct1 seg", 6) + tgString(" seg", 1)); //Left hip muscles puppy.addPair(n8[1], n5[1], tgString("all left hip rear upper muscleAct1 seg", 7) + tgString(" seg", 5)); puppy.addPair(n8[1], n5[4], tgString("all left hip front upper muscleAct1 seg", 7) + tgString(" seg", 5)); puppy.addPair(n8[1], n4[2], tgString("all left hip front top muscleAct1 seg", 7) + tgString(" seg", 4)); puppy.addPair(n8[1], n6[3], tgString("all left hip rear top muscleAct1 seg", 7) + tgString(" seg", 4)); puppy.addPair(n8[3], n5[1], tgString("all left hip rear lower muscleAct1 seg", 7) + tgString(" seg", 5)); puppy.addPair(n8[3], n5[4], tgString("all left hip front lower muscleAct1 seg", 7) + tgString(" seg", 5)); puppy.addPair(n8[3], n4[1], tgString("all left hip front bottom muscleAct1 seg", 7) + tgString(" seg", 4)); puppy.addPair(n8[3], n6[4], tgString("all left hip front bottom muscleAct1 seg", 7) + tgString(" seg", 6)); //Extra muscles, to move left hip forward and back: puppy.addPair(n8[0], n5[1], tgString("all left hip rear mid muscleAct1 seg", 7) + tgString(" seg", 3)); puppy.addPair(n8[0], n5[4], tgString("all left hip front mid muscleAct1 seg", 7) + tgString(" seg", 5)); //Right shoulder muscles puppy.addPair(n9[1], n1[2], tgString("all right hip shoulder rear upper muscleAct1 seg", 8) + tgString(" seg", 1)); puppy.addPair(n9[1], n1[3], tgString("all right hip shoulder front upper muscleAct1 seg", 8) + tgString(" seg", 1)); puppy.addPair(n9[1], n0[2], tgString("all right hip shoulder front top muscleAct1 seg", 8) + tgString(" seg", 0)); puppy.addPair(n9[1], n2[3], tgString("all right hip shoulder rear top muscleAct1 seg", 8) + tgString(" seg", 2)); puppy.addPair(n9[3], n1[2], tgString("all right hip shoulder rear lower muscleAct1 seg", 8) + tgString(" seg", 1)); puppy.addPair(n9[3], n1[3], tgString("all right hip shoulder front lower muscleAct1 seg", 8) + tgString(" seg", 1)); puppy.addPair(n9[3], n0[1], tgString("all right hip shoulder front bottom muscleAct1 seg", 8) + tgString(" seg", 0)); puppy.addPair(n9[3], n2[4], tgString("all right hip shoulder rear bottom muscleAct1 seg", 8) + tgString(" seg", 2)); //Extra muscles, to move right shoulder forward and back: puppy.addPair(n9[0], n1[2], tgString("all right hip shoulder rear mid muscleAct1 seg", 8) + tgString(" seg", 1)); puppy.addPair(n9[0], n1[3], tgString("all right hip shoulder front mid muscleAct1 seg", 8) + tgString(" seg", 1)); //Right hip muscles puppy.addPair(n10[1], n5[2], tgString("all right hip rear upper muscleAct1 seg", 9) + tgString(" seg", 5)); puppy.addPair(n10[1], n5[3], tgString("all right hip front upper muscleAct1 seg", 9) + tgString(" seg", 5)); puppy.addPair(n10[1], n4[2], tgString("all right hip front top muscleAct1 seg", 9) + tgString(" seg", 4)); puppy.addPair(n10[1], n6[3], tgString("all right hip rear top muscleAct1 seg", 9) + tgString(" seg", 4)); puppy.addPair(n10[3], n5[2], tgString("all right hip rear lower muscleAct1 seg", 9) + tgString(" seg", 5)); puppy.addPair(n10[3], n5[3], tgString("all right hip front lower muscleAct1 seg", 9) + tgString(" seg", 5)); puppy.addPair(n10[3], n4[1], tgString("all right hip bottom muscleAct1 seg", 9) + tgString(" seg", 4)); puppy.addPair(n10[3], n6[4], tgString("all right hip bottom muscleAct1 seg", 9) + tgString(" seg", 6)); //Extra muscles, to move right hip forward and back: puppy.addPair(n10[0], n5[2], tgString("all right hip rear mid muscleAct1 seg", 9) + tgString(" seg", 3)); //could also be n3[3] puppy.addPair(n10[0], n5[3], tgString("all right hip front mid muscleAct1 seg", 9) + tgString(" seg", 5)); //Leg/hip connections: //Left front leg/shoulder puppy.addPair(n11[4], n7[3], tgString("right leg outer bicep muscle seg", 10) + tgString(" seg", 6)); puppy.addPair(n11[4], n7[2], tgString("right leg inner bicep muscle seg", 10) + tgString(" seg", 6)); puppy.addPair(n11[4], n1[4], tgString("right leg front abdomen connection muscle seg", 10) + tgString(" seg", 1)); puppy.addPair(n11[3], n1[1],tgString("right leg front abdomen connection muscle seg", 11) + tgString(" seg", 5)); puppy.addPair(n11[2], n1[4],tgString("right leg front abdomen connection muscle seg", 11) + tgString(" seg", 5)); puppy.addPair(n11[3], n7[3], tgString("right leg outer tricep muscle seg", 10) + tgString(" seg", 6)); puppy.addPair(n11[3], n7[2], tgString("right leg inner tricep muscle seg", 10) + tgString(" seg", 6)); puppy.addPair(n11[2], n7[3], tgString("right leg outer front tricep muscle seg", 10) + tgString(" seg", 6)); puppy.addPair(n11[2], n7[2], tgString("right leg inner front tricep muscle seg", 10) + tgString(" seg", 6)); //Adding muscle to pull up on right front leg: puppy.addPair(n11[4], n7[1], tgString("right legAct mid bicep muscle3 seg", 10) + tgString(" seg", 6)); //Right front leg/shoulder puppy.addPair(n13[4], n9[2], tgString("left leg inner bicep muscle seg", 12) + tgString(" seg", 8)); puppy.addPair(n13[4], n9[3], tgString("left leg outer bicep muscle seg", 12) + tgString(" seg", 8)); puppy.addPair(n13[4], n1[3], tgString("left leg front abdomen connection muscle seg", 12) + tgString(" seg", 1)); puppy.addPair(n13[3], n1[2], tgString("left leg front abdomen connection muscle seg", 13) + tgString(" seg", 5)); puppy.addPair(n13[2], n1[3], tgString("left leg front abdomen connection muscle seg", 13) + tgString(" seg", 5)); puppy.addPair(n13[3], n9[2], tgString("left leg inner tricep muscle seg", 12) + tgString(" seg", 8)); puppy.addPair(n13[3], n9[3], tgString("left leg outer tricep muscle seg", 12) + tgString(" seg", 8)); puppy.addPair(n13[2], n9[2], tgString("left leg inner front tricep muscle seg", 12) + tgString(" seg", 8)); puppy.addPair(n13[2], n9[3], tgString("left leg outer front tricep muscle seg", 12) + tgString(" seg", 8)); //Adding muscle to pull up on left front leg: puppy.addPair(n13[4], n9[1], tgString("left legAct mid bicep muscle3 seg", 12) + tgString(" seg", 8)); //Left rear leg/hip puppy.addPair(n12[4], n8[3], tgString("right leg outer thigh muscle seg", 11) + tgString(" seg", 7)); puppy.addPair(n12[4], n8[2], tgString("right leg inner thigh muscle seg", 11) + tgString(" seg", 7)); puppy.addPair(n12[4], n3[1],tgString("right leg rear abdomen connection muscle seg", 11) + tgString(" seg", 3)); puppy.addPair(n12[3], n5[1],tgString("right leg rear abdomen connection muscle seg", 11) + tgString(" seg", 5)); puppy.addPair(n12[2], n5[4],tgString("right leg rear abdomen connection muscle seg", 11) + tgString(" seg", 5)); puppy.addPair(n12[3], n8[3], tgString("right leg outer calf muscle seg", 11) + tgString(" seg", 7)); puppy.addPair(n12[3], n8[2], tgString("right leg inner calf muscle seg", 11) + tgString(" seg", 7)); puppy.addPair(n12[2], n8[3], tgString("right leg outer front calf muscle seg", 11) + tgString(" seg", 7)); puppy.addPair(n12[2], n8[2], tgString("right leg inner front calf muscle seg", 11) + tgString(" seg", 7)); //Adding muscle to pull rear right leg up: puppy.addPair(n12[4], n8[1], tgString("right legAct central thigh muscle3 seg", 11) + tgString(" seg", 7)); //Right rear leg/hip puppy.addPair(n14[4], n10[2], tgString("left leg inner thigh muscle seg", 13) + tgString(" seg", 9)); puppy.addPair(n14[4], n10[3], tgString("left leg outer thigh muscle seg", 13) + tgString(" seg", 9)); puppy.addPair(n14[4], n3[2], tgString("left leg rear abdomen connection muscle seg", 13) + tgString(" seg", 3)); puppy.addPair(n14[3], n5[2], tgString("left leg rear abdomen connection muscle seg", 13) + tgString(" seg", 5)); puppy.addPair(n14[2], n5[3], tgString("left leg rear abdomen connection muscle seg", 13) + tgString(" seg", 5)); puppy.addPair(n14[3], n10[2], tgString("left leg inner calf muscle seg", 13) + tgString(" seg", 9)); puppy.addPair(n14[3], n10[3], tgString("left leg outer calf muscle seg", 13) + tgString(" seg", 9)); puppy.addPair(n14[2], n10[2], tgString("left leg inner front calf muscle seg", 13) + tgString(" seg", 9)); puppy.addPair(n14[2], n10[3], tgString("left leg outer front calf muscle seg", 13) + tgString(" seg", 9)); //Adding muscle to pull rear left leg up: puppy.addPair(n14[4], n10[1], tgString("left legAct central thigh muscle3 seg", 13) + tgString(" seg", 9)); }