Protected
Readonly
Internal
[$attributes]Protected
Readonly
Internal
[$immutableAttributes included with getDefaultAttributes
are considered immutable, and cannot be
modifed by .setRef()
, .copy()
, or other GraphNode methods. Both the edges and the
properties will be disposed with the parent GraphNode.
Currently, only single-edge references (getRef/setRef) are supported as immutables.
List of supported Property types.
Property type.
Static
EXTENSION_Makes a copy of this property, with the same resources (by reference) as the original.
Copies all data from another property to this one. Child properties are copied by reference, unless a 'resolve' function is given to override that.
Property to copy references from.
Optional
resolve: PropertyResolver<Property<IProperty>>Function to resolve each Property being transferred. Default is identity.
Removes all inbound references to this object. At the end of the process the object is considered 'detached': it may hold references to child resources, but nothing holds references to it. A detached object may be re-attached.
Dispatches an event on the GraphNode, and on the associated
Graph. Event types on the graph are prefixed, "node:[type]"
.
Removes both inbound references to and outbound references from this object. At the end of the process the object holds no references, and nothing holds references to it. A disposed object is not reusable.
Returns true if two properties are deeply equivalent, recursively comparing the attributes of the properties. Optionally, a 'skip' set may be included, specifying attributes whose values should not be considered in the comparison.
Example: Two Primitive Primitives are equivalent if they have accessors and materials with equivalent content — but not necessarily the same specific accessors and materials.
Optional
skip: Set<string>Returns default attributes for the property. Empty lists and maps should be initialized
to empty arrays and objects. Always invoke super.getDefaults()
and extend the result.
Returns a reference to the Extras object, containing application-specific data for this Property. Extras should be an Object, not a primitive value, for best portability.
Returns the name of this property. While names are not required to be unique, this is encouraged, and non-unique names will be overwritten in some tools. For custom data about a property, prefer to use Extras.
Returns true if the node has been permanently removed from the graph.
Internal
Returns true if two nodes are on the same Graph.
Returns a list of all properties that hold a reference to this property. For example, a material may hold references to various textures, but a texture does not hold references to the materials that use it.
It is often necessary to filter the results for a particular type: some resources, like Accessors, may be referenced by different types of properties. Most properties include the Root as a parent, which is usually not of interest.
Usage:
const materials = texture
.listParents()
.filter((p) => p instanceof Material)
Updates the Extras object, containing application-specific data for this Property. Extras should be an Object, not a primitive value, for best portability.
Sets the name of this property. While names are not required to be unique, this is encouraged, and non-unique names will be overwritten in some tools. For custom data about a property, prefer to use Extras.
Attributes (literal values and GraphNode references) associated with this instance. For each GraphNode reference, the attributes stores a GraphEdge. List and Map references are stored as arrays and dictionaries of edges.