evaluators.py :  » Game-2D-3D » PyOpenGL » PyOpenGL-3.0.1 » OpenGL » GL » NV » Python Open Source

Home
Python Open Source
1.3.1.2 Python
2.Ajax
3.Aspect Oriented
4.Blog
5.Build
6.Business Application
7.Chart Report
8.Content Management Systems
9.Cryptographic
10.Database
11.Development
12.Editor
13.Email
14.ERP
15.Game 2D 3D
16.GIS
17.GUI
18.IDE
19.Installer
20.IRC
21.Issue Tracker
22.Language Interface
23.Log
24.Math
25.Media Sound Audio
26.Mobile
27.Network
28.Parser
29.PDF
30.Project Management
31.RSS
32.Search
33.Security
34.Template Engines
35.Test
36.UML
37.USB Serial
38.Web Frameworks
39.Web Server
40.Web Services
41.Web Unit
42.Wiki
43.Windows
44.XML
Python Open Source » Game 2D 3D » PyOpenGL 
PyOpenGL » PyOpenGL 3.0.1 » OpenGL » GL » NV » evaluators.py
'''OpenGL extension NV.evaluators

This module customises the behaviour of the 
OpenGL.raw.GL.NV.evaluators to provide a more 
Python-friendly API

Overview (from thespec import 
  
  OpenGL evaluators provide applications with the capability to
  specify polynomial or rational curves and surfaces using control
  points relative to the Bezier basis.  The curves and surfaces are
  then drawn by evaluating the polynomials provided at various values
  for the u parameter of a curve or the (u,v) parameters of a surface.
  A tensor product formulation is used for the surfaces.
  
  For various historical reasons, evaluators have not been
  particularly popular as an interface for drawing curves and surfaces.
  This extension proposes a new interface for surfaces that provides a
  number of significant enhancements to the functionality provided by
  the original OpenGL evaluators.
  
  Many implementations never optimized evaluators, so applications
  often implemented their own algorithms instead.  This extension
  relaxes some restrictions that make it difficult to optimize
  evaluators.
  
  Also, new vertex attributes have been added to OpenGL through
  extensions, including multiple sets of texture coordinates, a
  secondary color, a fog coordinate, a vertex weight, and others.
  The extensions which added these vertex attributes never bothered
  to update the functionality of evaluators, since they were used so
  little in the first place.  In turn, evaluators have become more and
  more out of date, making it even less likely that developers will
  want to use them.  Most of the attributes are not a big loss, but
  support for multiple sets of texture coordinates would be absolutely
  essential to developers considering the use of evaluators.
  
  OpenGL evaluators only support rectangular patches, not triangular
  patches.  Although triangular patches can be converted into
  rectangular patches, direct support for triangular patches is likely
  to be more efficient.
  
  The tessellation algorithm used is too inflexible for most purposes;
  only the number of rows and columns can be specified.  Adjacent
  patches must then have identical numbers of rows and columns, or
  severe cracking will occur.  Ideally, a number of subdivisions could
  be specified for all four sides of a rectangular patch and for all
  three of a triangular patch.  This extension goes one step further
  and allows those numbers to be specified in floating-point, providing
  a mechanism for smoothly changing the level of detail of the surface.
  
  Meshes evaluated with EvalMesh are required to match up exactly
  with equivalent meshes evaluated with EvalCoord or EvalPoint.
  This makes it difficult or impossible to use optimizations such as
  forward differencing.
  
  Finally, little attention is given to some of the difficult problems
  that can arise when multiple patches are drawn.  Depending on the
  way evaluators are implemented, and depending on the orientation of
  edges, numerical accuracy problems can cause cracks to appear between
  patches with the same boundary control points.  This extension makes
  guarantees that an edge shared between two patches will match up
  exactly under certain conditions.

The official definition of this extension is available here:
http://www.opengl.org/registry/specs/NV/evaluators.txt
'''
from OpenGL import platform,constants,constant,arrays
from OpenGL import extensions,wrapper
from OpenGL.GL import glget
import ctypes
from OpenGL.raw.GL.NV.evaluators import *
### END AUTOGENERATED SECTION
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.