Aller au contenu
weSkelDOCUMENTATION
Documentation/Référence API/GeometryFilter

GeometryFilter

Socle des déformeurs : enveloppe et géométries d’entrée / sortie.

ClassAPI 2.0Base
objectNodeDGNodeGeometryFilter
from weSkel.src.core.node.abstract.geometry_filter.lib import GeometryFilter

Dans Maya ou dans un script Python exécuté par Maya / mayapy initialisé, avec weSkel accessible. L’import de om n’est nécessaire que pour manipuler les types OpenMaya dans votre propre code.

Élément Valeur
Classe GeometryFilter
Module weSkel.src.core.node.abstract.geometry_filter.lib
Parent direct DGNode
Descendants directs représentés SkinCluster
Membres propres 3 propriétés Python + 16 propriétés de specs ; 0 méthodes définies ou redéfinies ici.

Les membres des parents restent disponibles. Chaque rubrique propose des tableaux repliables par classe parente, avec un lien vers le contrat complet. Les méthodes privées et les mécanismes standard Python ne font pas partie de cet inventaire.

Signature : GeometryFilter(node) → GeometryFilter ou une sous-classe compatible déjà enregistrée.

Paramètre Types acceptés Défaut
node str, om.MObject, om.MObjectHandle, om.MFnDependencyNode Obligatoire

Enveloppe un nœud existant ou prépare un wrapper si le nom est introuvable ; ne crée aucun nœud. Pour un autre wrapper, passer other.mobject. Le registre partagé conserve l’identité et peut renvoyer le wrapper concret existant. Une entrée incompatible peut lever TypeError, et un conflit d’identité RuntimeError.

Accepte les objets compatibles avec om.MFn.kGeometryFilt. Pour créer un skinCluster, utiliser le wrapper concret SkinCluster, pas le type abstrait geometryFilter.

Propriétés Python définies sur cette classe. om désigne maya.api.OpenMaya. Les propriétés issues des specs sont détaillées dans la section suivante.

Propriété Type retourné Accès
mfn_geometry_filter oma.MFnGeometryFilter | None L
input_geometries om.MObjectArray L
output_geometries om.MObjectArray L

node.mfn_geometry_filterLecture seule

Function set live du déformeur, ou None s’il est absent ou incompatible. oma désigne maya.api.OpenMayaAnim.

Élément Type / comportement
Retour oma.MFnGeometryFilter | None

node.input_geometriesLecture seule

Objets géométriques d’entrée renvoyés par le function set. Tableau vide sans function set ; ne prépare aucune connexion.

Élément Type / comportement
Retour om.MObjectArray

node.output_geometriesLecture seule

Objets géométriques de sortie renvoyés par le function set. Tableau vide sans function set ; distinct des plugs output_geometry.

Élément Type / comportement
Retour om.MObjectArray
Propriétés héritées de DGNode15
Propriété Type retourné Accès Description
dep_fn om.MFnDependencyNode L Function set live ; objet non attaché si le nœud est absent.
uuid str | None L UUID live, ou dernière valeur mémorisée si elle reste disponible.
name str | None L/E Nom live, sinon nom mémorisé.
absolute_name str | None L Nom absolu de namespace renvoyé par MFnDependencyNode.absoluteName() ; None sans nœud.
stripped_name str | None L/E Nom sans namespace, ou None si aucun nom.
namespace str | None L/E Namespace normalisé comme a:b ; None à la racine.
plugs Plugs | None L Gestionnaire des plugs du nœud live ; None sinon.
is_valid_dep_fn bool L Compatibilité du function set avec le MObject courant.
is_default_node bool L Indique un nœud par défaut de Maya ; False sans nœud.
is_from_referenced_file bool L Indique un nœud issu d’un fichier référencé ; False sans nœud.
is_locked bool L/E Verrouillage du nœud, distinct des locks de plugs.
is_shared bool L État partagé renvoyé par Maya ; False sans nœud.
plugin_name str | None L Nom du plugin Maya associé, éventuellement chaîne vide ; None sans nœud.
affect_animation bool L Résultat de MFnDependencyNode.affectsAnimation() ; False sans nœud.
type str | None L/E Type natif live ou type mémorisé.
Propriétés héritées de Node10
Propriété Type retourné Accès Description
mobject om.MObject L/E Objet Maya live, ou objet nul.
mobject_handle om.MObjectHandle L/E Handle associé au nœud.
api_type int | None L Identifiant du type API Maya.
api_type_str str L Nom du type API, par exemple "kTime".
exists bool L Le wrapper possède actuellement un nœud live.
is_null bool L L’objet Maya retourné est nul.
is_alive bool L L’objet existe avec un handle valide et vivant.
is_valid_handle bool L Validité du handle mémorisé.
is_dag_node bool L Compatibilité avec om.MFn.kDagNode.
hash_code int L Hash du handle Maya.

Les noms Python et Maya sont reproduits exactement. Type déclaré, retour Python et défaut déclaré sont des informations différentes. Le défaut d’une spec n’est pas nécessairement la valeur live d’un nœud, ni une valeur automatiquement écrite à sa création.

Les retours ci-dessous décrivent les descriptors de cette classe ; les observations live utilisent un network, un container, un transform, un mesh ou un skinCluster selon la classe. Certains plugs dépendent du type concret. Une sous-classe peut redéfinir un membre et ses possibilités d’écriture. Les noms de proxies identifient le résultat actuel : ne pas importer leurs classes privées.

Forme Utilisation
_ValuePlugProxy .value lit la valeur ; .plug donne un Plug, .mplug un MPlug.
IndexedPathProxy Objet d’accès indexé. Sa résolution présente des limites au checkpoint documenté : les fiches donnent des alternatives vérifiées avec node.plugs[...].
Flags / écriture stored, input, output, connectable décrivent le contrat de replay. Ils ne garantissent pas qu’un plug natif soit modifiable dans son état courant.

Pour une écriture dont il faut vérifier l’échec, utiliser explicitement le Plug et contrôler le résultat live : certains setters de descriptors peuvent mémoriser la valeur sans propager une erreur d’écriture Maya.

Propriété Plug Maya Retour
block_gpu blockGPU _ValuePlugProxy · .value: bool
envelope envelope _ValuePlugProxy · .value: float
envelope_weights_list envelopeWeightsList ArrayCompoundProxy
envelope_weights envelopeWeightsList[].envelopeWeights AttributeError (accès direct)
weight_function weightFunction Any (donnée native)
input input ArrayCompoundProxy
input_geometry input[].inputGeometry IndexedPathProxy
group_id input[].groupId IndexedPathProxy
component_tag_expression input[].componentTagExpression IndexedPathProxy
map_64_bit_indices map64BitIndices TypedArrayProxy
original_geometry originalGeometry TypedArrayProxy
output_geometry outputGeometry TypedArrayProxy
function function CompoundProxy
fchild_1 function.fchild1 _ValuePlugProxy · .value: int
fchild_2 function.fchild2 _ValuePlugProxy · .value: int
fchild_3 function.fchild3 _ValuePlugProxy · .value: int

node.block_gpuLecture / écriture

Blocage natif de l’évaluation GPU du déformeur.

Élément Type / comportement
Chemin Maya déclaré blockGPU
Retour de la propriété _ValuePlugProxy · .value: bool
Type déclaré par la spec numeric:bool
Défaut déclaré False
Flags input, output, connectable, stored
Lire la valeur node.block_gpu.value
Affectation node.block_gpu = value

node.envelopeLecture / écriture

Intensité globale du déformeur.

Élément Type / comportement
Chemin Maya déclaré envelope
Retour de la propriété _ValuePlugProxy · .value: float
Type déclaré par la spec numeric:float
Défaut déclaré 1.0
Flags input, output, connectable, stored, keyable
Lire la valeur node.envelope.value
Affectation node.envelope = value

node.envelope_weights_listAccès structuré

Tableau des listes de poids d’enveloppe.

Élément Type / comportement
Chemin Maya déclaré envelopeWeightsList
Retour de la propriété ArrayCompoundProxy
Type déclaré par la spec array:compound
Défaut déclaré ()
Flags array, output, connectable, hidden
Accès au plug node.envelope_weights_list.plug

La propriété renvoie une structure. Modifier un enfant explicite ou utiliser les opérations du Plug ; ne pas remplacer le proxy par une affectation Python.

node.envelope_weightsAccès limité

Poids d’enveloppe sous une liste indexée.

Élément Type / comportement
Chemin Maya déclaré envelopeWeightsList[].envelopeWeights
Retour de la propriété AttributeError (accès direct)
Type déclaré par la spec array:numeric:float
Défaut déclaré ()
Flags array, output, connectable, hidden
Alternative vérifiée · retourne un Plug node.plugs["envelopeWeightsList"][i1]["envelopeWeights"]

Limite actuelle : la résolution du descriptor échoue avec AttributeError sur le cas vérifié. Utiliser le chemin explicite ci-dessus et ses indices logiques. Le Plug permet ensuite de lire .value ou de gérer les connexions.

node.weight_functionLecture / connexions

Données natives de fonction de poids ; type déclaré typed:unknown.

Élément Type / comportement
Chemin Maya déclaré weightFunction
Retour de la propriété Any (donnée native)
Type déclaré par la spec typed:unknown
Défaut déclaré None
Flags input, output, connectable, hidden

Le setter du descriptor lève AttributeError. Gérer les connexions avec node.plugs[...] ; cette propriété ne renvoie pas le nœud connecté.

node.inputAccès structuré

Tableau des entrées de géométrie du déformeur.

Élément Type / comportement
Chemin Maya déclaré input
Retour de la propriété ArrayCompoundProxy
Type déclaré par la spec array:compound
Défaut déclaré ()
Flags array, input, output, connectable
Accès au plug node.input.plug

La propriété renvoie une structure. Modifier un enfant explicite ou utiliser les opérations du Plug ; ne pas remplacer le proxy par une affectation Python.

node.input_geometryAccès limité

Géométrie d’entrée à l’indice demandé.

Élément Type / comportement
Chemin Maya déclaré input[].inputGeometry
Retour de la propriété IndexedPathProxy
Type déclaré par la spec typed:geometry
Défaut déclaré None
Flags input, output, connectable
Indices 1 indice(s) logique(s), dans l’ordre des [] du chemin Maya.
Alternative vérifiée · retourne un Plug node.plugs["input"][i1]["inputGeometry"]

Limite actuelle : la résolution du descriptor échoue avec AttributeError sur le cas vérifié. Utiliser le chemin explicite ci-dessus et ses indices logiques. Le Plug permet ensuite de lire .value ou de gérer les connexions.

node.group_idAccès limité

Identifiant du groupe d’entrée.

Élément Type / comportement
Chemin Maya déclaré input[].groupId
Retour de la propriété IndexedPathProxy
Type déclaré par la spec numeric:int
Défaut déclaré 0
Flags input, output, connectable
Indices 1 indice(s) logique(s), dans l’ordre des [] du chemin Maya.
Alternative vérifiée · retourne un Plug node.plugs["input"][i1]["groupId"]

Limite actuelle : la résolution du descriptor échoue avec AttributeError sur le cas vérifié. Utiliser le chemin explicite ci-dessus et ses indices logiques. Le Plug permet ensuite de lire .value ou de gérer les connexions.

node.component_tag_expressionAccès limité

Expression de sélection des component tags.

Élément Type / comportement
Chemin Maya déclaré input[].componentTagExpression
Retour de la propriété IndexedPathProxy
Type déclaré par la spec typed:string
Défaut déclaré '*'
Flags input, output, connectable, stored
Indices 1 indice(s) logique(s), dans l’ordre des [] du chemin Maya.
Alternative vérifiée · retourne un Plug node.plugs["input"][i1]["componentTagExpression"]

Limite actuelle : la résolution du descriptor échoue avec AttributeError sur le cas vérifié. Utiliser le chemin explicite ci-dessus et ses indices logiques. Le Plug permet ensuite de lire .value ou de gérer les connexions.

node.map_64_bit_indicesLecture / écriture

Mapping natif des indices 64 bits.

Élément Type / comportement
Chemin Maya déclaré map64BitIndices
Retour de la propriété TypedArrayProxy
Type déclaré par la spec typed:intarray
Défaut déclaré ()
Flags input, output, connectable, stored, hidden
Accès au plug node.map_64_bit_indices.plug

Cet attribut contient des données de tableau typées, pas nécessairement un multi-attribut Maya. Lire son contenu avec .plug.value ; ne pas assimiler les indices de données à des indices logiques de plugs.

node.original_geometryLecture / connexions

Géométries originales du déformeur.

Élément Type / comportement
Chemin Maya déclaré originalGeometry
Retour de la propriété TypedArrayProxy
Type déclaré par la spec array:typed:geometry
Défaut déclaré ()
Flags array, input, output, connectable
Accès au plug node.original_geometry.plug
Élément logique node.original_geometry.element_plug(i).value

node.output_geometryLecture / connexions

Plugs de sortie de géométrie ; distincts de output_geometries.

Élément Type / comportement
Chemin Maya déclaré outputGeometry
Retour de la propriété TypedArrayProxy
Type déclaré par la spec array:typed:geometry
Défaut déclaré ()
Flags array, output, connectable
Accès au plug node.output_geometry.plug
Élément logique node.output_geometry.element_plug(i).value

node.functionAccès structuré

Données internes natives du déformeur exposées par ses specs.

Élément Type / comportement
Chemin Maya déclaré function
Retour de la propriété CompoundProxy
Type déclaré par la spec compound
Défaut déclaré None
Flags input, output, connectable, stored, hidden
Accès au plug node.function.plug

La propriété renvoie une structure. Modifier un enfant explicite ou utiliser les opérations du Plug ; ne pas remplacer le proxy par une affectation Python.

node.fchild_1Lecture / écriture

Premier champ entier de function.

Élément Type / comportement
Chemin Maya déclaré function.fchild1
Retour de la propriété _ValuePlugProxy · .value: int
Type déclaré par la spec numeric:int
Défaut déclaré 0
Flags input, output, connectable, stored, hidden
Lire la valeur node.fchild_1.value
Affectation node.fchild_1 = value

node.fchild_2Lecture / écriture

Deuxième champ entier de function.

Élément Type / comportement
Chemin Maya déclaré function.fchild2
Retour de la propriété _ValuePlugProxy · .value: int
Type déclaré par la spec numeric:int
Défaut déclaré 0
Flags input, output, connectable, stored, hidden
Lire la valeur node.fchild_2.value
Affectation node.fchild_2 = value

node.fchild_3Lecture / écriture

Troisième champ entier de function.

Élément Type / comportement
Chemin Maya déclaré function.fchild3
Retour de la propriété _ValuePlugProxy · .value: int
Type déclaré par la spec numeric:int
Défaut déclaré 0
Flags input, output, connectable, stored, hidden
Lire la valeur node.fchild_3.value
Affectation node.fchild_3 = value
Specs héritées de DGNode6
Propriété Plug Maya Retour Description
message message None Plug de message du nœud ; sert aux connexions, sans valeur numérique.
frozen frozen _ValuePlugProxy · .value: bool État natif de gel de l’évaluation.
is_historically_interesting isHistoricallyInteresting _ValuePlugProxy · .value: int Niveau d’intérêt du nœud dans l’historique Maya.
bin_membership binMembership _ValuePlugProxy · .value: str Appartenance aux bins Maya.
caching_enabled caching _ValuePlugProxy · .value: bool Activation du cache natif du nœud.
caching_node_state nodeState _ValuePlugProxy · .value: int État d’évaluation natif nodeState.

Aucune nouvelle méthode publique sur cette classe. Utiliser les méthodes héritées ci-dessous ; la présence d’une base abstraite ne fournit pas un nouveau type Maya créable.

Méthodes héritées de DGNode7
Méthode Retour Description
create None Crée le nœud s’il est absent ; ne fait rien s’il existe déjà.
delete None Déconnecte les connexions live, détache le wrapper puis supprime le nœud.
snapshot DGSnapshot Capture et mémorise un dictionnaire d’identité et d’état SVD selon les specs.
snapshot_svd SVDSnapshot Capture Source / Value / Destinations pour la liste demandée.
svd SVDView Renvoie une vue live en lecture seule de la source, de la valeur et des destinations ; ce n’est pas une capture figée.
finalize None Applique toutes les sources, puis les valeurs libres, puis les destinations ; le dispatch FSET activé suit ces phases.
clear_attr_cache None Vide le cache d’attributs de cette instance ; ne supprime aucun nœud et ne vide pas le registre global de wrappers.
Méthodes héritées de Node2
Méthode Retour Description
has_fn(fn_type) bool Tester la compatibilité avec un function set Maya.
clear_node_registry() None Détacher les wrappers enregistrés et vider leur registre partagé.
Attribut Type Valeur / rôle
NODE_TYPE str | None "geometryFilter"
COMPATIBLE_MAYA_FN_TYPES tuple[int, ...] (om.MFn.kGeometryFilt,)
SPEC_LAYERS list[SpecLayer] Layers du parent + get_geometry_filter_specs_all

Attributs définis ou redéfinis ici. NODE_REGISTRY est hérité de Node.

Les types GeometryFilterSnapshot exportés par ces modules sont des descriptions TypedDict, pas des classes à instancier pour effectuer une capture. Utiliser node.snapshot().

Point Comportement
Identité Le wrapper suit l’objet Maya ; un remplacement portant le même nom n’est pas le même nœud.
Lecture Lecture live prioritaire ; vérifier exists avant les opérations natives.
Specs Décrivent les plugs existants ; n’ajoutent pas automatiquement d’attributs Maya.
Exemples La démonstration crée et supprime uniquement ses propres nœuds nommés avec un suffixe aléatoire.

Exemple autonome pour le Script Editor Python de Maya. Pour l’exécuter depuis mayapy, initialiser maya.standalone avant ce bloc et le fermer ensuite, comme dans la référence Node.

Ce test crée un skinCluster sans géométrie liée pour illustrer la base ; il n’effectue pas un bind de skin.

from uuid import uuid4
from weSkel.src.core.node.abstract.geometry_filter.lib import GeometryFilter
from weSkel.src.core.node.dg.skin_cluster.lib import SkinCluster
node = SkinCluster("api_filter_" + uuid4().hex[:8])
try:
node.create()
assert GeometryFilter(node.mobject) is node
assert node.mfn_geometry_filter is not None
node.envelope = 0.5
assert abs(node.envelope.value - 0.5) < 1e-6
assert len(node.input_geometries) == 0
assert len(node.output_geometries) == 0
print("GeometryFilter: envelope and empty geometry arrays OK")
finally:
node.delete(snapshot=False)

Résultat attendu : GeometryFilter: envelope and empty geometry arrays OK. Les nœuds de démonstration sont supprimés dans le finally.

Référence du checkpoint SDK 87c3486. Inventaire et exemples vérifiés sur les sources sous Maya 2025.3 et 2026.3 ; cela ne valide pas le package compilé.