//STEP 5-3:
//Create subsphere
string $sub_figure = $obj + "_sub_figure";
int $isSphere = false;
createSubFigure($obj, $sub_figure, $isSphere);
//PROC: Main method to create sub object.
global proc createSubFigure(string $mainObj, string $sub_figure, int $isSphere){
string $object = $mainObj + "_sub_obj";
string $sub_obj1 = $mainObj + "_sub_obj1";
string $sub_obj2 = $mainObj + "_sub_obj2";
string $sub_obj3 = $mainObj + "_sub_obj3";
string $cmdFirst = $object + ".f[112:223]";
string $cmdSecond = $object + ".f[240:255]";
vector $temp = getFaceCenter($mainObj, 0);
float $radius = getRadius($mainObj, 0, $temp) - 0.5;
polySphere -r $radius -sx 16 -sy 16 -ax 0 1 0 -tx 1 -ch 1 -n $object;
select -r $cmdFirst $cmdSecond;
delete;
ssph_coverVertex($object, $sub_obj1);
ssph_coverEdge($object, $sub_obj2);
string $cmdThird = $object + ".f[48:111]";
select -r $cmdThird;
delete;
ssph_coverRestFaces($object, $sub_obj3, $isSphere);
delete $object;
select -r $sub_obj1;
select -tgl $sub_obj2;
select -tgl $sub_obj3;
group -n $sub_figure;
}
//PROC: Covering edges with cylinders
global proc ssph_coverEdge(string $obj, string $sub_obj2){
string $mash2[];
string $circle[] = `circle -r 0.08`;
rename $circle[0] cir;
float $direction[3] = {0,1,0};
for($a=64; $a<240; $a++){
if($a<128 || $a>=176){
string $cmd1 = $obj + ".e[" + $a + "]";
select $cmd1;
string $edges[] = `polyToCurve -form 2 -degree 3`;
string $name2[] = `extrude -ch true -rn false -po 0 -et 2 -ucp 1 -fpt 1 -upn 1 -rotation 0 -scale 1 -rsp 1 "cir" $edges[0]`;
xform -cp;
delete $edges[0];
float $n[3] = `pointOnSurface -normal $name2[0]`;
float $d = dotProduct($n, $direction, 0);
if($d < 0.0){
reverseSurface -d 0 -ch 1 -rpo 1 $name2[0];
}
$mash2[$a] = $name2[0];
}
}
delete cir;
select -r $mash2[64];
for($a=65; $a<240; $a++){
if($a<128 || $a>=176){
select -tgl $mash2[$a];
}
}
group -n $sub_obj2;
}