def refreshMesh( self ): if not os.path.exists(self.fileName): self.fileName = os.path.abspath( './%s' % self.fileName) if not os.path.exists( self.fileName ): return if not os.path.isfile(self.fileName): return self.glFrame.addMesh( mesh(self.fileName) ) self.modelUnit.setCurrentIndex( self.modelUnit.findText( 'mm' ) ) self.refreshGPU()
def __init__(self, machinePrefs = prefs.cs1, fullscreen = True, filename=None, model=None, screen=None, width=600, height=600): # initialize pyglet base class # display = pyglet.window.get_platform().get_default_display() # screens = display.get_screens() # print screens # sys.stdout.flush() if fullscreen: pyglet.window.Window.__init__(self,fullscreen = True, screen=screen) self.set_exclusive_mouse() else: pyglet.window.Window.__init__(self,fullscreen = False, screen=screen, width=width, height=height) self.set_exclusive_mouse() # initialize printer preferences (default CS1) self.prefs = machinePrefs() # bind Model! if not model: raise Exception( "No model loaded to print. Please load a model first, then try a print!" ) self.m = model[0] self.m = mesh(filename) # setup frambuffer #self.config = pyglet.gl.Config( alpha_size=8 ) self.win = self #pyglet.window.Window(fullscreen = fullscreen) self.ortho = gletools.Ortho( 0, self.width, 0, self.height, -100,100) self.projection = gletools.Projection(0, 0, self.width, self.height) # set Frame Buffer Objects (render to textures) self.fbo = gletools.Framebuffer( gletools.Texture( self.width, self.height, data = [0,0,0,255]*(self.width*self.height) ) ) self.fbo.textures[0].unit = GL_TEXTURE0 self.fbo2 = gletools.Framebuffer( gletools.Texture( self.width, self.height, data = [0,0,0,255]*(self.width*self.height) ) ) self.fbo2.textures[0].unit = GL_TEXTURE1 # setup aspect ratio correction self.winAspect = float(self.width)/float(self.height) self.printerAspect = self.prefs.printerAspect() # load shaders self.loadShaders() # setup shader variables self.layer = 0.0 self.shaderProgram.vars.buffer1 = gletools.Sampler2D(GL_TEXTURE0) self.rotation = 0.0 self.timer = None
import pyglet from gletools import ( Projection, Framebuffer, Texture, ShaderProgram, VertexShader, FragmentShader, Sampler2D, interval, quad, Group, Matrix, Screen, Ortho ) from gletools.util import Matrix as Matrix from gletools.gl import * import OpenGL as gl from glViewport import mesh import sys if '.stl' not in sys.argv[-1]: m = mesh('meshes/teapot.stl') else: m = mesh(sys.argv[-1]) mm = 1.0 micron = mm / 1000.0 printArea_mm = [ 225.0, 160.0, 300.0, ] config = pyglet.gl.Config( alpha_size=8 ) window = pyglet.window.Window(fullscreen = False) screen = Screen(0, 0, window.width, window.height)