var Sphere = function (radius, numOfItems){
	
	var rings = Math.ceil(Math.sqrt(numOfItems))+1;
	if(rings%2==0) rings = rings + 1;
	
	var maxSlots = Math.pow(Math.floor(rings/2), 3)+2;
	var overflow = numOfItems - maxSlots;

	for (var j = 0 ; j < rings; j++){
		var ringSize = Math.floor(rings/2) - Math.abs(0-Math.floor(rings/2)+j);
		if(ringSize==0) {
			var itemsThisRing = 1;
			var ringPct = 0;
		} else {
			var itemsThisRing = ringSize * Math.floor(rings/2);
			var ringPct = itemsThisRing / (maxSlots-2);
		}

		itemsThisRing = itemsThisRing + Math.round(overflow * ringPct);


		for (var i = 0; i < itemsThisRing; i++)	{
			var angle = i * Math.PI * 2 / itemsThisRing;
			var angleB = j * Math.PI  / (rings-1);
			
			var x =  Math.sin(angle) * Math.sin(angleB)*radius;
			var y =  Math.cos(angle) * Math.sin(angleB)*radius;
			var z =  Math.cos(angleB)* radius;
								
			this.pointsArray.push(this.make3DPoint(x,y,z));
		}
	
	};
};

Sphere.prototype = new DisplayObject3D();


