# file: runme.py

# This file illustrates the shadow-class C++ interface generated
# by SWIG.

from __future__ import print_function

import new_example

# ----- Object creation -----

print ("Creating some objects:")
c = new_example.Circle(10)
print ("    Created circle", c)
s = new_example.Square(10)
print ("    Created square", s)

# ----- Access a static member -----

print ("\nA total of", new_example.cvar.Shape_nshapes,"shapes were created")

# ----- Member data access -----

# Set the location of the object

c.x = 20
c.y = 30

s.x = -10
s.y = 5

print ("\nHere is their current position:")
print ("    Circle = (%f, %f)" % (c.x,c.y))
print ("    Square = (%f, %f)" % (s.x,s.y))

# ----- Call some methods -----

print ("\nHere are some properties of the shapes:")
for o in [c,s]:
      print ("   ", o)
      print ("        area      = ", o.area())
      print ("        perimeter = ", o.perimeter())

print ("\nGuess I'll clean up now")

# Note: this invokes the virtual destructor
del c
del s

s = 3
print (new_example.cvar.Shape_nshapes,"shapes remain")
print ("Goodbye")
