def __init__(self, parent, name='CurveSurface'):
        surfaceNodeModel = 'data/models/misc/sphere.egg'
        CurveNodeWrapper.__init__(self, parent, name, surfaceNodeModel)

        #self.nurbsSurfaceEvaluator = NurbsSurfaceEvaluator()
        self.surfaceRenderNP = self.getNodepath().attachNewNode(
            'surfaceRender')

        self.profile = PlaneProfile()
        profile = [.05, .05, .05, .05, 0, 0]
        self.profile.setCurvePositions(profile)

        self.mutableParameters['profile'] = [
            list, self.getProfile, self.setProfile, None, None, True
        ]

        self.profileDetail = 6
        self.mutableParameters['profile detail'] = [
            int, self.getProfileDetail, self.setProfileDetail, None, None, True
        ]
        self.surfaceDetail = 6
        self.mutableParameters['surface detail'] = [
            int, self.getSurfaceDetail, self.setSurfaceDetail, None, None, True
        ]

        self.surfaceWidth = 1
        self.mutableParameters['width'] = [
            float, self.getSurfaceWidth, self.setSurfaceWidth, None, None, True
        ]
        self.uTexScale = 1.0
        self.mutableParameters['uTexScale'] = [
            float, self.getUTexScale, self.setUTexScale, None, None, True
        ]
        self.vTexScale = 1.0
        self.mutableParameters['vTexScale'] = [
            float, self.getVTexScale, self.setVTexScale, None, None, True
        ]

        if DEBUG:
            self.debugNode = self.getNodepath().attachNewNode('debugNode')
 def __init__(self, parent, name='CurveSurface'):
   surfaceNodeModel = 'data/models/misc/sphere.egg'
   CurveNodeWrapper.__init__(self, parent, name, surfaceNodeModel)
   
   #self.nurbsSurfaceEvaluator = NurbsSurfaceEvaluator()
   self.surfaceRenderNP = self.getNodepath().attachNewNode('surfaceRender')
   
   self.profile = PlaneProfile()
   profile = [.05,.05,.05,.05,0,0]
   self.profile.setCurvePositions(profile)
   
   self.mutableParameters['profile'] = [ list,
       self.getProfile,
       self.setProfile,
       None,
       None,
       True
     ]
   
   self.profileDetail = 6
   self.mutableParameters['profile detail'] = [ int,
       self.getProfileDetail,
       self.setProfileDetail,
       None,
       None,
       True
     ]
   self.surfaceDetail = 6
   self.mutableParameters['surface detail'] = [ int,
       self.getSurfaceDetail,
       self.setSurfaceDetail,
       None,
       None,
       True
     ]
   
   self.surfaceWidth = 1
   self.mutableParameters['width'] = [ float,
       self.getSurfaceWidth,
       self.setSurfaceWidth,
       None,
       None,
       True
     ]
   self.uTexScale = 1.0
   self.mutableParameters['uTexScale'] = [ float,
       self.getUTexScale,
       self.setUTexScale,
       None,
       None,
       True
     ]
   self.vTexScale = 1.0
   self.mutableParameters['vTexScale'] = [ float,
       self.getVTexScale,
       self.setVTexScale,
       None,
       None,
       True
     ]
   
   if DEBUG:
     self.debugNode = self.getNodepath().attachNewNode('debugNode')
 def destroy(self):
   self.lineRenderNp.detachNode()
   self.lineRenderNp.removeNode()
   taskName = 'surfaceTextureTask'+str(hash(self))
   taskMgr.remove(taskName)
   CurveNodeWrapper.destroy(self)
 def destroy(self):
     self.lineRenderNp.detachNode()
     self.lineRenderNp.removeNode()
     taskName = 'surfaceTextureTask' + str(hash(self))
     taskMgr.remove(taskName)
     CurveNodeWrapper.destroy(self)