§
    ¸)ýfÇ!  ã                   ó"   —  G d „ de ¦  «        ZdS )c                   ó<   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	S )
ÚFixBrokenPixarSchemaszú
    A class which takes a usdLayer and clients can apply appropriate fixes
    defined as utility methods of this class, example FixupMaterialBindingAPI.

    Every Fixup method iterates on each prim in the layer and applies specific
    fixes.
    c                 ó0   — || _         d | _        d| _        d S )NF)Ú	_usdLayerÚ_skelBindingAPIPropsÚ_layerUpdated)ÚselfÚusdLayers     ú|/home/blender/git/blender-v430/install_release/4.3/python/lib/python3.11/site-packages/pxr/UsdUtils/fixBrokenPixarSchemas.pyÚ__init__zFixBrokenPixarSchemas.__init__!   s   € Ø!ˆŒØ$(ˆÔ!à"ˆÔÐÐó    c                 ó¢   — |j         r$|j        }|                     |¦  «         ||_        n#|j        }|                     |¦  «         ||_        |S )N)Ú
isExplicitÚexplicitItemsÚappendÚprependedItems)r   ÚlistOpÚ	apiSchemaÚitemss       r
   Ú	_ApplyAPIzFixBrokenPixarSchemas._ApplyAPI'   sY   € ØÔð 	*ØÔ(ˆEØ�LŠL˜Ñ#Ô#Ð#Ø#(ˆFÔ Ð àÔ)ˆEØ�LŠL˜Ñ#Ô#Ð#Ø$)ˆFÔ!Øˆr   c                 ó   — | j         S )zò
        Returns the update status of the usdLayer, an instance of 
        FixBrokenPixarSchemas is holding. Fixer methods will set 
        self._layerUpdated to True if any of the Fixer methods applies fixes to 
        the layer.
        )r   )r   s    r
   ÚIsLayerUpdatedz$FixBrokenPixarSchemas.IsLayerUpdated2   s   € ð Ô!Ð!r   c                 óH   ‡ — ˆ fd„}‰ j                              d|¦  «         dS )zÅ
        Makes sure CoordSysAPI multiapply schema is applied and the instanced
        binding relationship is used, instead of old non-applied CoordSysAPI
        "coordSys:name" binding.
        c                 ó(  •— ddl m} |                      ¦   «         sd S ‰j                             | ¦  «        }|                     d¦  «        }g }g }|j        D �]}|j        }|                     d¦  «        rC| 	                    d¦  «        r| 
                    d¦  «        dk    r|                     |¦  «         |                     d¦  «        r–| 	                    d¦  «        r�| 
                    d¦  «        dk    rh|j                             d¦  «        d                              d¦  «        d         }d	|z  }	|                     |	¦  «        s|                     |	¦  «         �Œt          |¦  «        dk    rt          |¦  «        dk    rd S d
‰_        |                     ¦   «         5  |D ]›}|j                             d¦  «        d         }d	|z  }	‰                     ||	¦  «        }|j                             |j        dz   ¦  «        }
|                     ‰j        |j        ‰j        |
¦  «         |                     |¦  «         Œœ|D ]}‰                     ||¦  «        }Œ|                     d|¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Né    )ÚSdfÚ
apiSchemasz	coordSys:z:bindingú:é   éÿÿÿÿzCoordSysAPI:%sT)Úpxrr   Ú
IsPrimPathr   ÚGetPrimAtPathÚGetInfoÚrelationshipsÚnameÚ
startswithÚendswithÚcountr   ÚsplitÚHasItemÚlenr   ÚChangeBlockr   ÚpathÚReplaceNameÚCopySpecÚRemovePropertyÚSetInfo)r-   r   ÚprimSpecr   ÚrelationshipToUpdateÚmissingApiSchemaÚrelÚrelNameÚinstanceNameÚcoordSysAPINameÚ
newRelPathÚ
missingAPIr   s               €r
   Ú_PrimSpecProvidesCoordSysAPIzLFixBrokenPixarSchemas.FixupCoordSysAPI.<locals>._PrimSpecProvidesCoordSysAPIA   s  ø€ ØÐÐÐÐÐØ—?’?Ñ$Ô$ð Ø�Ø”~×3Ò3°DÑ9Ô9ˆHØ!×)Ò)¨,Ñ7Ô7ˆJà#%Ð Ø!ÐØÔ-ð Añ A�Øœ(�à×&Ò& {Ñ3Ô3ð 5Ø$×-Ò-¨jÑ9Ô9ð5à#ŸMšM¨#Ñ.Ô.°!Ò3Ð3Ø(×/Ò/°Ñ4Ô4Ð4ð ×&Ò& {Ñ3Ô3ð AØ×$Ò$ ZÑ0Ô0ðAà—M’M #Ñ&Ô&¨Ò*Ð*Ø#&¤8§>¢>°+Ñ#>Ô#>¸rÔ#Bß!šE *Ñ-Ô-¨aô$1�Là&6¸Ñ&D�OØ%×-Ò-¨oÑ>Ô>ð AØ(×/Ò/°Ñ@Ô@Ð@ùõ Ð'Ñ(Ô(¨AÒ-Ð-µ#Ð6FÑ2GÔ2GÈ1Ò2LÐ2LØ�ð "&ˆDÔð —’Ñ"Ô"ð ;ð ;Ø/ð 1ð 1�CØ#&¤8§>¢>°+Ñ#>Ô#>¸rÔ#B�Là&6¸Ñ&D�OØ!%§¢°
¸OÑ!LÔ!L�Jà!$¤×!5Ò!5°c´h¸zÑ6IÑ!JÔ!J�Jà—L’L ¤°´Ø œN¨Jñ8ô 8ð 8ð ×+Ò+¨CÑ0Ô0Ð0Ð0à"2ð Hð H�JØ!%§¢°
¸JÑ!GÔ!G�J�Jà× Ò  ¨zÑ:Ô:Ð:ð#;ð ;ð ;ñ ;ô ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;øøøð ;ð ;ð ;ð ;ð ;ð ;s   Æ*CJÊJÊJú/N©r   ÚTraverse)r   r;   s   ` r
   ÚFixupCoordSysAPIz&FixBrokenPixarSchemas.FixupCoordSysAPI;   s>   ø€ ð8	;ð 8	;ð 8	;ð 8	;ð 8	;ðt 	Œ×Ò Ð%AÑBÔBÐBÐBÐBr   c                 óH   ‡ — ˆ fd„}‰ j                              d|¦  «         dS )zµ
        Makes sure MaterialBindingAPI is applied on the prim, which defines a
        material:binding property spec. Marks the layer updated if fixes are
        applied.
        c                 óp  •— |                       ¦   «         sd S ‰j                             | ¦  «        }t          d„ |j        D ¦   «         ¦  «        }|                     d¦  «        }d|                     ¦   «         v }|r7|s7d‰_        ‰                     |d¦  «        }| 	                    d|¦  «         d S d S d S )Nc              3   óJ   K  — | ]}|j                              d ¦  «        V — ŒdS )zmaterial:bindingN)r%   r&   ©Ú.0Úprops     r
   ú	<genexpr>zjFixBrokenPixarSchemas.FixupMaterialBindingAPI.<locals>._PrimSpecProvidesMaterialBinding.<locals>.<genexpr>‰   sG   è è € ð 9ð 9Ø ð œ	×,Ò,Ð-?Ñ@Ô@ð 9ð 9ð 9ð 9ð 9ð 9r   r   ÚMaterialBindingAPIT)
r!   r   r"   ÚanyÚ
propertiesr#   ÚGetAddedOrExplicitItemsr   r   r1   )r-   r2   ÚhasMaterialBindingRelr   ÚhasMaterialBindingAPIÚnewApiSchemasr   s         €r
   Ú _PrimSpecProvidesMaterialBindingzWFixBrokenPixarSchemas.FixupMaterialBindingAPI.<locals>._PrimSpecProvidesMaterialBinding„   së   ø€ Ø—?’?Ñ$Ô$ð Ø�Ø”~×3Ò3°DÑ9Ô9ˆHåð 9ð 9Ø$,Ô$7ð9ñ 9ô 9ñ 9ô 9ð "ð "×)Ò)¨,Ñ7Ô7ˆJØ$8Ø×6Ò6Ñ8Ô8ð%9Ð!à$ð >Ð-Bð >Ø%)�Ô"Ø $§¢¨zÐ;OÑ PÔ P�Ø× Ò  ¨}Ñ=Ô=Ð=Ð=Ð=ð>ð >ð >ð >r   r<   Nr=   )r   rN   s   ` r
   ÚFixupMaterialBindingAPIz-FixBrokenPixarSchemas.FixupMaterialBindingAPI~   s=   ø€ ð	>ð 	>ð 	>ð 	>ð 	>ð 	Œ×Ò Ð%EÑFÔFÐFÐFÐFr   c                 óH   ‡ — ˆ fd„}‰ j                              d|¦  «         dS )z×
        Makes sure SkelBindingAPI is applied on the prim, which defines
        appropriate UsdSkel properties which are imparted by SkelBindingAPI.
        Marks the layer as updated if fixes are applied.
        c                 ó  •— |                       ¦   «         sd S ‰j        sLddlm}m} |                     ¦   «         }|                     ddg¦  «        }|                     ¦   «         ‰_        ‰j         	                    | ¦  «        }d„ |j
        D ¦   «         }|                     d¦  «        }d|                     ¦   «         v }‰j        D ]>}	|	|v r8|s6d‰_        ‰                     |d¦  «        }
|                     d|
¦  «          d S Œ?d S )Nr   )ÚUsdÚUsdSkelÚ ÚSkelBindingAPIc                 ó   — g | ]	}|j         ‘Œ
S © )r%   rC   s     r
   ú
<listcomp>zmFixBrokenPixarSchemas.FixupSkelBindingAPI.<locals>._PrimSpecProvidesSkelBindingProperties.<locals>.<listcomp>ª   s   € ÐGÐGÐG¨4˜TœYÐGÐGÐGr   r   T)r!   r   r    rR   rS   ÚSchemaRegistryÚBuildComposedPrimDefinitionÚGetPropertyNamesr   r"   rI   r#   rJ   r   r   r1   )r-   rR   rS   ÚusdSchemaRegistryÚprimDefr2   ÚprimSpecPropsr   ÚhasSkelBindingAPIÚskelPropertyrM   r   s              €r
   Ú&_PrimSpecProvidesSkelBindingPropertieszYFixBrokenPixarSchemas.FixupSkelBindingAPI.<locals>._PrimSpecProvidesSkelBindingProperties�   sB  ø€ Ø—?’?Ñ$Ô$ð Ø�ð Ô,ð GØ,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ø$'×$6Ò$6Ñ$8Ô$8Ð!Ø+×GÒGÈØ)Ð*ñ,ô ,�à,3×,DÒ,DÑ,FÔ,F�Ô)à”~×3Ò3°DÑ9Ô9ˆHØGÐG°8Ô3FÐGÑGÔGˆMØ!×)Ò)¨,Ñ7Ô7ˆJØ 0Ø×6Ò6Ñ8Ô8ð!9Ðà $Ô 9ð ð �Ø  MÐ1Ð1Ð;LÐ1Ø)-�DÔ&Ø$(§N¢N°:Ð?OÑ$PÔ$P�MØ×$Ò$ \°=ÑAÔAÐAØ�F�Føðð r   r<   Nr=   )r   ra   s   ` r
   ÚFixupSkelBindingAPIz)FixBrokenPixarSchemas.FixupSkelBindingAPI–   s=   ø€ ð	ð 	ð 	ð 	ð 	ð0 	Œ×Ò Ð%KÑLÔLÐLÐLÐLr   c                 ó  — ddl m}m} |j                             | j        ¦  «        }|                     |j        j        ¦  «        s;d| _	        | 
                    |j        j        |                     ¦   «         ¦  «         dS dS )zË
        Makes sure the layer specifies a upAxis metadata, and if not upAxis
        metadata is set to the default provided by UsdGeom. Marks the layer as 
        updated if fixes are applied.
        r   )rR   ÚUsdGeomTN)r    rR   rd   ÚStageÚOpenr   ÚHasAuthoredMetadataÚTokensÚupAxisr   ÚSetMetadataÚGetFallbackUpAxis)r   rR   rd   ÚusdStages       r
   ÚFixupUpAxisz!FixBrokenPixarSchemas.FixupUpAxis¸   s–   € ð 	%Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ø”9—>’> $¤.Ñ1Ô1ˆØ×+Ò+¨G¬NÔ,AÑBÔBð 	-Ø!%ˆDÔØ× Ò  ¤Ô!6Ø×)Ò)Ñ+Ô+ñ-ô -ð -ð -ð -ð	-ð 	-r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r?   rO   rb   rm   rW   r   r
   r   r      s•   € € € € € ðð ð#ð #ð #ð	ð 	ð 	ð"ð "ð "ð@Cð @Cð @CðFGð Gð Gð0Mð Mð MðD-ð -ð -ð -ð -r   r   N)Úobjectr   rW   r   r
   ú<module>rs      sC   ðð2j-ð j-ð j-ð j-ð j-˜Fñ j-ô j-ð j-ð j-ð j-r   