#VRML V2.0 utf8
# Milky Way Galaxy - HI structures

# A data object for use in a 3D data plotting application 
# Kurt A. Fisher fisherka@csolutions.net  beginner level VRML coder
# 12/2003

#  This application was developed for use in triaxial position modeling 
#   of astronomical objects.  Occassional coding and sample references may reflect this bias. 

#	Data for this plot appears at the bottom of file. 
#	Plotting object types follow the Tirion-Cambridge star guide conventions 
#	Imported prototypes for plotting object types are: 
#		SO	General spherical objects 
#		EM	Emission nebula
#		DN	Dark nebula
#		GC	Globular clusters
#		OB_TS    OB Association plotted as translucent sphere
#		OB_WS   OB Association plotted as wireframe sphere
#		DH	Diffuse hydrogen region
#		OC	Open cluster
#		PN	Planetary nebula
#		ST_P	Star plotted as point 
#		ST_S	Star plotted as small sphere (recommended) 
#  		CL	Cloud point point (translucent) 
#		UD	User-defined objects 
#		MG  	    Moving Group 
#		SC  	    Moving Group 

# ======================================= 
# BEGIN PROTOTYPE FOR GENERAL SPHERICAL PLOTTING POINTS 
EXTERNPROTO SO [ 
	exposedField MFString	objName		# object
	exposedField SFString	objClass		# type of object for EIA sort select
	exposedField SFString	subClass		# subtype of object for EIA sort select
	exposedField SFInt32	PlotType		# Plot type 0=sphere;1=point;2=translucent sphere;3=wiresphere;4=cube;5=arrow;6=nothing
	exposedField SFInt32	BandDecorate 	# 0=yes add decoration;1=no decoration
	exposedField SFVec3f	objPosition	# position
	exposedField SFVec3f	objSize		# size - radii in x,y,z planes - not diameters 
	exposedField SFRotation	posAngle		# position angle ( z y x rot );  normal plotted space rotations are around y-axis; note rotation form is not normal "x y z rot"
	exposedField SFColor	objColor		# obj color
	exposedField SFInt32	lblType		# label type 0=none; 1=1st strg; 2=2nd strg; 3=3rd strg; 4=all
	exposedField SFFloat	fontSize		# font size
	exposedField SFColor	lblColor		# label color 
#						# Label family, style (bold,italics,etc.) and justify cannot be changed 
#						# See "DEF tmp_lblFontStyleText" for hardcoding of these characteristics  
	exposedField SFInt32	BarDecorate	# 0=yes add decoration;1=no decoration
	exposedField SFVec3f	barHeight		#  dimensions of optional uncertainty/vector bar 
						#   x,z as diameter of bar;  y is height ( auto modified to 2 * height  )	
	exposedField SFRotation	barAngle		# direction of optional uncertainty/vector bar in x-y(3d) plane around z axis     
#						#     rotation is select x,y,z planes plus rotation in radians 
] "lib_SO_proto.wrl"   
# END PROTOTYPE FOR GENERAL SPHERICAL PLOTTING POINTS 

# Prototypes for astronomical objects 

# BEGIN PROTOTYPE FOR PLANETARY NEBULAE 
EXTERNPROTO PN [ 
	exposedField MFString	objName		# object
	exposedField SFString	objClass		# type of object for EIA sort select
	exposedField SFString	subClass		# subtype of object for EIA sort select
	exposedField SFInt32	PlotType		# Plot type 0=sphere;1=point;2=translucent sphere;3=wiresphere;4=cube;5=arrow;6=nothing
	exposedField SFInt32	BandDecorate 	# 0=yes add decoration;1=no decoration
	exposedField SFVec3f	objPosition	# position
	exposedField SFVec3f	objSize		# size - radii in x,y,z planes - not diameters 
	exposedField SFRotation	posAngle		# position angle ( z y x rot );  normal plotted space rotations are around y-axis; note rotation form is not normal "x y z rot"
	exposedField SFColor	objColor		# obj color
	exposedField SFInt32	lblType		# label type 0=none; 1=1st strg; 2=2nd strg; 3=3rd strg; 4=all
	exposedField SFFloat	fontSize		# font size
	exposedField SFColor	lblColor		# label color 
#						# Label family, style (bold,italics,etc.) and justify cannot be changed 
#						# See "DEF tmp_lblFontStyleText" for hardcoding of these characteristics  
	exposedField SFInt32	BarDecorate	# 0=yes add decoration;1=no decoration
	exposedField SFVec3f	barHeight		#  dimensions of optional uncertainty/vector bar 
						#   x,z as diameter of bar;  y is height ( auto modified to 2 * height  )	
	exposedField SFRotation	barAngle		# direction of optional uncertainty/vector bar in x-y(3d) plane around z axis     
#                                                                                           #     rotation is select x,y,z planes plus rotation in radians 
] "lib_astro_PN_proto.wrl"   
# END PROTOTYPE FOR PLANETARY NEBULAE 


# BEGIN PROTOTYPE FOR DARK NEBULAE 
EXTERNPROTO DN [ 
	exposedField MFString	objName		# object
	exposedField SFString	objClass		# type of object for EIA sort select
	exposedField SFString	subClass		# subtype of object for EIA sort select
	exposedField SFInt32	PlotType		# Plot type 0=sphere;1=point;2=translucent sphere;3=wiresphere;4=cube;5=arrow;6=nothing
	exposedField SFInt32	BandDecorate 	# 0=yes add decoration;1=no decoration
	exposedField SFVec3f	objPosition	# position
	exposedField SFVec3f	objSize		# size - radii in x,y,z planes - not diameters 
	exposedField SFRotation	posAngle		# position angle ( z y x rot );  normal plotted space rotations are around y-axis; note rotation form is not normal "x y z rot"
	exposedField SFColor	objColor		# obj color
	exposedField SFInt32	lblType		# label type 0=none; 1=1st strg; 2=2nd strg; 3=3rd strg; 4=all
	exposedField SFFloat	fontSize		# font size
	exposedField SFColor	lblColor		# label color 
#						# Label family, style (bold,italics,etc.) and justify cannot be changed 
#						# See "DEF tmp_lblFontStyleText" for hardcoding of these characteristics  
	exposedField SFInt32	BarDecorate	# 0=yes add decoration;1=no decoration
	exposedField SFVec3f	barHeight		#  dimensions of optional uncertainty/vector bar 
						#   x,z as diameter of bar;  y is height ( auto modified to 2 * height  )	
	exposedField SFRotation	barAngle		# direction of optional uncertainty/vector bar in x-y(3d) plane around z axis     
#                                                                                           #     rotation is select x,y,z planes plus rotation in radians 
] "lib_astro_DN_proto.wrl"   
# END PROTOTYPE FOR DARK NEBULAE 

# BEGIN PROTOTYPE FOR DARK NEBULAE 
EXTERNPROTO EM [ 
	exposedField MFString	objName		# object
	exposedField SFString	objClass		# type of object for EIA sort select
	exposedField SFString	subClass		# subtype of object for EIA sort select
	exposedField SFInt32	PlotType		# Plot type 0=sphere;1=point;2=translucent sphere;3=wiresphere;4=cube;5=arrow;6=nothing
	exposedField SFInt32	BandDecorate 	# 0=yes add decoration;1=no decoration
	exposedField SFVec3f	objPosition	# position
	exposedField SFVec3f	objSize		# size - radii in x,y,z planes - not diameters 
	exposedField SFRotation	posAngle		# position angle ( z y x rot );  normal plotted space rotations are around y-axis; note rotation form is not normal "x y z rot"
	exposedField SFColor	objColor		# obj color
	exposedField SFInt32	lblType		# label type 0=none; 1=1st strg; 2=2nd strg; 3=3rd strg; 4=all
	exposedField SFFloat	fontSize		# font size
	exposedField SFColor	lblColor		# label color 
#						# Label family, style (bold,italics,etc.) and justify cannot be changed 
#						# See "DEF tmp_lblFontStyleText" for hardcoding of these characteristics  
	exposedField SFInt32	BarDecorate	# 0=yes add decoration;1=no decoration
	exposedField SFVec3f	barHeight		#  dimensions of optional uncertainty/vector bar 
						#   x,z as diameter of bar;  y is height ( auto modified to 2 * height  )	
	exposedField SFRotation	barAngle		# direction of optional uncertainty/vector bar in x-y(3d) plane around z axis     
#                                                                                           #     rotation is select x,y,z planes plus rotation in radians 
] "lib_astro_EM_proto.wrl"   
# END PROTOTYPE FOR EMISSIVE NEBULAE 

# BEGIN PROTOTYPE FOR OPEN CLUSTERS
EXTERNPROTO OC [ 
	exposedField MFString	objName		# object
	exposedField SFString	objClass		# type of object for EIA sort select
	exposedField SFString	subClass		# subtype of object for EIA sort select
	exposedField SFInt32	PlotType		# Plot type 0=sphere;1=point;2=translucent sphere;3=wiresphere;4=cube;5=arrow;6=nothing
	exposedField SFInt32	BandDecorate 	# 0=yes add decoration;1=no decoration
	exposedField SFVec3f	objPosition	# position
	exposedField SFVec3f	objSize		# size - radii in x,y,z planes - not diameters 
	exposedField SFRotation	posAngle		# position angle ( z y x rot );  normal plotted space rotations are around y-axis; note rotation form is not normal "x y z rot"
	exposedField SFColor	objColor		# obj color
	exposedField SFInt32	lblType		# label type 0=none; 1=1st strg; 2=2nd strg; 3=3rd strg; 4=all
	exposedField SFFloat	fontSize		# font size
	exposedField SFColor	lblColor		# label color 
#						# Label family, style (bold,italics,etc.) and justify cannot be changed 
#						# See "DEF tmp_lblFontStyleText" for hardcoding of these characteristics  
	exposedField SFInt32	BarDecorate	# 0=yes add decoration;1=no decoration
	exposedField SFVec3f	barHeight		#  dimensions of optional uncertainty/vector bar 
						#   x,z as diameter of bar;  y is height ( auto modified to 2 * height  )	
	exposedField SFRotation	barAngle		# direction of optional uncertainty/vector bar in x-y(3d) plane around z axis     
#                                                                                           #     rotation is select x,y,z planes plus rotation in radians 
] "lib_astro_OC_proto.wrl"   
# END PROTOTYPE FOR OPEN CLUSTERS 

# BEGIN PROTOTYPE FOR GLOBULAR CLUSTERS
EXTERNPROTO GC [ 
	exposedField MFString	objName		# object
	exposedField SFString	objClass		# type of object for EIA sort select
	exposedField SFString	subClass		# subtype of object for EIA sort select
	exposedField SFInt32	PlotType		# Plot type 0=sphere;1=point;2=translucent sphere;3=wiresphere;4=cube;5=arrow;6=nothing
	exposedField SFInt32	BandDecorate 	# 0=yes add decoration;1=no decoration
	exposedField SFVec3f	objPosition	# position
	exposedField SFVec3f	objSize		# size - radii in x,y,z planes - not diameters 
	exposedField SFRotation	posAngle		# position angle ( z y x rot );  normal plotted space rotations are around y-axis; note rotation form is not normal "x y z rot"
	exposedField SFColor	objColor		# obj color
	exposedField SFInt32	lblType		# label type 0=none; 1=1st strg; 2=2nd strg; 3=3rd strg; 4=all
	exposedField SFFloat	fontSize		# font size
	exposedField SFColor	lblColor		# label color 
#						# Label family, style (bold,italics,etc.) and justify cannot be changed 
#						# See "DEF tmp_lblFontStyleText" for hardcoding of these characteristics  
	exposedField SFInt32	BarDecorate	# 0=yes add decoration;1=no decoration
	exposedField SFVec3f	barHeight		#  dimensions of optional uncertainty/vector bar 
						#   x,z as diameter of bar;  y is height ( auto modified to 2 * height  )	
	exposedField SFRotation	barAngle		# direction of optional uncertainty/vector bar in x-y(3d) plane around z axis     
#                                                                                           #     rotation is select x,y,z planes plus rotation in radians 
] "lib_astro_GC_proto.wrl"   
# END PROTOTYPE FOR GLOBULAR CLUSTERS

# BEGIN PROTOTYPE FOR OB ASSOCIATIONS - TRANSLUCENT SPHERE PLOTTING 
EXTERNPROTO OB_TS [ 
	exposedField MFString	objName		# object
	exposedField SFString	objClass		# type of object for EIA sort select
	exposedField SFString	subClass		# subtype of object for EIA sort select
	exposedField SFInt32	PlotType		# Plot type 0=sphere;1=point;2=translucent sphere;3=wiresphere;4=cube;5=arrow;6=nothing
	exposedField SFInt32	BandDecorate 	# 0=yes add decoration;1=no decoration
	exposedField SFVec3f	objPosition	# position
	exposedField SFVec3f	objSize		# size - radii in x,y,z planes - not diameters 
	exposedField SFRotation	posAngle		# position angle ( z y x rot );  normal plotted space rotations are around y-axis; note rotation form is not normal "x y z rot"
	exposedField SFColor	objColor		# obj color
	exposedField SFInt32	lblType		# label type 0=none; 1=1st strg; 2=2nd strg; 3=3rd strg; 4=all
	exposedField SFFloat	fontSize		# font size
	exposedField SFColor	lblColor		# label color 
#						# Label family, style (bold,italics,etc.) and justify cannot be changed 
#						# See "DEF tmp_lblFontStyleText" for hardcoding of these characteristics  
	exposedField SFInt32	BarDecorate	# 0=yes add decoration;1=no decoration
	exposedField SFVec3f	barHeight		#  dimensions of optional uncertainty/vector bar 
						#   x,z as diameter of bar;  y is height ( auto modified to 2 * height  )	
	exposedField SFRotation	barAngle		# direction of optional uncertainty/vector bar in x-y(3d) plane around z axis     
#                                                                                           #     rotation is select x,y,z planes plus rotation in radians 
] "lib_astro_OB_TS_proto.wrl"   
# END PROTOTYPE FOR OB ASSOCIATIONS - TRANSLUCENT SPHERE PLOTTING 

# BEGIN PROTOTYPE FOR OB ASSOCIATIONS - WIREFRAME SPHERE PLOTTING 
EXTERNPROTO OB_WS [ 
	exposedField MFString	objName		# object
	exposedField SFString	objClass		# type of object for EIA sort select
	exposedField SFString	subClass		# subtype of object for EIA sort select
	exposedField SFInt32	PlotType		# Plot type 0=sphere;1=point;2=translucent sphere;3=wiresphere;4=cube;5=arrow;6=nothing
	exposedField SFInt32	BandDecorate 	# 0=yes add decoration;1=no decoration
	exposedField SFVec3f	objPosition	# position
	exposedField SFVec3f	objSize		# size - radii in x,y,z planes - not diameters 
	exposedField SFRotation	posAngle		# position angle ( z y x rot );  normal plotted space rotations are around y-axis; note rotation form is not normal "x y z rot"
	exposedField SFColor	objColor		# obj color
	exposedField SFInt32	lblType		# label type 0=none; 1=1st strg; 2=2nd strg; 3=3rd strg; 4=all
	exposedField SFFloat	fontSize		# font size
	exposedField SFColor	lblColor		# label color 
#						# Label family, style (bold,italics,etc.) and justify cannot be changed 
#						# See "DEF tmp_lblFontStyleText" for hardcoding of these characteristics  
	exposedField SFInt32	BarDecorate	# 0=yes add decoration;1=no decoration
	exposedField SFVec3f	barHeight		#  dimensions of optional uncertainty/vector bar 
						#   x,z as diameter of bar;  y is height ( auto modified to 2 * height  )	
	exposedField SFRotation	barAngle		# direction of optional uncertainty/vector bar in x-y(3d) plane around z axis     
#
] "lib_astro_OB_WS_proto.wrl"   
# END PROTOTYPE FOR OB ASSOCIATIONS - WIREFRAME SPHERE PLOTTING 

# BEGIN PROTOTYPE FOR DIFFUSE HYDROGREN REGIONS - TRANSLUCENT SPHERE PLOTTING 
EXTERNPROTO DH [ 
	exposedField MFString	objName		# object
	exposedField SFString	objClass		# type of object for EIA sort select
	exposedField SFString	subClass		# subtype of object for EIA sort select
	exposedField SFInt32	PlotType		# Plot type 0=sphere;1=point;2=translucent sphere;3=wiresphere;4=cube;5=arrow;6=nothing
	exposedField SFInt32	BandDecorate 	# 0=yes add decoration;1=no decoration
	exposedField SFVec3f	objPosition	# position
	exposedField SFVec3f	objSize		# size - radii in x,y,z planes - not diameters 
	exposedField SFRotation	posAngle		# position angle ( z y x rot );  normal plotted space rotations are around y-axis; note rotation form is not normal "x y z rot"
	exposedField SFColor	objColor		# obj color
	exposedField SFInt32	lblType		# label type 0=none; 1=1st strg; 2=2nd strg; 3=3rd strg; 4=all
	exposedField SFFloat	fontSize		# font size
	exposedField SFColor	lblColor		# label color 
#						# Label family, style (bold,italics,etc.) and justify cannot be changed 
#						# See "DEF tmp_lblFontStyleText" for hardcoding of these characteristics  
	exposedField SFInt32	BarDecorate	# 0=yes add decoration;1=no decoration
	exposedField SFVec3f	barHeight		#  dimensions of optional uncertainty/vector bar 
						#   x,z as diameter of bar;  y is height ( auto modified to 2 * height  )	
	exposedField SFRotation	barAngle		# direction of optional uncertainty/vector bar in x-y(3d) plane around z axis     
#                                                                                           #     rotation is select x,y,z planes plus rotation in radians 
] "lib_astro_DH_proto.wrl"   
# END PROTOTYPE FOR DIFFUSE HYDGROGREN REGIONS - TRANSLUCENT SPHERE PLOTTING 

# BEGIN PROTOTYPE FOR SMALL SPHERE PLOTTING 
EXTERNPROTO ST_S [ 
	exposedField MFString	objName		# object
	exposedField SFString	objClass		# type of object for EIA sort select
	exposedField SFString	subClass		# subtype of object for EIA sort select
	exposedField SFInt32	PlotType		# Plot type 0=sphere;1=point;2=translucent sphere;3=wiresphere;4=cube;5=arrow;6=nothing
	exposedField SFInt32	BandDecorate 	# 0=yes add decoration;1=no decoration
	exposedField SFVec3f	objPosition	# position
	exposedField SFVec3f	objSize		# size - radii in x,y,z planes - not diameters 
	exposedField SFRotation	posAngle		# position angle ( z y x rot );  normal plotted space rotations are around y-axis; note rotation form is not normal "x y z rot"
	exposedField SFColor	objColor		# obj color
	exposedField SFInt32	lblType		# label type 0=none; 1=1st strg; 2=2nd strg; 3=3rd strg; 4=all
	exposedField SFFloat	fontSize		# font size
	exposedField SFColor	lblColor		# label color 
#						# Label family, style (bold,italics,etc.) and justify cannot be changed 
#						# See "DEF tmp_lblFontStyleText" for hardcoding of these characteristics  
	exposedField SFInt32	BarDecorate	# 0=yes add decoration;1=no decoration
	exposedField SFVec3f	barHeight		#  dimensions of optional uncertainty/vector bar 
						#   x,z as diameter of bar;  y is height ( auto modified to 2 * height  )	
	exposedField SFRotation	barAngle		# direction of optional uncertainty/vector bar in x-y(3d) plane around z axis     
#                                                                                           #     rotation is select x,y,z planes plus rotation in radians 
] "lib_astro_ST_S_proto.wrl"   
# END PROTOTYPE FOR STARS -  SMALL SPHERE PLOTTING 

# BEGIN PROTOTYPE FOR STARS -  POINT PLOTTING 
EXTERNPROTO ST_P [ 
	exposedField MFString	objName		# object
	exposedField SFString	objClass		# type of object for EIA sort select
	exposedField SFString	subClass		# subtype of object for EIA sort select
	exposedField SFInt32	PlotType		# Plot type 0=sphere;1=point;2=translucent sphere;3=wiresphere;4=cube;5=arrow;6=nothing
	exposedField SFInt32	BandDecorate 	# 0=yes add decoration;1=no decoration
	exposedField SFVec3f	objPosition	# position
	exposedField SFVec3f	objSize		# size - radii in x,y,z planes - not diameters 
	exposedField SFRotation	posAngle		# position angle ( z y x rot );  normal plotted space rotations are around y-axis; note rotation form is not normal "x y z rot"
	exposedField SFColor	objColor		# obj color
	exposedField SFInt32	lblType		# label type 0=none; 1=1st strg; 2=2nd strg; 3=3rd strg; 4=all
	exposedField SFFloat	fontSize		# font size
	exposedField SFColor	lblColor		# label color 
#						# Label family, style (bold,italics,etc.) and justify cannot be changed 
#						# See "DEF tmp_lblFontStyleText" for hardcoding of these characteristics  
	exposedField SFInt32	BarDecorate	# 0=yes add decoration;1=no decoration
	exposedField SFVec3f	barHeight		#  dimensions of optional uncertainty/vector bar 
						#   x,z as diameter of bar;  y is height ( auto modified to 2 * height  )	
	exposedField SFRotation	barAngle		# direction of optional uncertainty/vector bar in x-y(3d) plane around z axis     
#                                                                                           #     rotation is select x,y,z planes plus rotation in radians 
] "lib_astro_ST_P_proto.wrl"   
# END PROTOTYPE FOR STARS -  POINT PLOTTING 

# BEGIN PROTOTYPE FOR ARROW PLOTTING OBJECT
EXTERNPROTO AR [ 
	exposedField MFString	objName		# object
	exposedField SFString	objClass		# type of object for EIA sort select
	exposedField SFString	subClass		# subtype of object for EIA sort select
	exposedField SFInt32	PlotType		# Plot type 0=sphere;1=point;2=translucent sphere;3=wiresphere;4=cube;5=arrow;6=nothing
	exposedField SFInt32	BandDecorate 	# 0=yes add decoration;1=no decoration
	exposedField SFVec3f	objPosition	# position
	exposedField SFVec3f	objSize		# size - radii in x,y,z planes - not diameters 
	exposedField SFRotation	posAngle		# position angle ( z y x rot );  normal plotted space rotations are around y-axis; note rotation form is not normal "x y z rot"
	exposedField SFColor	objColor		# obj color
	exposedField SFInt32	lblType		# label type 0=none; 1=1st strg; 2=2nd strg; 3=3rd strg; 4=all
	exposedField SFFloat	fontSize		# font size
	exposedField SFColor	lblColor		# label color 
#						# Label family, style (bold,italics,etc.) and justify cannot be changed 
#						# See "DEF tmp_lblFontStyleText" for hardcoding of these characteristics  
	exposedField SFInt32	BarDecorate	# 0=yes add decoration;1=no decoration
	exposedField SFVec3f	barHeight		#  dimensions of optional uncertainty/vector bar 
						#   x,z as diameter of bar;  y is height ( auto modified to 2 * height  )	
	exposedField SFRotation	barAngle		# direction of optional uncertainty/vector bar in x-y(3d) plane around z axis     
#                                                                                           #     rotation is select x,y,z planes plus rotation in radians 
] "lib_astro_AR_proto.wrl"   
# END PROTOTYPE FOR ARROW PLOTTING OBJECT

# PROTOTYPE FOR PLOTTING COLLECTIONS OF SCATTER POINTS AS ONE OBJECT 
# Prototype for plotting collections of scatter points as one object  
EXTERNPROTO SP [ 
	exposedField MFString	objName		# object
	exposedField SFString	objClass		# type of object for EIA sort select
	exposedField SFString	subClass		# subtype of object for EIA sort select
	exposedField SFVec3f	objPosition	# position
	exposedField SFVec3f 	objSize		# size - radii in x,y,z planes - not diameters 
	exposedField SFColor	objColor		# obj color
	exposedField SFInt32	lblType		# label type 0=none; 1=1st strg; 2=2nd strg; 3=3rd strg; 4=all
	exposedField SFFloat	fontSize		# font size
	exposedField SFColor	lblColor		# label color 
	exposedField SFVec3f	lblPosition		# Label position - because of the large object size, the label position is user configurable
	exposedField MFVec3f	pointSet		# a collection of 3-axis point references 
] "lib_SP_proto.wrl" 
# END PROTOTYPE FOR PLOTTING COLLECTIONS OF SCATTER POINTS AS ONE OBJECT 

# BEGIN PROTOTYPE FOR PLOTTING LIGHTWEIGHT CLOUD POINTS -  POINT PLOTTING 
EXTERNPROTO CL [ 
	exposedField MFString	objName		# object
	exposedField SFString	objClass		# type of object for EIA sort select
	exposedField SFString	subClass		# subtype of object for EIA sort select
	exposedField SFVec3f	objPosition	# position
	exposedField SFVec3f 	objSize		# size - radii in x,y,z planes - not diameters 
	exposedField SFColor	objColor		# obj color
	exposedField SFFloat	objTransparency	# object translucency  
]  "lib_CL_lw_proto.wrl" 

# BEGIN PROTOTYPE FOR PLOTTING LIGHTWEIGHT SPHERE POINTS -  POINT PLOTTING 
EXTERNPROTO PO [ 
	exposedField MFString	objName		# object
	exposedField SFString	objClass		# type of object for EIA sort select
	exposedField SFString	subClass		# subtype of object for EIA sort select
	exposedField SFVec3f	objPosition	# position
	exposedField SFVec3f 	objSize		# size - radii in x,y,z planes - not diameters 
	exposedField SFColor	objColor		# obj color
	exposedField SFFloat	objTransparency	# object translucency  
]  "lib_PO_lw_proto.wrl" 

# ====================================
# Prototype for plotting user-defined shapes in world reference frame 
EXTERNPROTO UD [ 
	exposedField MFString	objName		# object
	exposedField SFString	objClass		# type of object for EIA sort select
	exposedField SFString	subClass		# subtype of object for EIA sort select
	exposedField SFVec3f	objPosition	# position
	exposedField SFVec3f 	objSize		# scale equally to adjust object size to world scale without changing user defined object aspects 
	exposedField SFRotation	posAngle		# position angle ( z y x rot );  normal plotted space rotations are around y-axis; note rotation form is not normal "x y z rot" syntax   
#						# object color must be set in user defined object 
	exposedField SFInt32	lblType		# label type 0=none; 1=1st strg; 2=2nd strg; 3=3rd strg; 4=all
	exposedField SFFloat	fontSize		# font size
	exposedField SFColor	lblColor		# label color 
#						# Label family, style (bold,italics,etc.) and justify cannot be changed 
#						# See "DEF tmp_lblFontStyleText" for hardcoding of these characteristics  
	exposedField SFVec3f	lblPosition		# Label position - because of the large object size, the label position is user configurable
#						# object transparency must be set in user defined object 
	exposedField MFString	url_InLine		# relative path to user defined shape 
]   "lib_UD_proto.wrl"

# ====================================
# Prototype for plotting user-defined shapes in world reference frame 
EXTERNPROTO MG [ 
	exposedField MFString	objName		# object
	exposedField SFString	objClass		# type of object for EIA sort select
	exposedField SFString	subClass		# subtype of object for EIA sort select
	exposedField SFVec3f	objPosition	# position
	exposedField SFVec3f 	objSize		# scale equally to adjust object size to world scale without changing user defined object aspects 
	exposedField SFRotation	posAngle		# position angle ( z y x rot );  normal plotted space rotations are around y-axis; note rotation form is not normal "x y z rot" syntax   
#						# object color must be set in user defined object 
	exposedField SFInt32	lblType		# label type 0=none; 1=1st strg; 2=2nd strg; 3=3rd strg; 4=all
	exposedField SFFloat	fontSize		# font size
	exposedField SFColor	lblColor		# label color 
#						# Label family, style (bold,italics,etc.) and justify cannot be changed 
#						# See "DEF tmp_lblFontStyleText" for hardcoding of these characteristics  
	exposedField SFVec3f	lblPosition		# Label position - because of the large object size, the label position is user configurable
#						# object transparency must be set in user defined object 
	exposedField MFString	url_InLine		# relative path to user defined shape 
]   "lib_astro_MG_proto.wrl"

# ====================================
# Prototype for plotting user-defined shapes in world reference frame 
EXTERNPROTO SC [ 
	exposedField MFString	objName		# object
	exposedField SFString	objClass		# type of object for EIA sort select
	exposedField SFString	subClass		# subtype of object for EIA sort select
	exposedField SFVec3f	objPosition	# position
	exposedField SFVec3f 	objSize		# scale equally to adjust object size to world scale without changing user defined object aspects 
	exposedField SFRotation	posAngle		# position angle ( z y x rot );  normal plotted space rotations are around y-axis; note rotation form is not normal "x y z rot" syntax   
#						# object color must be set in user defined object 
	exposedField SFInt32	lblType		# label type 0=none; 1=1st strg; 2=2nd strg; 3=3rd strg; 4=all
	exposedField SFFloat	fontSize		# font size
	exposedField SFColor	lblColor		# label color 
#						# Label family, style (bold,italics,etc.) and justify cannot be changed 
#						# See "DEF tmp_lblFontStyleText" for hardcoding of these characteristics  
	exposedField SFVec3f	lblPosition		# Label position - because of the large object size, the label position is user configurable
#						# object transparency must be set in user defined object 
	exposedField MFString	url_InLine		# relative path to user defined shape 
]   "lib_astro_SC_proto.wrl"

# end PROTOTYPES FOR ASTRONOMICAL OBJECTS 

# =======================================
# BEGIN PLOTTED OBJECTS DATA 
# Use example - elements of one plot point explained 
#SO {
#	objName		"NGC 7009"	# name
#	objPosition	1.0 1.0 1.0		# position
#	[ objClass		"Type"		# optional type of object ]
#   	[ subClass        	"SubType"	# optional subtype of object ] 
#   	PlotType           	2                          	# object plotting (translucent sphere)
#	[ posAngle  	0.0 1.0 0.0 2.75  ]	# optional position angle of object 
#	objSize		0.2 0.2 0.2		# size 
#	[  BandDecorate 	1 ]		# optional band decorator (disabled) 
#	fontSize		0.1		# font size 
#	objColor		0.0 0.0 0.0		# object color
#	[ lblColor		0.2 0.9 0.2   ]	# optional label color   
#	[  BarDecorate 	0 ]		# optional bar decorator (disabled) 
#	[ barAngle 	0.0 0.0 1.0 5.489 ] 	#  optional angle of bar decorator rotated in x-y plane around z-axis 
#}

# Objects 

# =====================================
# HII and Neb Features 

DH { objName [ "Orion Eri Bubble"] objPosition -0.298 -0.056 -0.261 objSize 0.14 0.14 0.14 fontSize 0.03 }

DH { objName [ "Cygnus Superbubble"] objPosition 0.352 1.969 0.024 objSize 0.225 0.225 0.225 fontSize 0.03 }

DH { objName [ "Loop II"] objPosition -0.016 0.092 -0.059 objSize 0.0575 0.0575 0.0575 fontSize 0.03 }

DH { objName [ "Loop III"] objPosition -0.110 0.158 0.054 objSize 0.0675 0.0675 0.0675 fontSize 0.03 }

DH { objName [ "Loop I"] objPosition 0.138 0.084 0.053 objSize 0.13 0.13 0.13 fontSize 0.03 }

DH { objName [ "Local_Bubble"] objPosition -0.05 0.0 0.0 objSize 0.075 0.05 0.05 fontSize 0.03 }

# ======================================
# Galactic HI warp 
UD {  objName [ "HI Warp Henderson (1982) 8.5 kpc to 16 kpc" ]				objPosition  	0.0 0.0 0.0    objSize	1.0  1.0  1.0		fontSize 0.5  	lblPosition 8.5, 16.0, 3.0		url_InLine	[ "data_UD_inline_HIWarpLT17kpc.wrl" ] 	} 
UD {  objName [ "HI Warp modified Binney (1998) 17 kpc to 30 kpc" ]			objPosition  	0.0 0.0 0.0    objSize	1.0  1.0  1.0		fontSize 0.5  	lblPosition 8.5, 30.0, 6.0		url_InLine	[ "data_UD_inline_HIWarpGT17kpc.wrl" ] 	} 

# ==========================
# Direction of upwind local interstellar wind (LISW) per Frisch 1995 (l=6.2, b=11.7) 
#   Distance is set arbitrarily at 100 pc

DEF LISW Shape {						
    appearance Appearance {						
        material Material {						
            emissiveColor 0.0 1.0 0.0
        }						
    }						
    geometry IndexedLineSet {						
        coord Coordinate {						
            point [						
            # Coordinates around the top of the wedge 						
0.097349515	0.010575684	0.020278729,  # Arrow pointer from wind direction 
0.0  0.0  0.0,                                # to Sol
            ]						
        }						
        coordIndex [						
        # line						
            0, 1, -1,						
        ]						
    }						
}						


# ==========================
# Label for direction of upwind interstellar wind per Frisch 1995 (l=6.2, b=11.7) 
#  BILLBOARDING TEXT LABEL FOR "Interstellar Upwind" - START lblObj
		DEF lblObjectA Transform {
#                                                                   Position at end below galactic plane
				translation 0.097349515	-0.050575684	0.020278729 

#  
#  Since labels are auto-billboarding to face viewer,  there is no need to orient the labels with rotation. 
				children [
# Begin billboarding text label
					Billboard {
						axisOfRotation 0 0 0
# Auto-point the labels to the viewer 
						children [ 
# Begin billboarding shape

#  Start Anchor for referral for more object information 
				DEF BillboardLabelA Anchor {
#				              Displays refered page in new browser instance
#  Pop-up display disabled 		parameter [ "target='_blank'" ]
#					parameter [ "target='_blank'" ]
					children [

							Shape {
							appearance Appearance { 
								material Material { 
								diffuseColor 0.0 0.0 0.0 
								} # end Material 
							}  # end Appearance 
						    	geometry DEF lblName Text {
#     Label string and style are set in initialization script 
								string [ "Interstellar Wind" "from rho Oph-Loop I" ]  
								fontStyle DEF lblNameStyle FontStyle { 
									family "SANS"
									style "BOLD"
									justify "CENTER"
									size 0.01
								}  # End of fontStyle 
							}  # End of geometry Text
						}  # End of shape Text Label 

						] # end children
						} # End Anchor	

					]  # End of billboarding children 
					}  # End of billboarding text label
  	
			] # end children of Transform of lblObject 
		}  # end Transform of lblObject 
# END LABEL FOR OBJECT  - Upwind LISW 


