1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
#############################################################
## ##
## Copyright (c) 2003-2011 by The University of Queensland ##
## Earth Systems Science Computational Centre (ESSCC) ##
## http://www.uq.edu.au/esscc ##
## ##
## Primary Business: Brisbane, Queensland, Australia ##
## Licensed under the Open Software License version 3.0 ##
## http://www.opensource.org/licenses/osl-3.0.php ##
## ##
#############################################################
"""
Constructive solid geometry classes: L{Union}.
"""
from Modifier import Modifiable
class Union(Modifiable):
"""
Union of objects.
"""
def __init__(self, *args):
Modifiable.__init__(self)
self.objList = []
for arg in args:
self.append(arg)
def __iter__(self):
return iter(self.objList)
def __getattr__(self, attr):
return getattr(self.objList, attr)
def writeBegin(self, f):
f.write("\nunion {\n")
def writeEnd(self,f):
f.write("\n}")
def writeObjects(self,f):
for obj in iter(self):
obj.writeSdl(f)
f.write("\n")
def writeSdl(self, f):
self.writeBegin(f)
self.writeObjects(f)
Modifiable.writeSdl(self, f)
self.writeEnd(f)
|