a
    i‚j“  ã                   @   sÄ   d Z ddlmZ ddlmZ ddlmZm	Z	 G dd„ de
ƒZdd
d„ZeejƒZeejdddƒZeejdddƒZeejƒZeejƒZeeejƒdddƒZeeejƒdddƒZeeejƒdddƒZdS )z1GLE exceptional functions (specialised signaturesé    )ÚGLE)Úannotations)ÚwrapperÚarraysc                   @   s.   e Zd ZdZejfdd„Zdd„ Zdd„ ZdS )	Ú_lengthOfArgnamez=Calculates the length of a given argname over a divisor valuec                 C   s   || _ || _|| _d S ©N)Ú	arrayNameÚdivisorÚ	arrayType)Úselfr   r	   r
   © r   úT/home/ghrups/robot-bench/.venv/lib/python3.9/site-packages/OpenGL/GLE/exceptional.pyÚ__init__	   s    z_lengthOfArgname.__init__c                 C   s   |  | j¡| _d S r   )Z
pyArgIndexr   Ú
arrayIndex)r   r   r   r   r   Úfinalise   s    z_lengthOfArgname.finalisec                 C   s   | j  || j ¡| j S )z,Get the length of pyArgs[2], a glDoubleArray)r
   Z	arraySizer   r	   )r   ZpyArgsÚindexZwrappedOperationr   r   r   Ú__call__   s    z_lengthOfArgname.__call__N)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   ÚGLdoubleArrayr   r   r   r   r   r   r   r      s   r   ÚncpÚcontouré   c                 C   s"   t   | ¡ |¡ |t||tjƒ¡S )z2Do the basic wrapping operation for a GLE function)r   ZsetPyConverterZsetCConverterr   r   r   )ÚbaseZ
lengthNameZcontourNamer	   r   r   r   Ú	_baseWrap   s
    
ÿýr   ZnpointsZpoint_arrayé   N)r   r   r   )r   Z
OpenGL.rawr   ÚrawZOpenGL.raw.GLEr   Ú_simpleZOpenGLr   r   Úobjectr   r   ZgleLatheZglePolyConeZglePolyCylinderZgleScrewZ	gleSpiralZgleExtrusionZgleSuperExtrusionZgleTwistExtrusionr   r   r   r   Ú<module>   s,   



þþþ