// Spiral Test File december 2010 // By J.J.Frank #declare Major_Radius = 2; #declare Minor_X_Radius = 0.1; #declare Minor_Y_Radius = 0.2; #declare Speed = -1; #declare Turns = 5.5; //CONTROL SECTION #declare Major_Radius = ((Major_Radius != 0) ? abs(Major_Radius) : 1); #declare Minor_X_Radius = ((Minor_X_Radius != 0) ? abs(Minor_X_Radius) : 0.1); #declare Minor_Y_Radius = ((Minor_Y_Radius != 0) ? abs(Minor_Y_Radius) : 0.01); #declare Speed = ((Speed != 0) ? Speed : 1); #declare Turns = ((Turns != 0) ? abs(Turns) : 1); //INTERNAL PARAMETERS #if (Speed>0) #declare Up = true; // Up = anti-clockwise #else #declare Up = false; #declare Speed = abs(Speed); #end #declare Ellipticity = Minor_X_Radius / Minor_Y_Radius; // POLY 16 #declare Slope = Speed / 4; // POLY 16 #declare A2 = Minor_X_Radius * Minor_X_Radius; // POLY 16 #declare A4 = A2*A2; // POLY 16 #declare P2 = Slope * Slope; // POLY 16 #declare P4 = P2*P2; // POLY 16 #declare P6 = P4*P2; // POLY 16 #declare P8 = P4*P4; // POLY 16 #declare R2 = Major_Radius * Major_Radius; // POLY 16 #declare R4 = R2*R2; // POLY 16 #declare R6 = R4*R2; // POLY 16 #declare R8 = R4*R4; // POLY 16 #declare T2 = Ellipticity * Ellipticity; // POLY 16 #declare T4 = T2*T2; // POLY 16 #declare T6 = T4*T2; // POLY 16 #declare T8 = T4*T4; // POLY 16 #declare Phi = degrees(atan2(Slope,1)); // Clipping #declare Thick = ((Minor_X_Radius > Minor_Y_Radius) ? // Clipping Minor_X_Radius : Minor_Y_Radius); #declare Long = Major_Radius * sqrt(1 + P2); // Clipping #declare High = Slope * Major_Radius; // Building #declare IntTurns = int(Turns); // Building #declare Fraction = Turns - IntTurns; // Building camera { location < 2, 5.5, -5 > look_at < 0.1, 5.5, 0 > } /* *************************** Poly 16 ********************************** */ #declare Spiral_Shape = object { poly { 16 // 969 factors /* x^16 */ < +1 /* x^15.y */ , 0 /* x^15.z */ , 0 /* x^15 */ , 0 /* x^14.y^2 */ , +4*T2 /* x^14.y.z */ , 0 /* x^14.y */ , 0 /* x^14.z^2 */ , +8 /* x^14.z */ , 0 /* x^14 */ , +4*T2*P2*R2-4*(R2+A2) /* x^13.y^3 */ , 0 /* x^13.y^2.z */ , 0 /* x^13.y^2 */ , 0 /* x^13.y.z^2 */ , 0 /* x^13.y.z */ , 0 /* x^13.y */ , 0 /* x^13.z^3 */ , 0 /* x^13.z^2 */ , 0 /* x^13.z */ , 0 /* x^13 */ , 0 /* x^12.y^4 */ , +6*T4 /* x^12.y^3.z */ , 0 /* x^12.y^3 */ , 0 /* x^12.y^2.z^2 */ , +28*T2 /* x^12.y^2.z */ , 0 /* x^12.y^2 */ , +4*T4*P2*R2-4*T2*(R2+3*A2) /* x^12.y.z^3 */ , 0 /* x^12.y.z^2 */ , 0 /* x^12.y.z */ , 0 /* x^12.y */ , 0 /* x^12.z^4 */ , +28 /* x^12.z^3 */ , 0 /* x^12.z^2 */ , +24*T2*P2*R2-28*(R2+A2) /* x^12.z */ , 0 /* x^12 */ , +6*T4*P4*R4+4*(R2+A2)*(R2+A2)+2*(R2-A2)*(R2-A2)-4*T2*P2*R2*(R2+3*A2) /* x^11.y^5 */ , 0 /* x^11.y^4.z */ , 0 /* x^11.y^4 */ , 0 /* x^11.y^3.z^2 */ , 0 /* x^11.y^3.z */ , 0 /* x^11.y^3 */ , 0 /* x^11.y^2.z^3 */ , 0 /* x^11.y^2.z^2 */ , 0 /* x^11.y^2.z */ , 0 /* x^11.y^2 */ , 0 /* x^11.y.z^4 */ , 0 /* x^11.y.z^3 */ , 0 /* x^11.y.z^2 */ , 0 /* x^11.y.z */ , 0 /* x^11.y */ , 0 /* x^11.z^5 */ , 0 /* x^11.z^4 */ , 0 /* x^11.z^3 */ , 0 /* x^11.z^2 */ , 0 /* x^11.z */ , 0 /* x^11 */ , 0 /* x^10.y^6 */ , +4*T6 /* x^10.y^5.z */ , 0 /* x^10.y^5 */ , 0 /* x^10.y^4.z^2 */ , +36*T4 /* x^10.y^4.z */ , 0 /* x^10.y^4 */ , -4*T6*P2*R2+4*T4*(R2-3*A2) /* x^10.y^3.z^3 */ , 0 /* x^10.y^3.z^2 */ , 0 /* x^10.y^3.z */ , 0 /* x^10.y^3 */ , 0 /* x^10.y^2.z^4 */ , +84*T2 /* x^10.y^2.z^3 */ , 0 /* x^10.y^2.z^2 */ , -20*T4*P2*R2-24*T2*(R2+3*A2) /* x^10.y^2.z */ , 0 /* x^10.y^2 */ , -4*T6*P4*R4-8*T4*P2*R2*(5*R2+A2)-4*T2*(R2-A2)*(R2+3*A2) /* x^10.y.z^5 */ , 0 /* x^10.y.z^4 */ , 0 /* x^10.y.z^3 */ , 0 /* x^10.y.z^2 */ , 0 /* x^10.y.z */ , 0 /* x^10.y */ , 0 /* x^10.z^6 */ , +56 /* x^10.z^5 */ , 0 /* x^10.z^4 */ , +60*T2*P2*R2-84*(R2+A2) /* x^10.z^3 */ , 0 /* x^10.z^2 */ , +24*T4*P4*R4-20*T2*P2*R2*(R2+3*A2)+24*(R2+A2)*(R2+A2)+12*(R2-A2)*(R2-A2) /* x^10.z */ , 0 /* x^10 */ , +4*T6*P6*R6-8*T4*P4*R4*A2-4*T2*P2*R2*(R2-A2)*(R2+3*A2)-4*(R2-A2)*(R4-A4) /* x^9.y^7 */ , 0 /* x^9.y^6.z */ , 0 /* x^9.y^6 */ , 0 /* x^9.y^5.z^2 */ , 0 /* x^9.y^5.z */ , 0 /* x^9.y^5 */ , 0 /* x^9.y^4.z^3 */ , 0 /* x^9.y^4.z^2 */ , 0 /* x^9.y^4.z */ , 0 /* x^9.y^4 */ , 0 /* x^9.y^3.z^4 */ , 0 /* x^9.y^3.z^3 */ , 0 /* x^9.y^3.z^2 */ , 0 /* x^9.y^3.z */ , 0 /* x^9.y^3 */ , 0 /* x^9.y^2.z^5 */ , 0 /* x^9.y^2.z^4 */ , 0 /* x^9.y^2.z^3 */ , 0 /* x^9.y^2.z^2 */ , 0 /* x^9.y^2.z */ , 0 /* x^9.y^2 */ , 0 /* x^9.y.z^6 */ , 0 /* x^9.y.z^5 */ , 0 /* x^9.y.z^4 */ , 0 /* x^9.y.z^3 */ , 0 /* x^9.y.z^2 */ , 0 /* x^9.y.z */ , 0 /* x^9.y */ , 0 /* x^9.z^7 */ , 0 /* x^9.z^6 */ , 0 /* x^9.z^5 */ , 0 /* x^9.z^4 */ , 0 /* x^9.z^3 */ , 0 /* x^9.z^2 */ , 0 /* x^9.z */ , 0 /* x^9 */ , 0 /* x^8.y^8 */ , +T8 /* x^8.y^7.z */ , 0 /* x^8.y^7 */ , 0 /* x^8.y^6.z^2 */ , +20*T6 /* x^8.y^6.z */ , 0 /* x^8.y^6 */ , -4*T8*P2*R2+4*T6*(R2-A2) /* x^8.y^5.z^3 */ , 0 /* x^8.y^5.z^2 */ , 0 /* x^8.y^5.z */ , 0 /* x^8.y^5 */ , 0 /* x^8.y^4.z^4 */ , +90*T4 /* x^8.y^4.z^3 */ , 0 /* x^8.y^4.z^2 */ , -16*T6*P2*R2+20*T4*(R2-3*A2) /* x^8.y^4.z */ , 0 /* x^8.y^4 */ , +6*T8*P4*R4-4*T6*P2*R2*(R2-A2)+6*T4*(R2-A2)*(R2-A2) /* x^8.y^3.z^5 */ , 0 /* x^8.y^3.z^4 */ , 0 /* x^8.y^3.z^3 */ , 0 /* x^8.y^3.z^2 */ , 0 /* x^8.y^3.z */ , 0 /* x^8.y^3 */ , 0 /* x^8.y^2.z^6 */ , +140*T2 /* x^8.y^2.z^5 */ , 0 /* x^8.y^2.z^4 */ , +40*T4*P2*R2-60*T2*(R2+3*A2) /* x^8.y^2.z^3 */ , 0 /* x^8.y^2.z^2 */ , -12*T6*P4*R4-32*T4*P2*R2*(5*R2+A2)-20*T2*(R2-A2)*(R2+3*A2) /* x^8.y^2.z */ , 0 /* x^8.y^2 */ , -4*T8*P6*R6-4*T6*P4*R4*(R2-A2)+4*T4*P2*R2*(R2-A2)*(R2-A2)+4*T2*(R2-A2)*(R 2-A2)*(R2-A2) /* x^8.y.z^7 */ , 0 /* x^8.y.z^6 */ , 0 /* x^8.y.z^5 */ , 0 /* x^8.y.z^4 */ , 0 /* x^8.y.z^3 */ , 0 /* x^8.y.z^2 */ , 0 /* x^8.y.z */ , 0 /* x^8.y */ , 0 /* x^8.z^8 */ , +70 /* x^8.z^7 */ , 0 /* x^8.z^6 */ , +80*T2*P2*R2-140*(R2+A2) /* x^8.z^5 */ , 0 /* x^8.z^4 */ , +36*T4*P4*R4-40*T2*P2*R2*(R2+3*A2)+60*(R2+A2)*(R2+A2)+30*(R2-A2)*(R2-A2) /* x^8.z^3 */ , 0 /* x^8.z^2 */ , +8*T6*P6*R6-24*T4*P4*R4*A2-16*T2*P2*R2*(R2-A2)*(R2+3*A2)-20*(R2-A2)*(R4-A 4) /* x^8.z */ , 0 /* x^8 */ , +T8*P8*R8+4*T6*P6*R6*(R2-A2)+6*T4*P4*R4*(R2-A2)*(R2-A2)+4*T2*P2*R2*(R2-A2 )*(R2-A2)*(R2-A2)+(R2-A2)*(R2-A2)*(R2-A2)*(R2-A2) /* x^7.y^9 */ , 0 /* x^7.y^8.z */ , 0 /* x^7.y^8 */ , 0 /* x^7.y^7.z^2 */ , 0 /* x^7.y^7.z */ , 0 /* x^7.y^7 */ , 0 /* x^7.y^6.z^3 */ , 0 /* x^7.y^6.z^2 */ , 0 /* x^7.y^6.z */ , 0 /* x^7.y^6 */ , 0 /* x^7.y^5.z^4 */ , 0 /* x^7.y^5.z^3 */ , 0 /* x^7.y^5.z^2 */ , 0 /* x^7.y^5.z */ , 0 /* x^7.y^5 */ , 0 /* x^7.y^4.z^5 */ , 0 /* x^7.y^4.z^4 */ , 0 /* x^7.y^4.z^3 */ , 0 /* x^7.y^4.z^2 */ , 0 /* x^7.y^4.z */ , 0 /* x^7.y^4 */ , 0 /* x^7.y^3.z^6 */ , 0 /* x^7.y^3.z^5 */ , 0 /* x^7.y^3.z^4 */ , 0 /* x^7.y^3.z^3 */ , 0 /* x^7.y^3.z^2 */ , 0 /* x^7.y^3.z */ , 0 /* x^7.y^3 */ , 0 /* x^7.y^2.z^7 */ , 0 /* x^7.y^2.z^6 */ , 0 /* x^7.y^2.z^5 */ , 0 /* x^7.y^2.z^4 */ , 0 /* x^7.y^2.z^3 */ , 0 /* x^7.y^2.z^2 */ , 0 /* x^7.y^2.z */ , 0 /* x^7.y^2 */ , 0 /* x^7.y.z^8 */ , 0 /* x^7.y.z^7 */ , 0 /* x^7.y.z^6 */ , 0 /* x^7.y.z^5 */ , 0 /* x^7.y.z^4 */ , 0 /* x^7.y.z^3 */ , 0 /* x^7.y.z^2 */ , 0 /* x^7.y.z */ , 0 /* x^7.y */ , 0 /* x^7.z^9 */ , 0 /* x^7.z^8 */ , 0 /* x^7.z^7 */ , 0 /* x^7.z^6 */ , 0 /* x^7.z^5 */ , 0 /* x^7.z^4 */ , 0 /* x^7.z^3 */ , 0 /* x^7.z^2 */ , 0 /* x^7.z */ , 0 /* x^7 */ , 0 /* x^6.y^10 */ , 0 /* x^6.y^9.z */ , 0 /* x^6.y^9 */ , 0 /* x^6.y^8.z^2 */ , +4*T8 /* x^6.y^8.z */ , 0 /* x^6.y^8 */ , 0 /* x^6.y^7.z^3 */ , 0 /* x^6.y^7.z^2 */ , 0 /* x^6.y^7.z */ , 0 /* x^6.y^7 */ , 0 /* x^6.y^6.z^4 */ , +40*T6 /* x^6.y^6.z^3 */ , 0 /* x^6.y^6.z^2 */ , -12*T8*P2*R2+16*T6*(R2-A2) /* x^6.y^6.z */ , 0 /* x^6.y^6 */ , 0 /* x^6.y^5.z^5 */ , 0 /* x^6.y^5.z^4 */ , 0 /* x^6.y^5.z^3 */ , 0 /* x^6.y^5.z^2 */ , 0 /* x^6.y^5.z */ , 0 /* x^6.y^5 */ , 0 /* x^6.y^4.z^6 */ , +120*T4 /* x^6.y^4.z^5 */ , 0 /* x^6.y^4.z^4 */ , -24*T6*P2*R2+40*T4*(R2-3*A2) /* x^6.y^4.z^3 */ , 0 /* x^6.y^4.z^2 */ , +12*T8*P4*R4-12*T6*P2*R2*(R2-A2)+24*T4*(R2-A2)*(R2-A2) /* x^6.y^4.z */ , 0 /* x^6.y^4 */ , 0 /* x^6.y^3.z^7 */ , 0 /* x^6.y^3.z^6 */ , 0 /* x^6.y^3.z^5 */ , 0 /* x^6.y^3.z^4 */ , 0 /* x^6.y^3.z^3 */ , 0 /* x^6.y^3.z^2 */ , 0 /* x^6.y^3.z */ , 0 /* x^6.y^3 */ , 0 /* x^6.y^2.z^8 */ , +140*T2 /* x^6.y^2.z^7 */ , 0 /* x^6.y^2.z^6 */ , +40*T4*P2*R2-80*T2*(R2+3*A2) /* x^6.y^2.z^5 */ , 0 /* x^6.y^2.z^4 */ , -12*T6*P4*R4-48*T4*P2*R2*(5*R2+A2)-40*T2*(R2-A2)*(R2+3*A2) /* x^6.y^2.z^3 */ , 0 /* x^6.y^2.z^2 */ , -4*T8*P6*R6-8*T6*P4*R4*(R2-A2)+12*T4*P2*R2*(R2-A2)*(R2-A2)+16*T2*(R2-A2)* (R2-A2)*(R2-A2) /* x^6.y^2.z */ , 0 /* x^6.y^2 */ , 0 /* x^6.y.z^9 */ , 0 /* x^6.y.z^8 */ , 0 /* x^6.y.z^7 */ , 0 /* x^6.y.z^6 */ , 0 /* x^6.y.z^5 */ , 0 /* x^6.y.z^4 */ , 0 /* x^6.y.z^3 */ , 0 /* x^6.y.z^2 */ , 0 /* x^6.y.z */ , 0 /* x^6.y */ , 0 /* x^6.z^10 */ , +56 /* x^6.z^9 */ , 0 /* x^6.z^8 */ , +60*T2*P2*R2-140*(R2+A2) /* x^6.z^7 */ , 0 /* x^6.z^6 */ , +24*T4*P4*R4-40*T2*P2*R2*(R2+3*A2)+80*(R2+A2)*(R2+A2)+40*(R2-A2)*(R2-A2) /* x^6.z^5 */ , 0 /* x^6.z^4 */ , +4*T6*P6*R6-24*T4*P4*R4*A2-24*T2*P2*R2*(R2-A2)*(R2+3*A2)-40*(R2-A2)*(R4-A 4) /* x^6.z^3 */ , 0 /* x^6.z^2 */ , +4*T6*P6*R6*(R2-A2)+12*T4*P4*R4*(R2-A2)*(R2-A2)+12*T2*P2*R2*(R2-A2)*(R2-A 2)*(R2-A2)+4*(R2-A2)*(R2-A2)*(R2-A2)*(R2-A2) /* x^6.z */ , 0 /* x^6 */ , 0 /* x^5.y^11 */ , 0 /* x^5.y^10.z */ , 0 /* x^5.y^10 */ , 0 /* x^5.y^9.z^2 */ , 0 /* x^5.y^9.z */ , 0 /* x^5.y^9 */ , 0 /* x^5.y^8.z^3 */ , 0 /* x^5.y^8.z^2 */ , 0 /* x^5.y^8.z */ , 0 /* x^5.y^8 */ , 0 /* x^5.y^7.z^4 */ , 0 /* x^5.y^7.z^3 */ , 0 /* x^5.y^7.z^2 */ , 0 /* x^5.y^7.z */ , 0 /* x^5.y^7 */ , 0 /* x^5.y^6.z^5 */ , 0 /* x^5.y^6.z^4 */ , 0 /* x^5.y^6.z^3 */ , 0 /* x^5.y^6.z^2 */ , 0 /* x^5.y^6.z */ , 0 /* x^5.y^6 */ , 0 /* x^5.y^5.z^6 */ , 0 /* x^5.y^5.z^5 */ , 0 /* x^5.y^5.z^4 */ , 0 /* x^5.y^5.z^3 */ , 0 /* x^5.y^5.z^2 */ , 0 /* x^5.y^5.z */ , 0 /* x^5.y^5 */ , 0 /* x^5.y^4.z^7 */ , 0 /* x^5.y^4.z^6 */ , 0 /* x^5.y^4.z^5 */ , 0 /* x^5.y^4.z^4 */ , 0 /* x^5.y^4.z^3 */ , 0 /* x^5.y^4.z^2 */ , 0 /* x^5.y^4.z */ , 0 /* x^5.y^4 */ , 0 /* x^5.y^3.z^8 */ , 0 /* x^5.y^3.z^7 */ , 0 /* x^5.y^3.z^6 */ , 0 /* x^5.y^3.z^5 */ , 0 /* x^5.y^3.z^4 */ , 0 /* x^5.y^3.z^3 */ , 0 /* x^5.y^3.z^2 */ , 0 /* x^5.y^3.z */ , 0 /* x^5.y^3 */ , 0 /* x^5.y^2.z^9 */ , 0 /* x^5.y^2.z^8 */ , 0 /* x^5.y^2.z^7 */ , 0 /* x^5.y^2.z^6 */ , 0 /* x^5.y^2.z^5 */ , 0 /* x^5.y^2.z^4 */ , 0 /* x^5.y^2.z^3 */ , 0 /* x^5.y^2.z^2 */ , 0 /* x^5.y^2.z */ , 0 /* x^5.y^2 */ , 0 /* x^5.y.z^10 */ , 0 /* x^5.y.z^9 */ , 0 /* x^5.y.z^8 */ , 0 /* x^5.y.z^7 */ , 0 /* x^5.y.z^6 */ , 0 /* x^5.y.z^5 */ , 0 /* x^5.y.z^4 */ , 0 /* x^5.y.z^3 */ , 0 /* x^5.y.z^2 */ , 0 /* x^5.y.z */ , 0 /* x^5.y */ , 0 /* x^5.z^11 */ , 0 /* x^5.z^10 */ , 0 /* x^5.z^9 */ , 0 /* x^5.z^8 */ , 0 /* x^5.z^7 */ , 0 /* x^5.z^6 */ , 0 /* x^5.z^5 */ , 0 /* x^5.z^4 */ , 0 /* x^5.z^3 */ , 0 /* x^5.z^2 */ , 0 /* x^5.z */ , 0 /* x^5 */ , 0 /* x^4.y^12 */ , 0 /* x^4.y^11.z */ , 0 /* x^4.y^11 */ , 0 /* x^4.y^10.z^2 */ , 0 /* x^4.y^10.z */ , 0 /* x^4.y^10 */ , 0 /* x^4.y^9.z^3 */ , 0 /* x^4.y^9.z^2 */ , 0 /* x^4.y^9.z */ , 0 /* x^4.y^9 */ , 0 /* x^4.y^8.z^4 */ , +6*T8 /* x^4.y^8.z^3 */ , 0 /* x^4.y^8.z^2 */ , 0 /* x^4.y^8.z */ , 0 /* x^4.y^8 */ , 0 /* x^4.y^7.z^5 */ , 0 /* x^4.y^7.z^4 */ , 0 /* x^4.y^7.z^3 */ , 0 /* x^4.y^7.z^2 */ , 0 /* x^4.y^7.z */ , 0 /* x^4.y^7 */ , 0 /* x^4.y^6.z^6 */ , +40*T6 /* x^4.y^6.z^5 */ , 0 /* x^4.y^6.z^4 */ , -12*T8*P2*R2+24*T6*(R2-A2) /* x^4.y^6.z^3 */ , 0 /* x^4.y^6.z^2 */ , 0 /* x^4.y^6.z */ , 0 /* x^4.y^6 */ , 0 /* x^4.y^5.z^7 */ , 0 /* x^4.y^5.z^6 */ , 0 /* x^4.y^5.z^5 */ , 0 /* x^4.y^5.z^4 */ , 0 /* x^4.y^5.z^3 */ , 0 /* x^4.y^5.z^2 */ , 0 /* x^4.y^5.z */ , 0 /* x^4.y^5 */ , 0 /* x^4.y^4.z^8 */ , +90*T4 /* x^4.y^4.z^7 */ , 0 /* x^4.y^4.z^6 */ , -16*T6*P2*R2+40*T4*(R2-3*A2) /* x^4.y^4.z^5 */ , 0 /* x^4.y^4.z^4 */ , +6*T8*P4*R4-12*T6*P2*R2*(R2-A2)+36*T4*(R2-A2)*(R2-A2) /* x^4.y^4.z^3 */ , 0 /* x^4.y^4.z^2 */ , 0 /* x^4.y^4.z */ , 0 /* x^4.y^4 */ , 0 /* x^4.y^3.z^9 */ , 0 /* x^4.y^3.z^8 */ , 0 /* x^4.y^3.z^7 */ , 0 /* x^4.y^3.z^6 */ , 0 /* x^4.y^3.z^5 */ , 0 /* x^4.y^3.z^4 */ , 0 /* x^4.y^3.z^3 */ , 0 /* x^4.y^3.z^2 */ , 0 /* x^4.y^3.z */ , 0 /* x^4.y^3 */ , 0 /* x^4.y^2.z^10 */ , +84*T2 /* x^4.y^2.z^9 */ , 0 /* x^4.y^2.z^8 */ , +20*T4*P2*R2-60*T2*(R2+3*A2) /* x^4.y^2.z^7 */ , 0 /* x^4.y^2.z^6 */ , -4*T6*P4*R4-32*T4*P2*R2*(5*R2+A2)-40*T2*(R2-A2)*(R2+3*A2) /* x^4.y^2.z^5 */ , 0 /* x^4.y^2.z^4 */ , -4*T6*P4*R4*(R2-A2)+12*T4*P2*R2*(R2-A2)*(R2-A2)+24*T2*(R2-A2)*(R2-A2)*(R2 -A2) /* x^4.y^2.z^3 */ , 0 /* x^4.y^2.z^2 */ , 0 /* x^4.y^2.z */ , 0 /* x^4.y^2 */ , 0 /* x^4.y.z^11 */ , 0 /* x^4.y.z^10 */ , 0 /* x^4.y.z^9 */ , 0 /* x^4.y.z^8 */ , 0 /* x^4.y.z^7 */ , 0 /* x^4.y.z^6 */ , 0 /* x^4.y.z^5 */ , 0 /* x^4.y.z^4 */ , 0 /* x^4.y.z^3 */ , 0 /* x^4.y.z^2 */ , 0 /* x^4.y.z */ , 0 /* x^4.y */ , 0 /* x^4.z^12 */ , +28 /* x^4.z^11 */ , 0 /* x^4.z^10 */ , +24*T2*P2*R2-84*(R2+A2) /* x^4.z^9 */ , 0 /* x^4.z^8 */ , +6*T4*P4*R4-20*T2*P2*R2*(R2+3*A2)+60*(R2+A2)*(R2+A2)+30*(R2-A2)*(R2-A2) /* x^4.z^7 */ , 0 /* x^4.z^6 */ , -8*T4*P4*R4*A2-16*T2*P2*R2*(R2-A2)*(R2+3*A2)-40*(R2-A2)*(R4-A4) /* x^4.z^5 */ , 0 /* x^4.z^4 */ , +6*T4*P4*R4*(R2-A2)*(R2-A2)+12*T2*P2*R2*(R2-A2)*(R2-A2)*(R2-A2)+6*(R2-A2) *(R2-A2)*(R2-A2)*(R2-A2) /* x^4.z^3 */ , 0 /* x^4.z^2 */ , 0 /* x^4.z */ , 0 /* x^4 */ , 0 /* x^3.y^13 */ , 0 /* x^3.y^12.z */ , 0 /* x^3.y^12 */ , 0 /* x^3.y^11.z^2 */ , 0 /* x^3.y^11.z */ , 0 /* x^3.y^11 */ , 0 /* x^3.y^10.z^3 */ , 0 /* x^3.y^10.z^2 */ , 0 /* x^3.y^10.z */ , 0 /* x^3.y^10 */ , 0 /* x^3.y^9.z^4 */ , 0 /* x^3.y^9.z^3 */ , 0 /* x^3.y^9.z^2 */ , 0 /* x^3.y^9.z */ , 0 /* x^3.y^9 */ , 0 /* x^3.y^8.z^5 */ , 0 /* x^3.y^8.z^4 */ , 0 /* x^3.y^8.z^3 */ , 0 /* x^3.y^8.z^2 */ , 0 /* x^3.y^8.z */ , 0 /* x^3.y^8 */ , 0 /* x^3.y^7.z^6 */ , 0 /* x^3.y^7.z^5 */ , 0 /* x^3.y^7.z^4 */ , 0 /* x^3.y^7.z^3 */ , 0 /* x^3.y^7.z^2 */ , 0 /* x^3.y^7.z */ , 0 /* x^3.y^7 */ , 0 /* x^3.y^6.z^7 */ , 0 /* x^3.y^6.z^6 */ , 0 /* x^3.y^6.z^5 */ , 0 /* x^3.y^6.z^4 */ , 0 /* x^3.y^6.z^3 */ , 0 /* x^3.y^6.z^2 */ , 0 /* x^3.y^6.z */ , 0 /* x^3.y^6 */ , 0 /* x^3.y^5.z^8 */ , 0 /* x^3.y^5.z^7 */ , 0 /* x^3.y^5.z^6 */ , 0 /* x^3.y^5.z^5 */ , 0 /* x^3.y^5.z^4 */ , 0 /* x^3.y^5.z^3 */ , 0 /* x^3.y^5.z^2 */ , 0 /* x^3.y^5.z */ , 0 /* x^3.y^5 */ , 0 /* x^3.y^4.z^9 */ , 0 /* x^3.y^4.z^8 */ , 0 /* x^3.y^4.z^7 */ , 0 /* x^3.y^4.z^6 */ , 0 /* x^3.y^4.z^5 */ , 0 /* x^3.y^4.z^4 */ , 0 /* x^3.y^4.z^3 */ , 0 /* x^3.y^4.z^2 */ , 0 /* x^3.y^4.z */ , 0 /* x^3.y^4 */ , 0 /* x^3.y^3.z^10 */ , 0 /* x^3.y^3.z^9 */ , 0 /* x^3.y^3.z^8 */ , 0 /* x^3.y^3.z^7 */ , 0 /* x^3.y^3.z^6 */ , 0 /* x^3.y^3.z^5 */ , 0 /* x^3.y^3.z^4 */ , 0 /* x^3.y^3.z^3 */ , 0 /* x^3.y^3.z^2 */ , 0 /* x^3.y^3.z */ , 0 /* x^3.y^3 */ , 0 /* x^3.y^2.z^11 */ , 0 /* x^3.y^2.z^10 */ , 0 /* x^3.y^2.z^9 */ , 0 /* x^3.y^2.z^8 */ , 0 /* x^3.y^2.z^7 */ , 0 /* x^3.y^2.z^6 */ , 0 /* x^3.y^2.z^5 */ , 0 /* x^3.y^2.z^4 */ , 0 /* x^3.y^2.z^3 */ , 0 /* x^3.y^2.z^2 */ , 0 /* x^3.y^2.z */ , 0 /* x^3.y^2 */ , 0 /* x^3.y.z^12 */ , 0 /* x^3.y.z^11 */ , 0 /* x^3.y.z^10 */ , 0 /* x^3.y.z^9 */ , 0 /* x^3.y.z^8 */ , 0 /* x^3.y.z^7 */ , 0 /* x^3.y.z^6 */ , 0 /* x^3.y.z^5 */ , 0 /* x^3.y.z^4 */ , 0 /* x^3.y.z^3 */ , 0 /* x^3.y.z^2 */ , 0 /* x^3.y.z */ , 0 /* x^3.y */ , 0 /* x^3.z^13 */ , 0 /* x^3.z^12 */ , 0 /* x^3.z^11 */ , 0 /* x^3.z^10 */ , 0 /* x^3.z^9 */ , 0 /* x^3.z^8 */ , 0 /* x^3.z^7 */ , 0 /* x^3.z^6 */ , 0 /* x^3.z^5 */ , 0 /* x^3.z^4 */ , 0 /* x^3.z^3 */ , 0 /* x^3.z^2 */ , 0 /* x^3.z */ , 0 /* x^3 */ , 0 /* x^2.y^14 */ , 0 /* x^2.y^13.z */ , 0 /* x^2.y^13 */ , 0 /* x^2.y^12.z^2 */ , 0 /* x^2.y^12.z */ , 0 /* x^2.y^12 */ , 0 /* x^2.y^11.z^3 */ , 0 /* x^2.y^11.z^2 */ , 0 /* x^2.y^11.z */ , 0 /* x^2.y^11 */ , 0 /* x^2.y^10.z^4 */ , 0 /* x^2.y^10.z^3 */ , 0 /* x^2.y^10.z^2 */ , 0 /* x^2.y^10.z */ , 0 /* x^2.y^10 */ , 0 /* x^2.y^9.z^5 */ , 0 /* x^2.y^9.z^4 */ , 0 /* x^2.y^9.z^3 */ , 0 /* x^2.y^9.z^2 */ , 0 /* x^2.y^9.z */ , 0 /* x^2.y^9 */ , 0 /* x^2.y^8.z^6 */ , +4*T8 /* x^2.y^8.z^5 */ , 0 /* x^2.y^8.z^4 */ , 0 /* x^2.y^8.z^3 */ , 0 /* x^2.y^8.z^2 */ , 0 /* x^2.y^8.z */ , 0 /* x^2.y^8 */ , 0 /* x^2.y^7.z^7 */ , 0 /* x^2.y^7.z^6 */ , 0 /* x^2.y^7.z^5 */ , 0 /* x^2.y^7.z^4 */ , 0 /* x^2.y^7.z^3 */ , 0 /* x^2.y^7.z^2 */ , 0 /* x^2.y^7.z */ , 0 /* x^2.y^7 */ , 0 /* x^2.y^6.z^8 */ , +20*T6 /* x^2.y^6.z^7 */ , 0 /* x^2.y^6.z^6 */ , -4*T8*P2*R2+16*T6*(R2-A2) /* x^2.y^6.z^5 */ , 0 /* x^2.y^6.z^4 */ , 0 /* x^2.y^6.z^3 */ , 0 /* x^2.y^6.z^2 */ , 0 /* x^2.y^6.z */ , 0 /* x^2.y^6 */ , 0 /* x^2.y^5.z^9 */ , 0 /* x^2.y^5.z^8 */ , 0 /* x^2.y^5.z^7 */ , 0 /* x^2.y^5.z^6 */ , 0 /* x^2.y^5.z^5 */ , 0 /* x^2.y^5.z^4 */ , 0 /* x^2.y^5.z^3 */ , 0 /* x^2.y^5.z^2 */ , 0 /* x^2.y^5.z */ , 0 /* x^2.y^5 */ , 0 /* x^2.y^4.z^10 */ , +36*T4 /* x^2.y^4.z^9 */ , 0 /* x^2.y^4.z^8 */ , -4*T6*P2*R2+20*T4*(R2-3*A2) /* x^2.y^4.z^7 */ , 0 /* x^2.y^4.z^6 */ , -4*T6*P2*R2*(R2-A2)+24*T4*(R2-A2)*(R2-A2) /* x^2.y^4.z^5 */ , 0 /* x^2.y^4.z^4 */ , 0 /* x^2.y^4.z^3 */ , 0 /* x^2.y^4.z^2 */ , 0 /* x^2.y^4.z */ , 0 /* x^2.y^4 */ , 0 /* x^2.y^3.z^11 */ , 0 /* x^2.y^3.z^10 */ , 0 /* x^2.y^3.z^9 */ , 0 /* x^2.y^3.z^8 */ , 0 /* x^2.y^3.z^7 */ , 0 /* x^2.y^3.z^6 */ , 0 /* x^2.y^3.z^5 */ , 0 /* x^2.y^3.z^4 */ , 0 /* x^2.y^3.z^3 */ , 0 /* x^2.y^3.z^2 */ , 0 /* x^2.y^3.z */ , 0 /* x^2.y^3 */ , 0 /* x^2.y^2.z^12 */ , +28*T2 /* x^2.y^2.z^11 */ , 0 /* x^2.y^2.z^10 */ , -8*T4*P2*R2-24*T2*(R2+3*A2) /* x^2.y^2.z^9 */ , 0 /* x^2.y^2.z^8 */ , -8*T4*P2*R2*(5*R2+A2)-20*T2*(R2-A2)*(R2+3*A2) /* x^2.y^2.z^7 */ , 0 /* x^2.y^2.z^6 */ , +4*T4*P2*R2*(R2-A2)*(R2-A2)+16*T2*(R2-A2)*(R2-A2)*(R2-A2) /* x^2.y^2.z^5 */ , 0 /* x^2.y^2.z^4 */ , 0 /* x^2.y^2.z^3 */ , 0 /* x^2.y^2.z^2 */ , 0 /* x^2.y^2.z */ , 0 /* x^2.y^2 */ , 0 /* x^2.y.z^13 */ , 0 /* x^2.y.z^12 */ , 0 /* x^2.y.z^11 */ , 0 /* x^2.y.z^10 */ , 0 /* x^2.y.z^9 */ , 0 /* x^2.y.z^8 */ , 0 /* x^2.y.z^7 */ , 0 /* x^2.y.z^6 */ , 0 /* x^2.y.z^5 */ , 0 /* x^2.y.z^4 */ , 0 /* x^2.y.z^3 */ , 0 /* x^2.y.z^2 */ , 0 /* x^2.y.z */ , 0 /* x^2.y */ , 0 /* x^2.z^14 */ , +8 /* x^2.z^13 */ , 0 /* x^2.z^12 */ , +4*T2*P2*R2-28*(R2+A2) /* x^2.z^11 */ , 0 /* x^2.z^10 */ , -4*T2*P2*R2*(R2+3*A2)+24*(R2+A2)*(R2+A2)+12*(R2-A2)*(R2-A2) /* x^2.z^9 */ , 0 /* x^2.z^8 */ , -4*T2*P2*R2*(R2-A2)*(R2+3*A2)-20*(R2-A2)*(R4-A4) /* x^2.z^7 */ , 0 /* x^2.z^6 */ , +4*T2*P2*R2*(R2-A2)*(R2-A2)*(R2-A2)+4*(R2-A2)*(R2-A2)*(R2-A2)*(R2-A2) /* x^2.z^5 */ , 0 /* x^2.z^4 */ , 0 /* x^2.z^3 */ , 0 /* x^2.z^2 */ , 0 /* x^2.z */ , 0 /* x^2 */ , 0 /* x.y^15 */ , 0 /* x.y^14.z */ , 0 /* x.y^14 */ , 0 /* x.y^13.z^2 */ , 0 /* x.y^13.z */ , 0 /* x.y^13 */ , 0 /* x.y^12.z^3 */ , 0 /* x.y^12.z^2 */ , 0 /* x.y^12.z */ , 0 /* x.y^12 */ , 0 /* x.y^11.z^4 */ , 0 /* x.y^11.z^3 */ , 0 /* x.y^11.z^2 */ , 0 /* x.y^11.z */ , 0 /* x.y^11 */ , 0 /* x.y^10.z^5 */ , 0 /* x.y^10.z^4 */ , 0 /* x.y^10.z^3 */ , 0 /* x.y^10.z^2 */ , 0 /* x.y^10.z */ , 0 /* x.y^10 */ , 0 /* x.y^9.z^6 */ , 0 /* x.y^9.z^5 */ , 0 /* x.y^9.z^4 */ , 0 /* x.y^9.z^3 */ , 0 /* x.y^9.z^2 */ , 0 /* x.y^9.z */ , 0 /* x.y^9 */ , 0 /* x.y^8.z^7 */ , 0 /* x.y^8.z^6 */ , 0 /* x.y^8.z^5 */ , 0 /* x.y^8.z^4 */ , 0 /* x.y^8.z^3 */ , 0 /* x.y^8.z^2 */ , 0 /* x.y^8.z */ , 0 /* x.y^8 */ , 0 /* x.y^7.z^8 */ , 0 /* x.y^7.z^7 */ , 0 /* x.y^7.z^6 */ , 0 /* x.y^7.z^5 */ , 0 /* x.y^7.z^4 */ , 0 /* x.y^7.z^3 */ , 0 /* x.y^7.z^2 */ , 0 /* x.y^7.z */ , 0 /* x.y^7 */ , 0 /* x.y^6.z^9 */ , 0 /* x.y^6.z^8 */ , 0 /* x.y^6.z^7 */ , 0 /* x.y^6.z^6 */ , 0 /* x.y^6.z^5 */ , 0 /* x.y^6.z^4 */ , 0 /* x.y^6.z^3 */ , 0 /* x.y^6.z^2 */ , 0 /* x.y^6.z */ , 0 /* x.y^6 */ , 0 /* x.y^5.z^10 */ , 0 /* x.y^5.z^9 */ , 0 /* x.y^5.z^8 */ , 0 /* x.y^5.z^7 */ , 0 /* x.y^5.z^6 */ , 0 /* x.y^5.z^5 */ , 0 /* x.y^5.z^4 */ , 0 /* x.y^5.z^3 */ , 0 /* x.y^5.z^2 */ , 0 /* x.y^5.z */ , 0 /* x.y^5 */ , 0 /* x.y^4.z^11 */ , 0 /* x.y^4.z^10 */ , 0 /* x.y^4.z^9 */ , 0 /* x.y^4.z^8 */ , 0 /* x.y^4.z^7 */ , 0 /* x.y^4.z^6 */ , 0 /* x.y^4.z^5 */ , 0 /* x.y^4.z^4 */ , 0 /* x.y^4.z^3 */ , 0 /* x.y^4.z^2 */ , 0 /* x.y^4.z */ , 0 /* x.y^4 */ , 0 /* x.y^3.z^12 */ , 0 /* x.y^3.z^11 */ , 0 /* x.y^3.z^10 */ , 0 /* x.y^3.z^9 */ , 0 /* x.y^3.z^8 */ , 0 /* x.y^3.z^7 */ , 0 /* x.y^3.z^6 */ , 0 /* x.y^3.z^5 */ , 0 /* x.y^3.z^4 */ , 0 /* x.y^3.z^3 */ , 0 /* x.y^3.z^2 */ , 0 /* x.y^3.z */ , 0 /* x.y^3 */ , 0 /* x.y^2.z^13 */ , 0 /* x.y^2.z^12 */ , 0 /* x.y^2.z^11 */ , 0 /* x.y^2.z^10 */ , 0 /* x.y^2.z^9 */ , 0 /* x.y^2.z^8 */ , 0 /* x.y^2.z^7 */ , 0 /* x.y^2.z^6 */ , 0 /* x.y^2.z^5 */ , 0 /* x.y^2.z^4 */ , 0 /* x.y^2.z^3 */ , 0 /* x.y^2.z^2 */ , 0 /* x.y^2.z */ , 0 /* x.y^2 */ , 0 /* x.y.z^14 */ , 0 /* x.y.z^13 */ , 0 /* x.y.z^12 */ , 0 /* x.y.z^11 */ , 0 /* x.y.z^10 */ , 0 /* x.y.z^9 */ , 0 /* x.y.z^8 */ , 0 /* x.y.z^7 */ , 0 /* x.y.z^6 */ , 0 /* x.y.z^5 */ , 0 /* x.y.z^4 */ , 0 /* x.y.z^3 */ , 0 /* x.y.z^2 */ , 0 /* x.y.z */ , 0 /* x.y */ , 0 /* x.z^15 */ , 0 /* x.z^14 */ , 0 /* x.z^13 */ , 0 /* x.z^12 */ , 0 /* x.z^11 */ , 0 /* x.z^10 */ , 0 /* x.z^9 */ , 0 /* x.z^8 */ , 0 /* x.z^7 */ , 0 /* x.z^6 */ , 0 /* x.z^5 */ , 0 /* x.z^4 */ , 0 /* x.z^3 */ , 0 /* x.z^2 */ , 0 /* x.z */ , 0 /* x */ , 0 /* y^16 */ , 0 /* y^15.z */ , 0 /* y^15 */ , 0 /* y^14.z^2 */ , 0 /* y^14.z */ , 0 /* y^14 */ , 0 /* y^13.z^3 */ , 0 /* y^13.z^2 */ , 0 /* y^13.z */ , 0 /* y^13 */ , 0 /* y^12.z^4 */ , 0 /* y^12.z^3 */ , 0 /* y^12.z^2 */ , 0 /* y^12.z */ , 0 /* y^12 */ , 0 /* y^11.z^5 */ , 0 /* y^11.z^4 */ , 0 /* y^11.z^3 */ , 0 /* y^11.z^2 */ , 0 /* y^11.z */ , 0 /* y^11 */ , 0 /* y^10.z^6 */ , 0 /* y^10.z^5 */ , 0 /* y^10.z^4 */ , 0 /* y^10.z^3 */ , 0 /* y^10.z^2 */ , 0 /* y^10.z */ , 0 /* y^10 */ , 0 /* y^9.z^7 */ , 0 /* y^9.z^6 */ , 0 /* y^9.z^5 */ , 0 /* y^9.z^4 */ , 0 /* y^9.z^3 */ , 0 /* y^9.z^2 */ , 0 /* y^9.z */ , 0 /* y^9 */ , 0 /* y^8.z^8 */ , +T8 /* y^8.z^7 */ , 0 /* y^8.z^6 */ , 0 /* y^8.z^5 */ , 0 /* y^8.z^4 */ , 0 /* y^8.z^3 */ , 0 /* y^8.z^2 */ , 0 /* y^8.z */ , 0 /* y^8 */ , 0 /* y^7.z^9 */ , 0 /* y^7.z^8 */ , 0 /* y^7.z^7 */ , 0 /* y^7.z^6 */ , 0 /* y^7.z^5 */ , 0 /* y^7.z^4 */ , 0 /* y^7.z^3 */ , 0 /* y^7.z^2 */ , 0 /* y^7.z */ , 0 /* y^7 */ , 0 /* y^6.z^10 */ , +4*T6 /* y^6.z^9 */ , 0 /* y^6.z^8 */ , +4*T6*(R2-A2) /* y^6.z^7 */ , 0 /* y^6.z^6 */ , 0 /* y^6.z^5 */ , 0 /* y^6.z^4 */ , 0 /* y^6.z^3 */ , 0 /* y^6.z^2 */ , 0 /* y^6.z */ , 0 /* y^6 */ , 0 /* y^5.z^11 */ , 0 /* y^5.z^10 */ , 0 /* y^5.z^9 */ , 0 /* y^5.z^8 */ , 0 /* y^5.z^7 */ , 0 /* y^5.z^6 */ , 0 /* y^5.z^5 */ , 0 /* y^5.z^4 */ , 0 /* y^5.z^3 */ , 0 /* y^5.z^2 */ , 0 /* y^5.z */ , 0 /* y^5 */ , 0 /* y^4.z^12 */ , +6*T4 /* y^4.z^11 */ , 0 /* y^4.z^10 */ , +4*T4*(R2-3*A2) /* y^4.z^9 */ , 0 /* y^4.z^8 */ , +6*T4*(R2-A2) /* y^4.z^7 */ , 0 /* y^4.z^6 */ , 0 /* y^4.z^5 */ , 0 /* y^4.z^4 */ , 0 /* y^4.z^3 */ , 0 /* y^4.z^2 */ , 0 /* y^4.z */ , 0 /* y^4 */ , 0 /* y^3.z^13 */ , 0 /* y^3.z^12 */ , 0 /* y^3.z^11 */ , 0 /* y^3.z^10 */ , 0 /* y^3.z^9 */ , 0 /* y^3.z^8 */ , 0 /* y^3.z^7 */ , 0 /* y^3.z^6 */ , 0 /* y^3.z^5 */ , 0 /* y^3.z^4 */ , 0 /* y^3.z^3 */ , 0 /* y^3.z^2 */ , 0 /* y^3.z */ , 0 /* y^3 */ , 0 /* y^2.z^14 */ , +4*T2 /* y^2.z^13 */ , 0 /* y^2.z^12 */ , -4*T2*(R2+3*A2) /* y^2.z^11 */ , 0 /* y^2.z^10 */ , +12*T4*P2*R2-4*T2*(R2-A2)*(R2+3*A2) /* y^2.z^9 */ , 0 /* y^2.z^8 */ , +4*T2*(R2-A2)*(R2-A2)*(R2-A2) /* y^2.z^7 */ , 0 /* y^2.z^6 */ , 0 /* y^2.z^5 */ , 0 /* y^2.z^4 */ , 0 /* y^2.z^3 */ , 0 /* y^2.z^2 */ , 0 /* y^2.z */ , 0 /* y^2 */ , 0 /* y.z^15 */ , 0 /* y.z^14 */ , 0 /* y.z^13 */ , 0 /* y.z^12 */ , 0 /* y.z^11 */ , 0 /* y.z^10 */ , 0 /* y.z^9 */ , 0 /* y.z^8 */ , 0 /* y.z^7 */ , 0 /* y.z^6 */ , 0 /* y.z^5 */ , 0 /* y.z^4 */ , 0 /* y.z^3 */ , 0 /* y.z^2 */ , 0 /* y.z */ , 0 /* y */ , 0 /* z^16 */ , +1 /* z^15 */ , 0 /* z^14 */ , -4*(R2+A2) /* z^13 */ , 0 /* z^12 */ , +4*(R2+A2)*(R2+A2)+2*(R2-A2)*(R2-A2) /* z^11 */ , 0 /* z^10 */ , -4*(R2-A2)*(R4-A4) /* z^9 */ , 0 /* z^8 */ , +(R2-A2)*(R2-A2)*(R2-A2)*(R2-A2) /* z^7 */ , 0 /* z^6 */ , 0 /* z^5 */ , 0 /* z^4 */ , 0 /* z^3 */ , 0 /* z^2 */ , 0 /* z */ , 0 /* C */ , 0 > sturm } // end poly } // end object //HALF TURN BUILDING BLOCK #if ((IntTurns >=1) | (Fraction >= 0.5)) // Only when it is needed. #declare HalfSpiral = object { Spiral_Shape #if ((Long - Thick - 0.000001) > 0 ) // Then the inner cylinder is clipped_by { // possible. plane { ((Up = true) ? -z : z), 0 } } // Front or back half. #else //#if ((Long - Thick - 0.000001) > 0 ) clipped_by { plane { ((Up = true) ? -z : z), 0 } } #end //#else ((Long - Thick - 0.000001) > 0 ) bounded_by { clipped_by } // Saves lots of render time. } // end object HalfSpiral #end //#If ((IntTurns >=1) | (Fraction >= 0.5)) //COMPLETE TURN BUILDING BLOCK #if (IntTurns >=1) // Only when it is needed. #declare OneSpiral = union { object { HalfSpiral translate High * y } object { HalfSpiral rotate 180 * y translate 3 * High * y } } #end //PARTIAL TURN BUILDING BLOCK #if ((Fraction > 0) & (Fraction != 0.5)) // Only when it is needed. #declare PartSpiral = object { Spiral_Shape #if ((Long - Thick - 0.000001) > 0 ) clipped_by { plane { (Up = true ? -z : z), 0 } plane { (Up = true ? z : -z) , 0 rotate ((Fraction > 0.5) ? (Fraction - 0.5) : Fraction) * (Up = true ? 360 : -360) * -y } } #else //#if ((Long - Thick - 0.000001) > 0 ) clipped_by { plane { (Up = true ? -z : z), 0 } plane { (Up = true ? z : -z) , 0 rotate ((Fraction > 0.5) ? (Fraction - 0.5) : Fraction) * (Up = true ? 360 : -360) * -y } } #end //#else ((Long - Thick - 0.000001) > 0 ) bounded_by { clipped_by } } // end object PartSpiral #end //#if ((Fraction > 0) & (Fraction != 0.5)) //BUILDING OF THE SPIRAL #declare Count = 0; #if (IntTurns >= 1) // >= 1 complete turn. #declare Spiral = OneSpiral; // First complete turn. #declare Count = Count + 4; #while (Count < (IntTurns * 4) ) // More complete turns. #declare Spiral = union { object { Spiral } object { OneSpiral translate Count * High * y } } #declare Count = Count + 4; #end //#while (Count < (IntTurns * 4) ) #if (Fraction>0) // Fractional turn. #declare Spiral = union { object { Spiral } // What we already had build. #if (Fraction>=0.5) object { HalfSpiral translate (Count + 1) * High * y } // « turn. #end //#if (Fraction>=0.5) #if (Fraction != 0.5) // Fractional turn. object { PartSpiral translate (Count + (Fraction > 0.5 ? 3 : 1) ) * High * y rotate (Fraction > 0.5 ? 180 : 0) * y } #end //#if (Fraction != 0.5) } // end union #end //#if (Fraction>0) #else //#if (IntTurns >= 1) // < 1 complete turn. #if (Fraction>=0.5) // >= 0.5 turn. #declare Spiral = union { object { HalfSpiral translate High * y } // « turn. #if (Fraction > 0.5) // Fractional turn. object { PartSpiral translate 3 * High * y rotate 180 * y } #end //#if (Fraction > 0.5) } //end union #else //#if (Fraction>=0.5) // < 0.5 turn. #declare Spiral = object { PartSpiral // Fractional turn. translate High * y } #end //#else (Fraction>=0.5) #end //#else (IntTurns >= 1) // end of spiral.inc #declare Spiral1 = Spiral #include "colors.inc" object { Spiral1 pigment { checker scale 0.1 } } object { plane { y, 0 } pigment { color Yellow } } light_source { < 100, 100, -100 > color White } // rechts,boven,achter light_source { < -100, 100, -100 > color White } // links,boven,achter light_source { < -100, 100, 100 > color White } // links,boven,voor light_source { < 100, 100, 100 > color White } // rechts,boven,voor