OpenUSD icon indicating copy to clipboard operation
OpenUSD copied to clipboard

NVIDIA: Add prim flag HasAbstractSpecifier to filter prim with class specifier

Open roggiezhang-nv opened this issue 5 months ago • 2 comments

Description of Change(s)

There's no way to identify a concretely define subgraph using traversal predicates because "IsAbstract" will match all ancestors. This PR adds a HasAbstractSpecifier similar to HasDefiningSpecifier as a prim flag.

Example

class "abstract_root" {
    def "concrete_subgraph" {
         def "concrete_child" {
             def "concrete_grandchild" {
             }
         }
    }
}

/abstract_root/conrete_subgraph is defined but abstract because of its abstract ancestor. A HasAbstractSpecifier prim flag would allow the specification to enabling traversal of the decendants of concrete_subgraph using the predicate HasDefiningSpecifier && !HasAbstractSpecifier.

See discussion in https://forum.aousd.org/t/pointinstancer-prototype-scope-best-practices/2662.

Link to proposal (if applicable)

Fixes Issue(s)

Checklist

roggiezhang-nv avatar Sep 29 '25 02:09 roggiezhang-nv

@nvmkuruc for vis.

roggiezhang-nv avatar Sep 29 '25 02:09 roggiezhang-nv

Filed as internal issue #USD-11482

(This is an automated message. See here for more information.)

jesschimein avatar Sep 29 '25 16:09 jesschimein