/[escript]/trunk/pycad/py_src/primitives.py
ViewVC logotype

Diff of /trunk/pycad/py_src/primitives.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1122 by btully, Thu Apr 19 04:21:43 2007 UTC revision 1123 by gross, Thu May 3 04:13:52 2007 UTC
# Line 1231  class PropertySet(Primitive, PrimitiveBa Line 1231  class PropertySet(Primitive, PrimitiveBa
1231      """      """
1232      def __init__(self,name,*items):      def __init__(self,name,*items):
1233         Primitive.__init__(self)         Primitive.__init__(self)
1234         if len(items)==0:         self.__dim=None
           raise ValueError("at least one item must be give.")  
        if isinstance(items[0] ,Manifold1D):  
             dim=1  
        elif isinstance(items[0] ,Manifold2D):  
             dim=2  
        elif isinstance(items[0] ,Manifold3D):  
            dim=3  
        else:  
            dim=0  
        self.__dim=dim  
1235         self.clearItems()         self.clearItems()
1236         self.addItem(*items)         self.addItem(*items)
1237         self.setName(name)         self.setName(name)
1238    
1239        def getDim(self):
1240           """
1241           returns the dimension of the items
1242           """
1243           if self.__dim == None:
1244               items=self.getItems()
1245               if len(items)>0:
1246                    if isinstance(items[0] ,Manifold1D):
1247                         self.__dim=1
1248                    elif isinstance(items[0] ,Manifold2D):
1249                         self.__dim=2
1250                    elif isinstance(items[0] ,Manifold3D):
1251                        self.__dim=3
1252                    else:
1253                        self.__dim=0
1254           return self.__dim
1255      def __repr__(self):      def __repr__(self):
1256         """         """
1257         returns a string representation         returns a string representation
# Line 1255  class PropertySet(Primitive, PrimitiveBa Line 1262  class PropertySet(Primitive, PrimitiveBa
1262          returns the manifold class expected from items          returns the manifold class expected from items
1263          """          """
1264          d=self.getDim()          d=self.getDim()
1265          if d==0:          if d == None:
1266             return Point             raise ValueError("undefined spatial diemnsion.")
         elif d==1:  
            return Manifold1D  
         elif d==2:  
            return Manifold2D  
1267          else:          else:
1268             return Manifold3D             if d==0:
1269      def getDim(self):                return Point
1270          """             elif d==1:
1271          returns the dimension of the items                return Manifold1D
1272          """             elif d==2:
1273          return self.__dim                return Manifold2D
1274               else:
1275                  return Manifold3D
1276    
1277      def getName(self):      def getName(self):
1278          """          """
1279          returns the name of the set          returns the name of the set
# Line 1278  class PropertySet(Primitive, PrimitiveBa Line 1284  class PropertySet(Primitive, PrimitiveBa
1284          sets the name.          sets the name.
1285          """          """
1286          self.__name=str(name)          self.__name=str(name)
1287            
1288        def addItems(self,*items):
1289            """
1290            adds items. An item my be any L{Primitive} but no L{PropertySet}
1291            """
1292            self.addItem(*items)
1293    
1294      def addItem(self,*items):      def addItem(self,*items):
1295          """          """
1296          adds items. An item my be any L{Primitive} but no L{PropertySet}          adds items. An item my be any L{Primitive} but no L{PropertySet}
1297          """          """
         m=self.getManifoldClass()  
1298          for i in items:          for i in items:
1299              if not i in self.__items:              if not i in self.__items:
1300                 if not isinstance(i, m):                 if len(self.__items)>0:
1301                    raise TypeError("argument %s is not a %s class object."%(i, m.__name__))                    m=self.getManifoldClass()
1302                      if not isinstance(i, m):
1303                         raise TypeError("argument %s is not a %s class object."%(i, m.__name__))
1304                 self.__items.append(i)                 self.__items.append(i)
1305        def getNumItems(self):
1306            """
1307            returns the number of items in the property set
1308            """
1309            return len(self.__items)
1310    
1311      def getItems(self):      def getItems(self):
1312          """          """
1313          returns the list of items          returns the list of items

Legend:
Removed from v.1122  
changed lines
  Added in v.1123

  ViewVC Help
Powered by ViewVC 1.1.26