chiark / gitweb /
Add uppercase STL and HEX to file dialog filters for linux/MacOS
[cura.git] / Cura / fabmetheus_utilities / geometry / geometry_utilities / evaluate_elements / document.py
1 """
2 Boolean geometry utilities.
3
4 """
5
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.
8 import __init__
9
10
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'
15
16
17 def _getAccessibleAttribute(attributeName, elementNode):
18         'Get the accessible attribute.'
19         if attributeName in globalGetAccessibleAttributeSet:
20                 return getattr(Document(elementNode), attributeName, None)
21         return None
22
23
24 class Document:
25         'Class to handle elementNodes in a document.'
26         def __init__(self, elementNode):
27                 'Initialize.'
28                 self.elementNode = elementNode
29
30         def __repr__(self):
31                 'Get the string representation of this Document.'
32                 return self.elementNode
33
34         def getCascadeBoolean(self, defaultBoolean, key):
35                 'Get cascade boolean.'
36                 return self.elementNode.getCascadeBoolean(defaultBoolean, key)
37
38         def getCascadeFloat(self, defaultFloat, key):
39                 'Get cascade float.'
40                 return self.elementNode.getCascadeFloat(defaultFloat, key)
41
42         def getDocumentElement(self):
43                 'Get document element element.'
44                 return self.elementNode.getDocumentElement()
45
46         def getElementByID(self, idKey):
47                 'Get element by id.'
48                 elementByID = self.elementNode.getElementNodeByID(idKey)
49                 if elementByID == None:
50                         print('Warning, could not get elementByID in getElementByID in document for:')
51                         print(idKey)
52                         print(self.elementNode)
53                 return elementByID
54
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:')
60                         print(nameKey)
61                         print(self.elementNode)
62                 return elementsByName
63
64         def getElementsByTag(self, tagKey):
65                 'Get element by tag.'
66                 elementsByTag = self.elementNode.getElementNodesByTag(tagKey)
67                 if elementsByTag == None:
68                         print('Warning, could not get elementsByTag in getElementsByTag in document for:')
69                         print(tagKey)
70                         print(self.elementNode)
71                 return elementsByTag
72
73         def getParentNode(self):
74                 'Get parentNode element.'
75                 return self.elementNode.parentNode
76
77         def getPrevious(self):
78                 'Get previous element.'
79                 return self.getPreviousElement()
80
81         def getPreviousElement(self):
82                 'Get previous element.'
83                 return self.elementNode.getPreviousElementNode()
84
85         def getPreviousVertex(self):
86                 'Get previous element.'
87                 return self.elementNode.getPreviousVertex()
88
89         def getSelfElement(self):
90                 'Get self element.'
91                 return self.elementNode
92
93
94 globalAccessibleAttributeDictionary = 'getCascadeBoolean getCascadeFloat getDocumentElement getElementByID getElementsByName'.split()
95 globalAccessibleAttributeDictionary += 'getElementsByTag getParentNode getPrevious getPreviousElement getPreviousVertex'.split()
96 globalAccessibleAttributeDictionary += 'getSelfElement'.split()
97 globalGetAccessibleAttributeSet = set(globalAccessibleAttributeDictionary)