package org.simantics.g3d.scenegraph.base; import java.util.List; public interface INode { /** * * @return unique node identifier */ public Long getId(); /** * @return root node of the scene graph or null if this node is * not part of a properly rooted scene graph hierarchy */ public ParentNode getRootNode(); /** * @return Parent node reference or null if not set */ public ParentNode getParent(); public String getParentRel(); /** * Set parent node. This method is for scene graph internal use only and * should not be called outside the scene graph structure. This method * simply sets the parent node parent field, and does not affect on parent * node (i.e., should be called only from parent node). */ public void setParent(ParentNode parent, String name); /** * Perform cleanup for this node and for the child nodes. Any resources * (including child nodes) related to this node are unusable after this * operation. This method is for scene graph internal use only, thus should * not be called outside the scene graph structure. */ public void cleanup(); /** * Remove this node and its children from the scene graph. */ public void remove(); public void addListener(NodeListener listener); public void removeListener(NodeListener listener); public List getListeners(); }