forked from tpaviot/pythonocc-utils
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsolid.py
More file actions
76 lines (65 loc) · 2.52 KB
/
solid.py
File metadata and controls
76 lines (65 loc) · 2.52 KB
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
##Copyright 2008-2013 Jelle Feringa (jelleferinga@gmail.com)
##
##This file is part of pythonOCC.
##
##pythonOCC is free software: you can redistribute it and/or modify
##it under the terms of the GNU Lesser General Public License as published by
##the Free Software Foundation, either version 3 of the License, or
##(at your option) any later version.
##
##pythonOCC is distributed in the hope that it will be useful,
##but WITHOUT ANY WARRANTY; without even the implied warranty of
##MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
##GNU Lesser General Public License for more details.
##
##You should have received a copy of the GNU Lesser General Public License
##along with pythonOCC. If not, see <http://www.gnu.org/licenses/>
from OCC.TopoDS import TopoDS_Solid
from Topology import Topo
from base import GlobalProperties, KbeObject
from shell import Shell
class Solid(TopoDS_Solid, KbeObject):
def __init__(self, solid):
assert isinstance(solid, TopoDS_Solid), 'need a TopoDS_Solid, got a %s' % solid.__class__
assert not solid.IsNull()
super(Solid, self).__init__()
KbeObject.__init__(self, 'solid')
# we need to copy the base shape using the following three
# lines
assert self.IsNull()
self.TShape(solid.TShape())
self.Location(solid.Location())
self.Orientation(solid.Orientation())
assert not self.IsNull()
self.GlobalProperties = GlobalProperties(self)
#=======================================================================
# Solid.boolean
#=======================================================================
def add(self, other_solid):
'''adds another_solid to self
'''
raise NotImplementedError
def cut(self, other_solid):
'''cuts other_solid from self
'''
raise NotImplementedError
def intersect(self, other_solid):
'''common space of self and other_solid
'''
raise NotImplementedError
def shells(self):
return (Shell(sh) for sh in Topo(self))
#===========================================================================
# Solid.graphic
#===========================================================================
@property
def color(self, color):
'''color all the faces
'''
raise NotImplementedError
@property
def tesselation(self, angle):
'''descriptor of the parameter controlling the precision of the
tesselation
'''
raise NotImplementedError