def __init__(self, name, geom, polyData, parentTransform): self.polyDataItem = vis.PolyDataItem(name, polyData, view=None) self.polyDataItem.setProperty('Alpha', geom.color[3]) self.polyDataItem.actor.SetUserTransform(parentTransform) self.polyDataItem.actor.SetTexture(Geometry.TextureCache.get( Geometry.getTextureFileName(polyData) )) if self.polyDataItem.actor.GetTexture(): self.polyDataItem.setProperty('Color', QtGui.QColor(255, 255, 255)) else: self.polyDataItem.setProperty('Color', QtGui.QColor(geom.color[0]*255, geom.color[1]*255, geom.color[2]*255)) if USE_SHADOWS: self.polyDataItem.shadowOn()
def createSkybox(imageMap, view): objs = {} planes = createSkyboxPlanes() for side, imageFilename in imageMap.iteritems(): texture = createTexture(imageFilename) obj = vis.PolyDataItem('skybox %s' % side, planes[side], view=None) obj.actor.SetTexture(texture) obj.actor.GetProperty().LightingOff() view.backgroundRenderer().AddActor(obj.actor) objs[side] = obj return objs
def initScanLines(self): for scanLine in self.scanLines: scanLine.removeFromAllViews() self.scanLines = [] self.nextScanLineId = 0 self.lastScanLine = max(self.lastScanLine - self.numberOfScanLines, 0) for i in xrange(self.numberOfScanLines): polyData = vtk.vtkPolyData() scanLine = vis.PolyDataItem('scan line %d' % i, polyData, self.view) scanLine.actor.SetPickable(0) scanLine.setSolidColor((1,0,0)) self.scanLines.append(scanLine)
def __init__(self, view, _KinectQueue): self.view = view self.KinectQueue = _KinectQueue self.visible = True self.p = vtk.vtkPolyData() utime = KinectQueue.getPointCloudFromKinect(self.p) self.polyDataObj = vis.PolyDataItem('kinect source', shallowCopy(self.p), view) self.polyDataObj.actor.SetPickable(1) self.polyDataObj.initialized = False om.addToObjectModel(self.polyDataObj) self.queue = PythonQt.dd.ddBotImageQueue(lcmUtils.getGlobalLCMThread()) self.queue.init(lcmUtils.getGlobalLCMThread(), drcargs.args().config_file) self.targetFps = 30 self.timerCallback = TimerCallback(targetFps=self.targetFps) self.timerCallback.callback = self._updateSource
def updatePolyData(self, viewId, polyData): obj = self.polyDataObjects.get(viewId) if obj not in om.getObjects(): obj = None if not obj: hiddenMapIds = [9999] visibleDefault = False if viewId in hiddenMapIds else True obj = vis.PolyDataItem(self.getNameForViewId(viewId), polyData, self.view) obj.setProperty('Visible', visibleDefault) if obj._isPointCloud(): obj.setProperty('Color', [1, 1, 1]) obj.setProperty('Alpha', 0.5) else: obj.setProperty('Color', [0, 0.68, 1]) if viewId == lcmdrc.data_request_t.HEIGHT_MAP_SCENE: obj.setProperty('Surface Mode', 'Wireframe') folder = om.findObjectByName('Map Server') folder.addProperty('Min Range', self.reader.GetDistanceRange()[0], attributes=om.PropertyAttributes(decimals=2, minimum=0.0, maximum=100.0, singleStep=0.25, hidden=False)) folder.addProperty('Max Range', self.reader.GetDistanceRange()[1], attributes=om.PropertyAttributes(decimals=2, minimum=0.0, maximum=100.0, singleStep=0.25, hidden=False)) folder.addProperty('Edge Filter Angle', self.reader.GetEdgeAngleThreshold(), attributes=om.PropertyAttributes(decimals=0, minimum=0.0, maximum=60.0, singleStep=1, hidden=False)) om.addToObjectModel(obj, folder) om.expand(folder) self.folder = folder self.polyDataObjects[viewId] = obj else: obj.setPolyData(polyData) if self.colorizeCallback: self.colorizeCallback(obj)
def __init__(self, view): TimerCallback.__init__(self) self.view = view self.reader = None self.displayedRevolution = -1 self.lastScanLine = 0 self.numberOfScanLines = 1 self.nextScanLineId = 0 self.scanLines = [] self.pointSize = 1 self.alpha = 0.5 self.visible = True self.initScanLines() self.revPolyData = vtk.vtkPolyData() self.polyDataObj = vis.PolyDataItem('Multisense Sweep', self.revPolyData, view) self.polyDataObj.actor.SetPickable(1) self.setPointSize(self.pointSize) self.setAlpha(self.alpha) self.targetFps = 60 self.showRevolutionCallback = None self.colorizeCallback = None