import sys
import IceRayCpp

print( '********************' )
#print( IceRayCpp.__dict__ )
print( '********************' )

def print_string( P_string ):
    sys.stdout.write( P_string )

def print_coord(P_cord):
    sys.stdout.write( '(' + str( P_cord[0] ) + ', ' + str( P_cord[1] ) + ', ' +  str( P_cord[2] ) + ')' )

def print_color(P_color):
    sys.stdout.write( '(' + str( P_color[0] ) + ', ' + str( P_color[1] ) + ', ' +  str( P_color[2] ) + ')' )

def print_interval(P_interval):
    sys.stdout.write('( ')
    print_coord( P_interval.lo() )
    print_coord( P_interval.hi() )
    sys.stdout.write(' )')

def print_light_spot(P_spot):
    print_coord( P_spot.center() )
    print_color( P_spot._0() )
    print_color( P_spot._1() )
    print_color( P_spot._2() )
    
def print_reflector( P_reflector ):
    print_light_spot( P_reflector.spot() )
    print_coord( P_reflector.direction() )
    print( P_reflector.inner() )
    print( P_reflector.outer() )

   
reflector1 = IceRayCpp.LightReflector()

print_reflector( reflector1 )

reflector1.spot()
reflector1.direction( )

reflector1.direction( IceRayCpp.MathTypeCoord3D().load( 0, 0.4, 0.9) )
print_reflector( reflector1 )
reflector1.direction( )
reflector1.direction( IceRayCpp.MathTypeCoord3D().load( 1, 0.4, 0.9) )
print_reflector( reflector1 )
reflector1.inner()
reflector1.inner( 55 )
print_reflector( reflector1 )
reflector1.outer(  )
reflector1.outer( 22 )
print_reflector( reflector1 )


