
    ljl                    d    d dl mZ d dlmZ d dlZd dlmZ d dlm	Z	m
Z
 dgZ G d de	          ZdS )    )annotations)AnyN)OpenGLSurface)OpenGLVGroupOpenGLVMobjectOpenGLSurfaceMeshc                  4     e Zd Z	 	 	 	 	 dd fdZddZ xZS )r   N   {Gz?TF
uv_surfacer   
resolutiontuple[int, int] | Nonestroke_widthfloatnormal_nudge
depth_testboolflat_strokekwargsr   c                    t          |t                    st          d          || _        ||nd| _        || _         t                      j        d|||d| d S )Nz(uv_surface must be of type OpenGLSurface)   r   )r   r   r    )
isinstancer   	Exceptionr   r   r   super__init__)	selfr   r   r   r   r   r   r   	__class__s	           g/home/agentuser/manim-venv/lib/python3.11/site-packages/manim/mobject/opengl/opengl_three_dimensions.pyr   zOpenGLSurfaceMesh.__init__   s     *m44 	HFGGG$(2(>**H( 	
%!#	
 	
 		
 	
 	
 	
 	
    returnNonec                   | j         }|j        \  }}| j        \  }}t          j        d||                              t
                    }t          j        d||                              t
                    }|                                \  }}	}
|                                }|| j        |z  z   }|D ]J}t                      }||z  }|
                    ||||z                       |                     |           K|D ]C}t                      }|
                    ||d |                    |                     |           Dd S )Nr   )r   r   nplinspaceastypeint$get_surface_points_and_nudged_pointsget_unit_normalsr   r   set_points_smoothlyadd)r   r   full_nufull_nvpart_nupart_nv	u_indices	v_indicespoints	du_points	dv_pointsnormalsnudged_pointsuipathfull_uivis                    r   init_pointszOpenGLSurfaceMesh.init_points$   sJ   _
%0?K7G44;;C@@	K7G44;;C@@	'1'V'V'X'X$	9--//!2W!<< 	 	B!##DlG$$]7Ww=N3N%OPPPHHTNNNN 	 	B!##D$$]2;w;%?@@@HHTNNNN	 	r    )Nr
   r   TF)r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r!   r"   )__name__
__module____qualname__r   r;   __classcell__)r   s   @r   r   r      sg         .2"!
 
 
 
 
 
 
,       r    )
__future__r   typingr   numpyr$   #manim.mobject.opengl.opengl_surfacer   .manim.mobject.opengl.opengl_vectorized_mobjectr   r   __all__r   r   r    r   <module>rF      s    " " " " " "           = = = = = = W W W W W W W W
+ + + + + + + + + +r    