chiark / gitweb /
Add back the ultimaker platform, and made the platform mesh simpler.
[cura.git] / Cura / slice / cura_sf / fabmetheus_utilities / geometry / geometry_utilities / evaluate_elements / document.py
1 """
2 Boolean geometry utilities.
3
4 """
5
6 from __future__ import absolute_import
7
8
9 __author__ = 'Enrique Perez (perez_enrique@yahoo.com)'
10 __credits__ = 'Art of Illusion <http://www.artofillusion.org/>'
11 __date__ = '$Date: 2008/02/05 $'
12 __license__ = 'GNU Affero General Public License http://www.gnu.org/licenses/agpl.html'
13
14
15 def _getAccessibleAttribute(attributeName, elementNode):
16         'Get the accessible attribute.'
17         if attributeName in globalGetAccessibleAttributeSet:
18                 return getattr(Document(elementNode), attributeName, None)
19         return None
20
21
22 class Document(object):
23         'Class to handle elementNodes in a document.'
24         def __init__(self, elementNode):
25                 'Initialize.'
26                 self.elementNode = elementNode
27
28         def __repr__(self):
29                 'Get the string representation of this Document.'
30                 return self.elementNode
31
32         def getCascadeBoolean(self, defaultBoolean, key):
33                 'Get cascade boolean.'
34                 return self.elementNode.getCascadeBoolean(defaultBoolean, key)
35
36         def getCascadeFloat(self, defaultFloat, key):
37                 'Get cascade float.'
38                 return self.elementNode.getCascadeFloat(defaultFloat, key)
39
40         def getDocumentElement(self):
41                 'Get document element element.'
42                 return self.elementNode.getDocumentElement()
43
44         def getElementByID(self, idKey):
45                 'Get element by id.'
46                 elementByID = self.elementNode.getElementNodeByID(idKey)
47                 if elementByID == None:
48                         print('Warning, could not get elementByID in getElementByID in document for:')
49                         print(idKey)
50                         print(self.elementNode)
51                 return elementByID
52
53         def getElementsByName(self, nameKey):
54                 'Get element by name.'
55                 elementsByName = self.elementNode.getElementNodesByName(nameKey)
56                 if elementsByName == None:
57                         print('Warning, could not get elementsByName in getElementsByName in document for:')
58                         print(nameKey)
59                         print(self.elementNode)
60                 return elementsByName
61
62         def getElementsByTag(self, tagKey):
63                 'Get element by tag.'
64                 elementsByTag = self.elementNode.getElementNodesByTag(tagKey)
65                 if elementsByTag == None:
66                         print('Warning, could not get elementsByTag in getElementsByTag in document for:')
67                         print(tagKey)
68                         print(self.elementNode)
69                 return elementsByTag
70
71         def getParentNode(self):
72                 'Get parentNode element.'
73                 return self.elementNode.parentNode
74
75         def getPrevious(self):
76                 'Get previous element.'
77                 return self.getPreviousElement()
78
79         def getPreviousElement(self):
80                 'Get previous element.'
81                 return self.elementNode.getPreviousElementNode()
82
83         def getPreviousVertex(self):
84                 'Get previous element.'
85                 return self.elementNode.getPreviousVertex()
86
87         def getSelfElement(self):
88                 'Get self element.'
89                 return self.elementNode
90
91
92 globalAccessibleAttributeDictionary = 'getCascadeBoolean getCascadeFloat getDocumentElement getElementByID getElementsByName'.split()
93 globalAccessibleAttributeDictionary += 'getElementsByTag getParentNode getPrevious getPreviousElement getPreviousVertex'.split()
94 globalAccessibleAttributeDictionary += 'getSelfElement'.split()
95 globalGetAccessibleAttributeSet = set(globalAccessibleAttributeDictionary)