57 lines
1.2 KiB
R
57 lines
1.2 KiB
R
# This file illustrates the proxy class C++ interface generated
|
|
# by SWIG.
|
|
|
|
dyn.load(paste("example", .Platform$dynlib.ext, sep=""))
|
|
source("example.R")
|
|
cacheMetaData(1)
|
|
|
|
# ----- Object creation -----
|
|
|
|
print("Creating some objects:")
|
|
circle <- Circle(10)
|
|
print (" Created circle")
|
|
square <- Square(10)
|
|
print (" Created square")
|
|
|
|
# ----- Access a static member -----
|
|
|
|
sprintf("A total of %d shapes were created", Shape_nshapes())
|
|
|
|
# ----- Member data access -----
|
|
|
|
# Set the location of the object
|
|
|
|
circle$x <- 20
|
|
circle$y <- 30
|
|
|
|
square$x <- -10
|
|
square$y <- 5
|
|
|
|
print("Here is their current position:")
|
|
sprintf(" Circle = (%f, %f)", circle$x,circle$y)
|
|
sprintf(" Square = (%f, %f)", square$x,square$y)
|
|
|
|
c2 <- Circle(1, 5, 15)
|
|
c1 <- circle
|
|
c1$move(1, 5)
|
|
print(Circle_MemberEq(c1, c2))
|
|
print(Circle_MemberNotEq(c1, c2))
|
|
|
|
print(c1$MemberEq(c2))
|
|
|
|
# ----- Call some methods -----
|
|
|
|
print ("Here are some properties of the shapes:")
|
|
|
|
sapply(c(circle, square),
|
|
function(o) {
|
|
sprintf(" area = %f perimeter = %f", o$area(), o$perimeter())
|
|
})
|
|
|
|
print("Guess I'll clean up now")
|
|
delete(circle)
|
|
delete(square)
|
|
|
|
sprintf("%d shapes remain", Shape_nshapes())
|
|
print ("Goodbye");
|
|
|