Changeset 382

Show
Ignore:
Timestamp:
12/04/02 19:04:59 (6 years ago)
Author:
sholloway
Message:

*** empty log message ***

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/RBRapier/RBRapier/Renderer/DisplayList.py

    r340 r382  
    4747        if self.__RecreateCache: 
    4848            if __debug__: 
    49                 print "Caching %r..." % self.__CachedObj
     49                print "Caching %r..." % self.__class__.__name__
    5050                StartTime = time.clock() 
    5151            if self.__ListId is None: 
  • trunk/RBRapier/RBRapier/Renderer/Geometry/ArrayTraversal.py

    r378 r382  
    6666 
    6767def GenerateStatistics(self, context): 
    68     for StatName, StatResults in self._StatsData.iteritems(): 
    69         try:  
    70             context.Statistics[StatName] += StatResults 
    71         except KeyError: 
    72             context.Statistics[StatName] = StatResults 
     68    if context.Statistics: 
     69        for StatName, StatResults in self._StatsData.iteritems(): 
     70            try: context.Statistics[StatName] += StatResults 
     71            except KeyError: context.Statistics[StatName] = StatResults 
    7372 
    7473class RangedTraversal(object): 
     
    9190        StatName, StatCalc = _PrimitveStatsMap[self.primitive] 
    9291        StatResults = 0 
    93         for RangeStart, RangeEnd in self.datacollection:  
     92        for RangeStart, RangeEnd in self.rangecollection:  
    9493            StatResults += StatCalc(RangeEnd - RangeStart) 
    95         self._StatsData = {StatName:StatResults, _ReversePrimitveMap[self.primitive]: len(self.datacollection)} 
     94        self._StatsData = {StatName:StatResults, _ReversePrimitveMap[self.primitive]: len(self.rangecollection)} 
    9695 
    9796    GenerateStatistics = GenerateStatistics 
     
    170169    def Execute(self, context): 
    171170        primitive = self.primitive 
     171        _glDrawElements = self._glDrawElements 
    172172        for color, data in zip(self.colors, self.datacollection): 
    173173            GL.glColor3f(*color) 
    174             self._glDrawElements(primitive, data) 
     174            _glDrawElements(primitive, data) 
    175175 
    176176        self.GenerateStatistics(context) 
  • trunk/RBRapier/RBRapier/Renderer/Geometry/VertexArrays.py

    r378 r382  
    5656 
    5757    def Select(self, context): 
     58        context.ClientStateMgr.Enable(self._glArrayType) 
    5859        self._glArrayPointer(self.data) 
    59         context.ClientStateMgr.Enable(self._glArrayType) 
    6060 
    6161    def Deselect(self, context): 
     
    7070 
    7171    _glArrayType = GL.GL_VERTEX_ARRAY 
     72    _glArrayPtrType = GL.GL_VERTEX_ARRAY_POINTER 
    7273    _glArrayPointers = { 
    7374        Numeric.Int8: GL.glVertexPointerb, 
     
    7879        } 
    7980 
    80 class ColorArray(ArrayBase): 
    81     #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    82     #~ Constants / Variables / Etc.  
    83     #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    84  
    85     _glArrayType = GL.GL_COLOR_ARRAY 
    86     _glArrayPointers = { 
    87         Numeric.Int8: GL.glColorPointerb, 
    88         Numeric.UInt8: GL.glColorPointerub, 
    89         Numeric.Int16: GL.glColorPointers, 
    90         Numeric.UInt16: GL.glColorPointerus, 
    91         Numeric.Int32: GL.glColorPointeri, 
    92         Numeric.UInt32: GL.glColorPointerui, 
    93         Numeric.Float32: GL.glColorPointerf, 
    94         Numeric.Float64: GL.glColorPointerd, 
    95         } 
    96  
    9781class NormalArray(ArrayBase): 
    9882    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     
    10185 
    10286    _glArrayType = GL.GL_NORMAL_ARRAY 
     87    _glArrayPtrType = GL.GL_NORMAL_ARRAY_POINTER 
    10388    _glArrayPointers = { 
    10489        Numeric.Int8: GL.glNormalPointerb, 
     
    115100 
    116101    _glArrayType = GL.GL_TEXTURE_COORD_ARRAY 
     102    _glArrayPtrType = None 
    117103    _glArrayPointers = { 
    118104        Numeric.Int8: GL.glTexCoordPointerb, 
     
    121107        Numeric.Float32: GL.glTexCoordPointerf, 
    122108        Numeric.Float64: GL.glTexCoordPointerd, 
     109        } 
     110 
     111class ColorArray(ArrayBase): 
     112    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     113    #~ Constants / Variables / Etc.  
     114    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     115 
     116    _glArrayType = GL.GL_COLOR_ARRAY 
     117    _glArrayPtrType = GL.GL_COLOR_ARRAY_POINTER 
     118    _glArrayPointers = { 
     119        Numeric.Int8: GL.glColorPointerb, 
     120        Numeric.UInt8: GL.glColorPointerub, 
     121        Numeric.Int16: GL.glColorPointers, 
     122        Numeric.UInt16: GL.glColorPointerus, 
     123        Numeric.Int32: GL.glColorPointeri, 
     124        Numeric.UInt32: GL.glColorPointerui, 
     125        Numeric.Float32: GL.glColorPointerf, 
     126        Numeric.Float64: GL.glColorPointerd, 
    123127        } 
    124128 
     
    130134    _DefaultFormat = Numeric.UInt8 
    131135    _glArrayType = GL.GL_EDGE_FLAG_ARRAY 
     136    _glArrayPtrType = None 
    132137    _glArrayPointers = { 
    133138        Numeric.UInt8: GL.glEdgeFlagPointer, 
  • trunk/RBRapier/demo/Lightwave/scene.py

    r379 r382  
    6767        self.DepthTest = FragmentTests.DepthTest() 
    6868        self.Sequence.AddSetupElement(self.DepthTest.Select) 
    69         #self.Normalization = TransformationSettings.Normalization() 
    70         #self.Sequence.AddSetupElement(self.Normalization.Select) 
     69        self.Normalization = TransformationSettings.Normalization() 
     70        self.Sequence.AddSetupElement(self.Normalization.Select) 
    7171        self.Culling = PolygonRasterization.FaceCulling() 
    7272        self.Sequence.AddSetupElement(self.Culling.Select) 
     
    7575        self.Lighting.Active = 1 
    7676        self.Sequence.AddElement(self.Lighting.Select) 
     77 
    7778        self.Lights = [] 
    78         self.Lights.append(Lighting.SpotLight(0, SpotCutoff=10., SpotExponent=16.)) 
     79        self.Lights.append(Lighting.Light(0)) 
    7980        self.Lights[0].Active = 1 
    80         self.Lights[0].Position = (0., .4, 0., 1.) 
    81         self.Lights[0].SpotDirection = (0., -1., 0., 0.) 
    8281        self.Lights.append(Lighting.Light(1)) 
    8382        self.Lights[1].Active = 1 
     
    8887        self.Lights[2].Specular = 0., 0., 1. 
    8988        self.Lights[2].Diffuse = .6, .6, .6 
     89        self.Lights.append(Lighting.SpotLight(3, SpotCutoff=10., SpotExponent=16.)) 
     90        self.Lights[3].Active = 1 
     91        self.Lights[3].Position = (0., .4, 0., 1.) 
     92        self.Lights[3].SpotDirection = (0., -1., 0., 0.) 
    9093 
    9194        #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     
    105108 
    106109        self.Sequence.AddElement(self.Lights[0].Select) 
     110        self.Sequence.AddElement(self.Lights[3].Select) 
    107111 
    108112        self.ModelView = Transformations.ManagedComposite() 
     
    124128        self.Sequence.AddElement(self.LightXForm.Deselect) 
    125129 
    126         self.Grid = Grids.TextureGrid(GridExtent=1, TextureExtent=10) 
    127         try: self.Grid.LoadGridTexture('coolgrid.png') 
    128         except IOError: pass 
    129         self.Sequence.AddElement(self.Grid) 
     130        #self.Grid = Grids.TextureGrid(GridExtent=1, TextureExtent=10) 
     131        #try: self.Grid.LoadGridTexture('coolgrid.png') 
     132        #except IOError: pass 
     133        #self.Sequence.AddElement(self.Grid) 
    130134 
    131135        #self.Sequence.AddElement(AxisSets.AxisLineSet()) 
     
    133137        args = 1,3 
    134138        #self.GeoObj = self.LigthwaveLWO('data/RBText.lwo', *args) 
    135         self.GeoObj = self.LigthwaveLWO('data/dodecahedron.lwo', *args) 
    136         #self.GeoObj = self.LigthwaveLWO('data/ki162a.lwo', *args) 
     139        #self.GeoObj = self.LigthwaveLWO('data/dodecahedron.lwo', *args) 
     140        self.GeoObj = self.LigthwaveLWO('data/ki162a.lwo', *args) 
    137141        #self.GeoObj = self.LigthwaveLWO('data/fi110a.lwo', *args) 
    138142        #self.GeoObj = self.LigthwaveLWO('data/ga102a.lwo', *args) 
     
    140144        #self.GeoObj = self.LigthwaveLWO('data/SIM.LWO', *args) 
    141145 
     146        #self.DLOptimize(self.GeoObj) 
    142147        #self.Sequence.AddElements(self.GeoObj.Vertices.Select, self.GeoObj.Normals.Select) 
    143         self.Sequence.AddElement(self.GeoObj) 
     148        for x in xrange(1): 
     149            self.Sequence.AddElement(self.GeoObj.Execute) 
     150        #print "BoundingBox", self.GeoObj.BoundingBox 
    144151 
    145152    def StripColoredLigthwaveLWO(self, name, *args, **kw): 
     
    149156        builder.IndexedTraversal = ArrayTraversal.ColoredIndexedCollectionTraversal 
    150157        GeoObj = builder.Build(open(name, 'rb'), *args, **kw) 
    151         #self.Sequence.AddElement(GeoObj) 
    152158        return GeoObj 
    153159 
     
    156162        builder.GeoObjectFactory = GeoObject.DefaultGeoObject 
    157163        GeoObj = builder.Build(open(name, 'rb'), *args, **kw) 
    158         #self.Sequence.AddElement(GeoObj) 
    159164        return GeoObj 
     165 
     166    def DLOptimize(self, obj): 
     167        from RBRapier.Renderer.DisplayList import DisplayList 
     168        DisplayList.InsertAspect(obj) 
    160169 
    161170    Animate = 1 
     
    169178        if self.Animate: 
    170179            self.ModelView.Rotate.Angle = Numeric.fmod(self.ModelView.Rotate.Angle + self.ModelView.Rotate.AngleDelta, 360.) 
    171             self.LightXForm.Rotate.Angle = Numeric.fmod(self.LightXForm.Rotate.Angle + self.LightXForm.Rotate.AngleDelta, 360.) 
     180            #self.LightXForm.Rotate.Angle = Numeric.fmod(self.LightXForm.Rotate.Angle + self.LightXForm.Rotate.AngleDelta, 360.)