ó
¹™Jc           @   sy  d  Z  d Z d d l m Z d d l m Z d d l Z d e j f d „  ƒ  YZ i e j	 e j
 f e 6e j e j f e 6e j e j f e 6Z e g  e j D]! \ Z Z e e e ƒ e f ^ q ƒ Z e g  e j D] \ Z Z e e e ƒ ^ qÔ ƒ a e g  e j D]! \ Z Z e e e e ƒ f ^ qƒ Z e g  e j D]* \ Z Z e e j e e e ƒ ƒ f ^ q<ƒ Z [ [ d S(   s3   Numbers passed as array handling code for PyOpenGL
t   numbersiÿÿÿÿ(   t	   constants(   t   formathandlerNt   NumberHandlerc           B   s­   e  Z d  Z e e e e j e j e j	 e j
 e j e j e j e j f Z d	 d „ Z e Z d	 d „ Z d	 d „ Z d „  Z d	 d „ Z d	 d „ Z d	 d „ Z d „  Z RS(
   sK   Allows the user to pass a bald Python float,int, etceteras as an array-of-1c         C   s=   y t  j | ƒ SWn% t k
 r8 } | j d 7_ ‚  n Xd S(   s5   If it's a ctypes value, pass on, otherwise do asArrays^    If you have ERROR_ON_COPY enabled, remember to pass in an array to array-requiring functions.N(   s^    If you have ERROR_ON_COPY enabled, remember to pass in an array to array-requiring functions.(   t   ctypest   byreft	   TypeErrort   args(   t   selft   valuet   typeCodet   err(    (    s6   C:\Python27\Lib\site-packages\OpenGL\arrays\numbers.pyt
   from_param   s
    c         C   s   t  d ƒ ‚ d S(   s-   Currently don't allow Number as output types!s6   Number data-type not allowed as an output array formatN(   t   NotImplemented(   R   t   dimsR
   (    (    s6   C:\Python27\Lib\site-packages\OpenGL\arrays\numbers.pyt   zeros   s    c         C   s   t  d ƒ ‚ d S(   s-   Currently don't allow Number as output types!s6   Number data-type not allowed as an output array formatN(   R   (   R   R   R
   (    (    s6   C:\Python27\Lib\site-packages\OpenGL\arrays\numbers.pyt   ones    s    c         C   sZ   | j  t k r t | j  St j | j  ƒ } | d k	 r@ | d St d t | ƒ ƒ ‚ d S(   s=   Given a value, guess OpenGL type of the corresponding pointeri   s(   Can't guess array data-type for %r typesN(   t	   __class__t   TARGET_TYPESt   DEFAULT_TYPESt   gett   NoneR   t   type(   R   R	   t   guess(    (    s6   C:\Python27\Lib\site-packages\OpenGL\arrays\numbers.pyt   arrayToGLType#   s    c         C   s   d S(   s9   Given a data-value, calculate ravelled size for the arrayi   (    (   R   R	   R
   (    (    s6   C:\Python27\Lib\site-packages\OpenGL\arrays\numbers.pyt	   arraySize,   s    c         C   sO   | j  t k r | St j | ƒ } | d k	 r8 | | ƒ St d | f ƒ ‚ d S(   s7   Convert given value to an array value of given typeCodes-   Don't know how to convert %r to an array typeN(   R   R   t   CONSTANT_TO_TYPER   R   R   (   R   R	   R
   t
   targetType(    (    s6   C:\Python27\Lib\site-packages\OpenGL\arrays\numbers.pyt   asArray/   s    
c         C   s   d S(   s-   Determine unit size of an array (if possible)i   (    (   R   R	   R
   (    (    s6   C:\Python27\Lib\site-packages\OpenGL\arrays\numbers.pyt   unitSize:   s    c         C   s]   x7 t  t t f D]& } | j | ƒ r | | | | <q q Wt j | ƒ rY t | f a n  d S(   s2   Register a sub-class for handling as the base-typeN(   R   R   t
   BYTE_SIZESt   has_keyt   TARGET_TYPE_TUPLE(   R   t   typt   baset   source(    (    s6   C:\Python27\Lib\site-packages\OpenGL\arrays\numbers.pyt   registerEquivalent=   s
    N(   t   __name__t
   __module__t   __doc__t   intt   longt   floatR   t   GLdoublet   GLfloatt   GLintt   GLshortt   GLuintt   GLushortt   GLclampft   GLclampdt   HANDLED_TYPESR   R   t   dataPointerR   R   R   R   R   R   R$   (    (    (    s6   C:\Python27\Lib\site-packages\OpenGL\arrays\numbers.pyR      s&   			(   R'   t   REGISTRY_NAMEt   OpenGLR   t   OpenGL.arraysR   R   t   FormatHandlerR   R+   t	   GL_DOUBLER*   R-   t   GL_INTR(   R)   R   t   dictt   ARRAY_TYPE_TO_CONSTANTt   nt   ct   getattrR   t   tupleR    R   t   sizeofR   (    (    (    s6   C:\Python27\Lib\site-packages\OpenGL\arrays\numbers.pyt   <module>   s,   >1+1: