
    ni                     x
   S SK rS SKrS SKrS SKr\R                  " \R                  5        \R                  " \R                  " 5       5        Sr
S rSrSrSr\rS SKr\R"                  " S5        \R$                  " \R&                  S 5        Sr\\:X  a  SrSrS /\-  \-  r\" \" \S-  5      5       H~  r\" \" \S-  5      5       Hf  r\R8                  " S \5      r\\S\-  S\-  \-  -   '   \\S\-  S-   S\-  \-  -   '   \\S\-  S\-  S-   \-  -   '   \\S\-  S-   S\-  S-   \-  -   '   Mh     M     \R<                  " \R>                  / S	Q\S-
  S-  \\\S
9r \RB                  " S \ 5      r"\RF                  " \"/ SQ/ SQ5        \\:X  aJ  \R<                  " \R>                  / SQSSS9r \RB                  " S \ 5      r"\RF                  " \"/ SQ/ SQ5        \\:X  aU  \R<                  " \R>                  / SQSS9r \RH                  " S5      r
\RB                  " S \ 5      r"\RJ                  " \"S\
S9  \RJ                  " \"S/ SQS9  Sr&\R<                  " \RN                  \&S9r(\R<                  " \RR                  \&\&\&/S9r*Sr+Sr,S/r-\*/r.S/r// SQ/r0/ SQ/r1/ SQ/r2/ SQ/r3S /r4\Rj                  /r6/ SQ/r7\" S5       H  r\" S5       H  r\" S5       H  r8\S-  \&-  \S-  \&-  S\8S-  \&-  -   S-   /r9/ SQr:\8S-  (       a  \RB                  " \+\(\,\9\:5      r;O\RB                  " \+\*\,\9\:\-\.\/\0\1\2\3\4\6\7S9r;\Rx                  " \;SSSS S!9  \" \Rz                  " \;5      5       H!  r>\R~                  " \;\>\R                  SSS"9  M#     M     M     M     \R$                  " \R&                  S5        \R                  " S S S#5        \R                  " S5        \Rz                  " \;5        \" \Rz                  " \;5      5       H  r\R                  " \;\5        M     \R                  " 5       (       Ga  \R                  " 5       rF\(       a  \\:X  a  \" \" \S-  5      5       H~  r\" \" \S-  5      5       Hf  r\R8                  " S \5      r\\S\-  S\-  \-  -   '   \\S\-  S-   S\-  \-  -   '   \\S\-  S\-  S-   \-  -   '   \\S\-  S-   S\-  S-   \-  -   '   Mh     M     S rG\R<                  " \R>                  \G/ S	Q\S-
  S-  \\\\ S$9rH\R                  " S%5        \R                  " 5       (       a  GM  gg)&    N      F
   皙?   )r   r   r   )	shapeType	meshScaleheightfieldTextureScalingheightfieldDatanumHeightfieldRowsnumHeightfieldColumns)r   r   r   )r   r   r   r   )      ?r   g      @zheightmaps/ground0.txt   )r	   r
   fileNamer   )皙?r      zheightmaps/wm_height_out.png)r	   r
   r   zheightmaps/gimp_overlay_out.png)textureUniqueId)r   r   r   r   )	rgbaColor)radius)halfExtents)r   r   g)\(?)r   r   r         )

linkMasseslinkCollisionShapeIndiceslinkVisualShapeIndiceslinkPositionslinkOrientationslinkInertialFramePositionslinkInertialFrameOrientationslinkParentIndiceslinkJointTypeslinkJointAxisgMbP?g        )spinningFrictionrollingFrictionlinearDamping)targetVelocityforcei)r	   flagsr
   r   r   r   r   replaceHeightfieldIndexg{Gz?)Jpybulletppybullet_datapdmathtimeconnectGUIsetAdditionalSearchPathgetDataPath	textureIduseProgrammaticuseTerrainFromPNGuseDeepLocoCSVupdateHeightfieldheightfieldSourcerandomseedconfigureDebugVisualizerCOV_ENABLE_RENDERINGheightPerturbationRanger   r   r   rangeintjiuniformheightcreateCollisionShapeGEOM_HEIGHTFIELDterrainShapecreateMultiBodyterrainresetBasePositionAndOrientationloadTexturechangeVisualShapesphereRadiusGEOM_SPHEREcolSphereIdGEOM_BOXcolBoxIdmassvisualShapeIdlink_Massesr   r   r   r   r   r    indicesJOINT_REVOLUTE
jointTypesaxiskbasePositionbaseOrientation	sphereUidchangeDynamicsgetNumJointsjointsetJointMotorControl2VELOCITY_CONTROL
setGravitysetRealTimeSimulationgetJointInfoisConnectedgetKeyboardEventskeysr)   terrainShape2sleep     W/home/james-whalen/.local/lib/python3.13/site-packages/pybullet_examples/heightfield.py<module>rn      sC       		!%%    "..* +	  #   B   111! 4 o%C**+@@/#+A-./aC*1,-/~~a 78f28oac!A#00014:oac!eAaC 22236<oac1Q3q5"44458>oac!eQqSU$6667 0 0 ''A4F4FR]  {M  NO  {O  QR  zR  ds  HZ  rG  H,q,/'##GGY?n$''A4F4FR]  jB  ^a  b,q,/'##GGY?''''A4F4FR\  iG  H,mm=>)q,/'grY?   GR9 5 $$Q]]<H!!!**/;\<.XZ 	c%J   > '[ !- #
{	qA8a1X
a%,
A 4a!a%,:N6NQR6Rl %o
a%%%dK&57	 %%d&.&3&2&51<@Y=S4A7GA[Da8?5?48:	" y(-',%(	*
 	23%		5!2D2DUV^`a 4?   
H   111! 4 Q3      y 	q~~i(	)A..A 
* 	}}	
			$,o=C-a/01c,Q./1!"9:4:!AaC 22236<!Aac"44458>!QqSU$6667:@!Aqs1u&8889 2 2 E**q7I7ISXdo  M_  `a  Ma  cd  Ld  vE  Zl  DY  uA  BM **T+ 	}}rl   