Example #1
0
  /**
   * Copies all NodeComponent information from <code>originalNode</code> into the current node. This
   * method is called from the <code>cloneNode</code> method which is, in turn, called by the <code>
   * cloneTree</code> method.
   *
   * <p>
   *
   * @param originalNode the original node to duplicate.
   * @param forceDuplicate when set to <code>true</code>, causes the <code>duplicateOnCloneTree
   *     </code> flag to be ignored. When <code>false</code>, the value of each node's <code>
   *     duplicateOnCloneTree</code> variable determines whether NodeComponent data is duplicated or
   *     copied.
   * @see Group#cloneNode
   * @see Node#duplicateNode
   * @see Node#cloneTree
   * @see NodeComponent#setDuplicateOnCloneTree
   */
  void duplicateAttributes(NodeComponent originalNode, boolean forceDuplicate) {

    if (forceDuplicate && originalNode.isCompiled()) {
      throw new RestrictedAccessException(J3dI18N.getString("NodeComponent1"));
    }

    super.duplicateSceneGraphObject(originalNode);
    setDuplicateOnCloneTree(originalNode.getDuplicateOnCloneTree());
  }