def loadTextureForMesh(polyData, meshFileName):

        textureFileName = Geometry.getTextureFileName(polyData)
        if textureFileName in Geometry.TextureCache or textureFileName is None:
            return

        if not os.path.isabs(textureFileName):
            baseDir = os.path.dirname(meshFileName)
            imageFile = os.path.join(baseDir, textureFileName)
        else:
            imageFile = textureFileName

        if not os.path.isfile(imageFile):
            print 'cannot find texture file:', textureFileName
            return

        image = ioUtils.readImage(imageFile)
        if not image:
            print 'failed to load image file:', imageFile
            return

        texture = vtk.vtkTexture()
        texture.SetInput(image)
        texture.EdgeClampOn()
        texture.RepeatOn()

        Geometry.TextureCache[textureFileName] = texture
 def loadBackgroundImage(self, filename):
     view = self.view
     img = ioUtils.readImage(filename)
     tex = vtk.vtkTexture()
     tex.SetInput(img)
     view.renderer().SetBackgroundTexture(tex)
     view.renderer().TexturedBackgroundOn()
示例#3
0
    def loadTextureForMesh(polyData, meshFileName):

        textureFileName = Geometry.getTextureFileName(polyData)
        if textureFileName in Geometry.TextureCache or textureFileName is None:
            return

        if not os.path.isabs(textureFileName):
            baseDir = os.path.dirname(meshFileName)
            imageFile = os.path.join(baseDir, textureFileName)
        else:
            imageFile = textureFileName

        if not os.path.isfile(imageFile):
            print "cannot find texture file:", textureFileName
            return

        image = ioUtils.readImage(imageFile)
        if not image:
            print "failed to load image file:", imageFile
            return

        texture = vtk.vtkTexture()
        texture.SetInput(image)
        texture.EdgeClampOn()
        texture.RepeatOn()

        Geometry.TextureCache[textureFileName] = texture
示例#4
0
def createTexture(imageFilename):
    image = ioutils.readImage(imageFilename)
    tex = vtk.vtkTexture()
    tex.SetInput(image)
    tex.EdgeClampOn()
    tex.RepeatOff()
    return tex
示例#5
0
def createTexture(imageFilename):
    image = ioUtils.readImage(imageFilename)
    tex = vtk.vtkTexture()
    tex.SetInput(image)
    tex.EdgeClampOn()
    tex.RepeatOff()
    return tex
示例#6
0
    def addImage(self, name, robotName):

        if robotName in self.images and name in self.images[robotName]:
            return

        image = vtk.vtkImageData()
        tex = vtk.vtkTexture()
        tex.SetInputData(image)
        tex.EdgeClampOn()
        tex.RepeatOff()

        if robotName not in self.images:
            self.imageUtimes[robotName] = {}
            self.images[robotName] = {}
            self.textures[robotName] = {}
            self.imageRotations180[robotName] = {}
            self.queue[robotName] = {}
            self.providerClasses[robotName] = None

        self.imageUtimes[robotName][name] = 0
        self.images[robotName][name] = image
        self.textures[robotName][name] = tex
        self.imageRotations180[robotName][name] = False

        if self.providerClasses[robotName]:
            self.queue[robotName][name] = self.providerClasses[
                robotName].initialise_from_name(name, robotName)
        else:
            print(
                "Could not initialise camera {} as the provider class is not initialised."
                .format(name))
            self.queue[robotName][name] = None
示例#7
0
    def getTextureForMaterial(self, material):

        materialDict = dict(material.properties.items())

        if 'file' not in materialDict:
            return None

        textureFile = materialDict['file']

        if textureFile in self.textureCache:
            return self.textureCache[textureFile]

        if not os.path.isabs(textureFile):
            imageFile = os.path.join(self.baseDir, textureFile)
        else:
            imageFile = textureFile

        if os.path.isfile(imageFile):
            image = ioUtils.readImage(imageFile)

            if image:
                texture = vtk.vtkTexture()
                texture.SetInput(image)
                texture.EdgeClampOn()
                texture.RepeatOn()
            else:
                print 'failed to load image file:', imageFile
                texture = None
        else:
            print 'cannot find texture file:', textureFile
            texture = None

        self.textureCache[textureFile] = texture
        return texture
示例#8
0
    def addImage(self, name):

        if name in self.images:
            return

        image = vtk.vtkImageData()
        tex = vtk.vtkTexture()
        tex.SetInput(image)
        tex.EdgeClampOn()
        tex.RepeatOff()

        self.imageUtimes[name] = 0
        self.images[name] = image
        self.textures[name] = tex
示例#9
0
    def addImage(self, name):

        if name in self.images:
            return

        image = vtk.vtkImageData()
        tex = vtk.vtkTexture()
        tex.SetInput(image)
        tex.EdgeClampOn()
        tex.RepeatOff()

        self.imageUtimes[name] = 0
        self.images[name] = image
        self.textures[name] = tex
        self.imageRotations180[name] = False
def create_texture(texture_size, color_map):
    """Creates a texture image by uniformly sampling the color space in the
    given color map."""
    color_map.data_range = [0, 1]
    samples = np.linspace(0.0, 1.0, texture_size)
    texture_image = vtk.vtkImageCanvasSource2D()
    texture_image.SetScalarTypeToUnsignedChar()
    texture_image.SetExtent(0, texture_size-1, 0, 0, 0, 0)
    texture_image.SetNumberOfScalarComponents(3)
    for i in range(0, texture_size):
        [r, g, b] = color_map.get_color(samples[i])
        texture_image.SetDrawColor(255*r, 255*g, 255*b, 0)
        texture_image.DrawPoint(i, 0)
    texture_image.Update()
    texture = vtk.vtkTexture()
    texture.SetInputConnection(texture_image.GetOutputPort())
    texture.RepeatOff()
    return texture