2 Boolean geometry utilities.
6 from __future__ import absolute_import
7 #Init has to be imported first because it has code to workaround the python bug where relative imports don't work if the module is imported as a main module.
11 __author__ = 'Enrique Perez (perez_enrique@yahoo.com)'
12 __credits__ = 'Art of Illusion <http://www.artofillusion.org/>'
13 __date__ = '$Date: 2008/02/05 $'
14 __license__ = 'GNU Affero General Public License http://www.gnu.org/licenses/agpl.html'
17 def _getAccessibleAttribute(attributeName, elementNode):
18 'Get the accessible attribute.'
19 if attributeName in globalGetAccessibleAttributeSet:
20 return getattr(Document(elementNode), attributeName, None)
25 'Class to handle elementNodes in a document.'
26 def __init__(self, elementNode):
28 self.elementNode = elementNode
31 'Get the string representation of this Document.'
32 return self.elementNode
34 def getCascadeBoolean(self, defaultBoolean, key):
35 'Get cascade boolean.'
36 return self.elementNode.getCascadeBoolean(defaultBoolean, key)
38 def getCascadeFloat(self, defaultFloat, key):
40 return self.elementNode.getCascadeFloat(defaultFloat, key)
42 def getDocumentElement(self):
43 'Get document element element.'
44 return self.elementNode.getDocumentElement()
46 def getElementByID(self, idKey):
48 elementByID = self.elementNode.getElementNodeByID(idKey)
49 if elementByID == None:
50 print('Warning, could not get elementByID in getElementByID in document for:')
52 print(self.elementNode)
55 def getElementsByName(self, nameKey):
56 'Get element by name.'
57 elementsByName = self.elementNode.getElementNodesByName(nameKey)
58 if elementsByName == None:
59 print('Warning, could not get elementsByName in getElementsByName in document for:')
61 print(self.elementNode)
64 def getElementsByTag(self, tagKey):
66 elementsByTag = self.elementNode.getElementNodesByTag(tagKey)
67 if elementsByTag == None:
68 print('Warning, could not get elementsByTag in getElementsByTag in document for:')
70 print(self.elementNode)
73 def getParentNode(self):
74 'Get parentNode element.'
75 return self.elementNode.parentNode
77 def getPrevious(self):
78 'Get previous element.'
79 return self.getPreviousElement()
81 def getPreviousElement(self):
82 'Get previous element.'
83 return self.elementNode.getPreviousElementNode()
85 def getPreviousVertex(self):
86 'Get previous element.'
87 return self.elementNode.getPreviousVertex()
89 def getSelfElement(self):
91 return self.elementNode
94 globalAccessibleAttributeDictionary = 'getCascadeBoolean getCascadeFloat getDocumentElement getElementByID getElementsByName'.split()
95 globalAccessibleAttributeDictionary += 'getElementsByTag getParentNode getPrevious getPreviousElement getPreviousVertex'.split()
96 globalAccessibleAttributeDictionary += 'getSelfElement'.split()
97 globalGetAccessibleAttributeSet = set(globalAccessibleAttributeDictionary)