com.ardor3d.scenegraph.Node.getNumberOfChildren()方法的使用及代码示例

x33g5p2x  于2022-01-25 转载在 其他  
字(6.4k)|赞(0)|评价(0)|浏览(244)

本文整理了Java中com.ardor3d.scenegraph.Node.getNumberOfChildren()方法的一些代码示例,展示了Node.getNumberOfChildren()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Node.getNumberOfChildren()方法的具体详情如下:
包路径:com.ardor3d.scenegraph.Node
类名称:Node
方法名:getNumberOfChildren

Node.getNumberOfChildren介绍

[英]getNumberOfChildren returns the number of children this node maintains.
[中]

代码示例

代码示例来源:origin: Renanse/Ardor3D

  1. public int getChildCount(final Object parent) {
  2. if (parent instanceof UIFrame) {
  3. return 1;
  4. }
  5. if (parent instanceof Node) {
  6. final Node parentNode = (Node) parent;
  7. return parentNode.getNumberOfChildren();
  8. }
  9. return 0;
  10. }

代码示例来源:origin: com.ardor3d/ardor3d-core

  1. /**
  2. *
  3. * <code>detachAllChildren</code> removes all children attached to this node.
  4. */
  5. public void detachAllChildren() {
  6. for (int i = getNumberOfChildren() - 1; i >= 0; i--) {
  7. detachChildAt(i);
  8. }
  9. logger.fine("All children removed.");
  10. }

代码示例来源:origin: Renanse/Ardor3D

  1. /**
  2. *
  3. * <code>detachAllChildren</code> removes all children attached to this node.
  4. */
  5. public void detachAllChildren() {
  6. for (int i = getNumberOfChildren() - 1; i >= 0; i--) {
  7. detachChildAt(i);
  8. }
  9. logger.fine("All children removed.");
  10. }

代码示例来源:origin: Renanse/Ardor3D

  1. public static void trimEmptyBranches(final Spatial spatial) {
  2. if (spatial instanceof Node) {
  3. final Node node = (Node) spatial;
  4. for (int i = node.getNumberOfChildren(); --i >= 0;) {
  5. trimEmptyBranches(node.getChild(i));
  6. }
  7. if (node.getNumberOfChildren() <= 0) {
  8. spatial.removeFromParent();
  9. }
  10. }
  11. }

代码示例来源:origin: com.ardor3d/ardor3d-core

  1. public static void trimEmptyBranches(final Spatial spatial) {
  2. if (spatial instanceof Node) {
  3. final Node node = (Node) spatial;
  4. for (int i = node.getNumberOfChildren(); --i >= 0;) {
  5. trimEmptyBranches(node.getChild(i));
  6. }
  7. if (node.getNumberOfChildren() <= 0) {
  8. spatial.removeFromParent();
  9. }
  10. }
  11. }
  12. }

代码示例来源:origin: com.ardor3d/ardor3d-core

  1. @Override
  2. public void updateWorldTransform(final boolean recurse) {
  3. super.updateWorldTransform(recurse);
  4. if (recurse) {
  5. for (int i = getNumberOfChildren() - 1; i >= 0; i--) {
  6. _children.get(i).updateWorldTransform(true);
  7. }
  8. }
  9. }

代码示例来源:origin: com.ardor3d/ardor3d-core

  1. @Override
  2. protected void propagateDirtyDown(final EnumSet<DirtyType> dirtyTypes) {
  3. super.propagateDirtyDown(dirtyTypes);
  4. for (int i = getNumberOfChildren() - 1; i >= 0; i--) {
  5. final Spatial child = _children.get(i);
  6. child.propagateDirtyDown(dirtyTypes);
  7. }
  8. }

代码示例来源:origin: com.ardor3d/ardor3d-core

  1. @Override
  2. public void read(final InputCapsule capsule) throws IOException {
  3. super.read(capsule);
  4. final List<Spatial> cList = capsule.readSavableList("children", null);
  5. _children.clear();
  6. if (cList != null) {
  7. _children.addAll(cList);
  8. }
  9. // go through children and set parent to this node
  10. for (int i = getNumberOfChildren() - 1; i >= 0; i--) {
  11. final Spatial child = _children.get(i);
  12. child._parent = this;
  13. }
  14. }
  15. }

代码示例来源:origin: Renanse/Ardor3D

  1. @Override
  2. public void updateWorldTransform(final boolean recurse) {
  3. super.updateWorldTransform(recurse);
  4. if (recurse) {
  5. for (int i = getNumberOfChildren() - 1; i >= 0; i--) {
  6. _children.get(i).updateWorldTransform(true);
  7. }
  8. }
  9. }

代码示例来源:origin: Renanse/Ardor3D

  1. @Override
  2. public void read(final InputCapsule capsule) throws IOException {
  3. super.read(capsule);
  4. final List<Spatial> cList = capsule.readSavableList("children", null);
  5. _children.clear();
  6. if (cList != null) {
  7. _children.addAll(cList);
  8. }
  9. // go through children and set parent to this node
  10. for (int i = getNumberOfChildren() - 1; i >= 0; i--) {
  11. final Spatial child = _children.get(i);
  12. child._parent = this;
  13. }
  14. }
  15. }

代码示例来源:origin: com.ardor3d/ardor3d-core

  1. @Override
  2. protected void updateWorldRenderStates(final boolean recurse, final RenderState.StateStack stack) {
  3. super.updateWorldRenderStates(recurse, stack);
  4. if (recurse) {
  5. for (int i = getNumberOfChildren() - 1; i >= 0; i--) {
  6. _children.get(i).updateWorldRenderStates(true, stack);
  7. }
  8. }
  9. }

代码示例来源:origin: Renanse/Ardor3D

  1. @Override
  2. protected void propagateDirtyDown(final EnumSet<DirtyType> dirtyTypes) {
  3. super.propagateDirtyDown(dirtyTypes);
  4. for (int i = getNumberOfChildren() - 1; i >= 0; i--) {
  5. final Spatial child = _children.get(i);
  6. child.propagateDirtyDown(dirtyTypes);
  7. }
  8. }

代码示例来源:origin: Renanse/Ardor3D

  1. @Override
  2. protected void updateWorldRenderStates(final boolean recurse, final RenderState.StateStack stack) {
  3. super.updateWorldRenderStates(recurse, stack);
  4. if (recurse) {
  5. for (int i = getNumberOfChildren() - 1; i >= 0; i--) {
  6. _children.get(i).updateWorldRenderStates(true, stack);
  7. }
  8. }
  9. }

代码示例来源:origin: com.ardor3d/ardor3d-core

  1. @Override
  2. protected void updateChildren(final double time) {
  3. for (int i = getNumberOfChildren() - 1; i >= 0; i--) {
  4. final Spatial pkChild = getChild(i);
  5. if (pkChild != null) {
  6. pkChild.updateGeometricState(time, false);
  7. }
  8. }
  9. }

代码示例来源:origin: Renanse/Ardor3D

  1. @Override
  2. public void sortLights() {
  3. for (int i = getNumberOfChildren() - 1; i >= 0; i--) {
  4. final Spatial pkChild = getChild(i);
  5. if (pkChild != null) {
  6. pkChild.sortLights();
  7. }
  8. }
  9. }

代码示例来源:origin: com.ardor3d/ardor3d-core

  1. @Override
  2. public void sortLights() {
  3. for (int i = getNumberOfChildren() - 1; i >= 0; i--) {
  4. final Spatial pkChild = getChild(i);
  5. if (pkChild != null) {
  6. pkChild.sortLights();
  7. }
  8. }
  9. }

代码示例来源:origin: Renanse/Ardor3D

  1. @Override
  2. protected void updateChildren(final double time) {
  3. for (int i = getNumberOfChildren() - 1; i >= 0; i--) {
  4. final Spatial pkChild = getChild(i);
  5. if (pkChild != null) {
  6. pkChild.updateGeometricState(time, false);
  7. }
  8. }
  9. }

代码示例来源:origin: com.ardor3d/ardor3d-core

  1. private static Spatial makeCopy(final Spatial source, final Spatial parent, final CopyLogic logic) {
  2. final AtomicBoolean recurse = new AtomicBoolean();
  3. final Spatial result = logic.copy(source, recurse);
  4. if (recurse.get() && source instanceof Node && result instanceof Node
  5. && ((Node) source).getNumberOfChildren() > 0) {
  6. for (final Spatial child : ((Node) source).getChildren()) {
  7. final Spatial copy = makeCopy(child, result, logic);
  8. if (copy != null) {
  9. ((Node) result).attachChild(copy);
  10. }
  11. }
  12. }
  13. return result;
  14. }

代码示例来源:origin: Renanse/Ardor3D

  1. private static Spatial makeCopy(final Spatial source, final Spatial parent, final CopyLogic logic) {
  2. final AtomicBoolean recurse = new AtomicBoolean();
  3. final Spatial result = logic.copy(source, recurse);
  4. if (recurse.get() && source instanceof Node && result instanceof Node
  5. && ((Node) source).getNumberOfChildren() > 0) {
  6. for (final Spatial child : ((Node) source).getChildren()) {
  7. final Spatial copy = makeCopy(child, result, logic);
  8. if (copy != null) {
  9. ((Node) result).attachChild(copy);
  10. }
  11. }
  12. }
  13. return result;
  14. }

代码示例来源:origin: com.ardor3d/ardor3d-core

  1. /**
  2. * removes all collision trees associated with a Spatial object.
  3. *
  4. * @param object
  5. * the spatial to remove all collision trees from.
  6. */
  7. public void removeCollisionTree(final Spatial object) {
  8. if (object instanceof Node) {
  9. final Node n = (Node) object;
  10. for (int i = n.getNumberOfChildren() - 1; i >= 0; i--) {
  11. removeCollisionTree(n.getChild(i));
  12. }
  13. } else if (object instanceof Mesh) {
  14. removeCollisionTree((Mesh) object);
  15. }
  16. }

相关文章