示例#1
0
 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()
示例#2
0
    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
示例#3
0
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)