//Sas entrance

#declare EntSas_Color = color srgb 0.75;
#declare EntSas_Finish = finish{ specular 0.1 roughness 0.1 }
#declare EntSas_Texture = texture{ pigment{ EntSas_Color } finish{ EntSas_Finish } }

#declare EntSas_DoorColor = color srgb 1;
#declare EntSas_DoorTexture = texture{ pigment{ EntSas_DoorColor } finish{ EntSas_Finish } }

#declare EntSas_Highness = 3.5;
#declare EntSas_Floor = 0.25;
#declare EntSas_Width = 2;
#declare EntSas_Radius = 0.1;
#declare EntSas_ModulesNumber = 10; 

#declare EntSas_Module =
union{
	cylinder{< -EntSas_Width / 2, EntSas_Floor, 0 >,< EntSas_Width / 2, EntSas_Floor, 0 >, EntSas_Radius }
	cylinder{< -EntSas_Width / 2, EntSas_Highness, 0 >,< EntSas_Width / 2, EntSas_Highness, 0 >, EntSas_Radius }
	cylinder{< -EntSas_Width / 2, EntSas_Floor, 0 >,< -EntSas_Width / 2, EntSas_Highness, 0 >, EntSas_Radius }
	cylinder{< EntSas_Width / 2, EntSas_Floor, 0 >,< EntSas_Width / 2, EntSas_Highness, 0 >, EntSas_Radius }
	sphere{ < -EntSas_Width / 2, EntSas_Floor, 0 >, EntSas_Radius }
	sphere{ < EntSas_Width / 2, EntSas_Floor, 0 >, EntSas_Radius }
	sphere{ < -EntSas_Width / 2, EntSas_Highness, 0 >, EntSas_Radius }
	sphere{ < EntSas_Width / 2, EntSas_Highness, 0 >, EntSas_Radius }
	texture{ EntSas_Texture }
}

#declare EntSas_DoorBarWidth = 0.25;
#declare EntSas_DoorBarCorner = 0.035;

#declare EntSas_DoorBar =
prism{
	linear_sweep
	linear_spline 
	EntSas_Floor,
	EntSas_Highness,
	5,
	< 0, 0 >, < EntSas_DoorBarWidth, 0 >, < EntSas_DoorBarWidth - EntSas_DoorBarCorner, -EntSas_DoorBarCorner >,
	< EntSas_DoorBarCorner, -EntSas_DoorBarCorner >, < 0, 0 >
	texture{ EntSas_DoorTexture }
}

//The sas door
#declare EntSas_Door =
union{
	#for( Iterator, 0, EntSas_Width / EntSas_DoorBarWidth - 1 )
		object{ EntSas_DoorBar 
			translate < -EntSas_Width / 2 + Iterator * EntSas_DoorBarWidth, 
						0, 
						-EB_SideLength / 2 - EntSas_Radius * 2 * (EntSas_ModulesNumber - 1) > }
	#end
	translate EntranceBuildingMove
}

//The sas sides
#declare EntSas_Side =
union{
#for( Iterator, 0, EntSas_ModulesNumber - 1 )
	object{ EntSas_Module translate < 0, 0, -EB_SideLength / 2 - EntSas_Radius * 2 * Iterator > }
#end
	translate EntranceBuildingMove
}
