/**
   * Notification that the construction phase of this node has finished. If the node would like to
   * do any internal processing, such as setting up geometry, then go for it now.
   */
  public void setupFinished() {
    if (!inSetup) return;

    super.setupFinished();

    if (pShape != null) pShape.setupFinished();

    if (vfShape != null) vfShape.setupFinished();
  }
  /**
   * Notification that the construction phase of this node has finished. If the node would like to
   * do any internal processing, such as setting up geometry, then go for it now.
   */
  public void setupFinished() {
    if (!inSetup) return;

    super.setupFinished();

    childCount = vfChildren.size();
    VRMLNodeType kid;

    for (int i = 0; i < childCount; i++) {
      kid = (VRMLNodeType) vfChildren.get(i);

      // Make sure the child is finished first.
      kid.setupFinished();
    }
  }
  /**
   * Notification that the construction phase of this node has finished. If the node would like to
   * do any internal processing, such as setting up geometry, then go for it now.
   */
  public void setupFinished() {
    if (!inSetup) return;

    super.setupFinished();

    if (pPickingGeometry != null) pPickingGeometry.setupFinished();
    if (vfPickingGeometry != null) vfPickingGeometry.setupFinished();

    numPickTarget = targetList.size();
    vfPickTarget = new VRMLNodeType[numPickTarget];
    for (int i = 0; i < numPickTarget; i++) {
      VRMLNodeType p = (VRMLNodeType) targetList.get(i);
      p.setupFinished();
      vfPickTarget[i] = p;
    }

    targetList = null;

    updateChildren(vfPickTarget, numPickTarget);
  }