/******************************************************************************* * Copyright (c) 2012, 2013 Association for Decentralized Information Management in * Industry THTH ry. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * VTT Technical Research Centre of Finland - initial API and implementation *******************************************************************************/ 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(); }