blob: f01636ad637e21e6d3209be3f9f04705e5fff40a [file] [log] [blame]
# file: runme.py
# This file illustrates the proxy class C++ interface generated
# by SWIG.
import example
# ----- Object creation -----
print("Creating some objects:")
cc = example.Circle(10)
c = example.ShapePtr(cc)
print(" Created circle %s" % c)
ss = example.Square(10)
s = example.ShapePtr(ss)
print(" Created square %s" % s)
# ----- Access a static member -----
print("\nA total of %s 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())
print("\nGuess I'll clean up now")
# Note: this invokes the virtual destructor
del c
del s
del cc
del ss
s = 3
print("%d shapes remain" % example.cvar.Shape_nshapes)
print("Goodbye")