コード例 #1
0
	def worldTransform(self):
		tx = self.parm('tx').evalAsFloat()
		ty = self.parm('ty').evalAsFloat()
		tz = self.parm('tz').evalAsFloat()

		Mt = Matrix4.translation(tx, ty, tz)

		rx = self.parm('rx').evalAsFloat()
		ry = self.parm('ry').evalAsFloat()
		rz = self.parm('rz').evalAsFloat()

		Mr = Matrix4.eulerToMatrixDegrees(rx, ry, rz)

		return Mr * Mt
コード例 #2
0
ファイル: camera.py プロジェクト: cinepost/Copperfield_FX
    def orbit(self,delta_x_pixels, delta_y_pixels):
        pixelsPerDegree = 1000 / float(self.orbiting_speed_degrees_per_radians)
        radiansPerPixel = 1.0 / pixelsPerDegree * math.pi / 180.0

        t2p = self.position - self.target

        M = Matrix4.rotationMatrix( - delta_x_pixels * radiansPerPixel, self.ground )
        t2p = M * t2p
        self.up = M * self.up
        
        right = (self.up.normalized() ^ t2p.normalized()).normalized()
        M = Matrix4.rotationMatrix( delta_y_pixels * radiansPerPixel, right )
        t2p = M * t2p
        self.up = M * self.up
        self.position = self.target + t2p
コード例 #3
0
ファイル: camera.py プロジェクト: yazici/Copperfield_FX
    def orbit(self, delta_x_pixels, delta_y_pixels):
        pixelsPerDegree = 1000 / float(self.orbiting_speed_degrees_per_radians)
        radiansPerPixel = 1.0 / pixelsPerDegree * math.pi / 180.0

        t2p = self.position - self.target

        M = Matrix4.rotationMatrix(-delta_x_pixels * radiansPerPixel,
                                   self.ground)
        t2p = M * t2p
        self.up = M * self.up

        right = (self.up.normalized() ^ t2p.normalized()).normalized()
        M = Matrix4.rotationMatrix(delta_y_pixels * radiansPerPixel, right)
        t2p = M * t2p
        self.up = M * self.up
        self.position = self.target + t2p
コード例 #4
0
    def transform(self):
        tangent = math.tan( self.fov_degrees/2.0 / 180.0 * math.pi )
        viewportRadius = self.near_plane * tangent
        if self.viewportWidthInPixels < self.viewportHeightInPixels:
            viewportWidth = 2.0*viewportRadius
            viewportHeight = viewportWidth * self.viewportHeightInPixels / float(self.viewportWidthInPixels)
        else:
            viewportHeight = 2.0*viewportRadius
            viewportWidth = viewportHeight * self.viewportWidthInPixels / float(self.viewportHeightInPixels)
        glFrustum(
            - 0.5 * viewportWidth,  0.5 * viewportWidth,    # left, right
            - 0.5 * viewportHeight, 0.5 * viewportHeight,   # bottom, top
            self.near_plane, self.far_plane
            )

        M = Matrix4.lookAt(self.position, self.target, self.up, False)
        glMultMatrixf(M.m)
コード例 #5
0
ファイル: camera.py プロジェクト: cinepost/Copperfield_FX
 def getTransform(self):
     return Matrix4.lookAt(self.position, self.target, self.up, False)
コード例 #6
0
ファイル: camera.py プロジェクト: yazici/Copperfield_FX
 def getTransform(self):
     return Matrix4.lookAt(self.position, self.target, self.up, False)