# file: runme.py

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

import example

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

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

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

print("\nA total of %d shapes were created" % example.cvar.Shape_nshapes)

# ----- 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("    %s" % o)
    print("        area      = %s" % o.area())
    print("        perimeter = %s" % o.perimeter())
# prevent o from holding a reference to the last object looked at
o = None

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

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

print("%d shapes remain" % example.cvar.Shape_nshapes)
print("Goodbye")
