public void applyMutations(){
        for(int b = 0; b < getOrganism().getParts().size(); b ++){
//        for( BodyPart b : getOrganism().getParts()){
                 for(Field f : getOrganism().getParts().get(b).getClass().getDeclaredFields()){
              if(getOrganism().getMutables().getNameID(f.getName()) != -1){
//                  System.out.println("SUCCESSFUL MUTATION");
            try {

                     if(f.toString().contains("double")){
//                                double value = 0;  f.setDouble((Object)b, (f.getDouble((Object)b)+Math.random()*1-.5));
 double value = 0;
 if(sex[getNameID(f.getName())]==Mutable.SEX_UNISEX){
     value += getOrganism().getMother().getMutables().getMutable(f.getName()).getValue();
     value += getOrganism().getFather().getMutables().getMutable(f.getName()).getValue();
     value /= 2;
     value += (Math.random()*getMutable(f.getName()).getVariation())-(getMutable(f.getName()).getVariation()/2.);
     value = Math.max(0, value);
     getMutable(f.getName()).setValue(value);
 }else
 if(sex[getNameID(f.getName())]==Mutable.SEX_MALE){
     value += getOrganism().getFather().getMutables().getMutable(f.getName()).getValue();
     value += (Math.random()*getMutable(f.getName()).getVariation())-(getMutable(f.getName()).getVariation()/2.);
     value = Math.max(0, value);
     getMutable(f.getName()).setValue(value);
 }else
 if(sex[getNameID(f.getName())]==Mutable.SEX_FEMALE){
     value += getOrganism().getMother().getMutables().getMutable(f.getName()).getValue();
     value += (Math.random()*getMutable(f.getName()).getVariation())-(getMutable(f.getName()).getVariation()/2.);
     value = Math.max(0, value);
     getMutable(f.getName()).setValue(value);
 }
// System.out.println(f.getName()+ " " + value + " " + sex[getNameID(f.getName())]);
                            f.setDouble((Object)(getOrganism().getParts().get(b)), (value));

                            }
                        } catch (IllegalArgumentException ex) {
                            Logger.getLogger(Organism.class.getName()).log(Level.SEVERE, null, ex);
                        } catch (IllegalAccessException ex) {
                            Logger.getLogger(Organism.class.getName()).log(Level.SEVERE, null, ex);
                        }






             }
        }
        }
   
    }