com.jme3.scene.Spatial.breadthFirstTraversal()方法的使用及代码示例

x33g5p2x  于2022-01-30 转载在 其他  
字(4.1k)|赞(0)|评价(0)|浏览(115)

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

Spatial.breadthFirstTraversal介绍

[英]Visit each scene graph element ordered by BFS
[中]访问BFS订购的每个场景图形元素

代码示例

代码示例来源:origin: jMonkeyEngine/jmonkeyengine

/**
 * Visit each scene graph element ordered by BFS
 * @param visitor
 */
public void breadthFirstTraversal(SceneGraphVisitor visitor) {
  Queue<Spatial> queue = new LinkedList<Spatial>();
  queue.add(this);
  while (!queue.isEmpty()) {
    Spatial s = queue.poll();
    visitor.visit(s);
    s.breadthFirstTraversal(visitor, queue);
  }
}

代码示例来源:origin: jMonkeyEngine/jmonkeyengine

public static void generateParallel(Spatial scene, ExecutorService executor) {
  final Set<Mesh> meshes = new HashSet<Mesh>();
  scene.breadthFirstTraversal(new SceneGraphVisitor() {
    @Override
    public void visit(Spatial spatial) {

代码示例来源:origin: net.sf.phat/phat-core

public static Map<String,Spatial> getAllSpatialWithId(Spatial rootNode, final Map<String,Spatial> store) {
  SceneGraphVisitor visitor = new SceneGraphVisitor() {
    @Override
    public void visit(Spatial spat) {
      String id = spat.getUserData("ID");
      if (id != null) {
        store.put(id, spat);
      }
    }
  };
  rootNode.breadthFirstTraversal(visitor);
  return store;
}

代码示例来源:origin: tonihele/OpenKeeper

/**
 * Reset translation of spatial and all children
 *
 * @param spatial the spatial to reset
 */
public static void resetSpatial(Spatial spatial) {
  /*
  if (spatial instanceof Node) {
    for (Spatial subSpat : ((Node) spatial).getChildren()) {
      subSpat.setLocalTranslation(0, 0, 0);
    }
  } else {
    spatial.setLocalTranslation(0, 0, 0);
  }
  */
  spatial.breadthFirstTraversal(new SceneGraphVisitor() {
    @Override
    public void visit(Spatial spatial) {
      spatial.setLocalTranslation(0, 0, 0);
    }
  });
}

代码示例来源:origin: tonihele/OpenKeeper

private void animate(Spatial object, final boolean randomizeAnimation) {
  // Animate
  object.breadthFirstTraversal(new SceneGraphVisitor() {
    @Override
    public void visit(Spatial spatial) {
      AnimControl animControl = spatial.getControl(AnimControl.class);
      if (animControl != null) {
        AnimChannel channel = animControl.createChannel();
        channel.setAnim("anim");
        channel.setLoopMode(LoopMode.Loop);
        if (randomizeAnimation) {
          channel.setSpeed(FastMath.nextRandomInt(6, 10) / 10f);
          channel.setTime(FastMath.nextRandomFloat() * channel.getAnimMaxTime());
        }
        // Don't batch animated objects, seems not to work
        object.setBatchHint(Spatial.BatchHint.Never);
      }
    }
  });
}

代码示例来源:origin: net.sf.phat/phat-core

public static List<Spatial> getSpatialsByRole(Spatial rootNode, final String targetRol) {
  final List<Spatial> result = new ArrayList<Spatial>();
  SceneGraphVisitor visitor = new SceneGraphVisitor() {
    @Override
    public void visit(Spatial spat) {
      String rol = spat.getUserData("ROLE");
      if (rol != null && rol.equals(targetRol)) {
        result.add(spat);
      }
    }
  };
  rootNode.breadthFirstTraversal(visitor);
  return result;
}

代码示例来源:origin: org.jmonkeyengine/jme3-core

/**
 * Visit each scene graph element ordered by BFS
 * @param visitor
 */
public void breadthFirstTraversal(SceneGraphVisitor visitor) {
  Queue<Spatial> queue = new LinkedList<Spatial>();
  queue.add(this);
  while (!queue.isEmpty()) {
    Spatial s = queue.poll();
    visitor.visit(s);
    s.breadthFirstTraversal(visitor, queue);
  }
}

代码示例来源:origin: info.projectkyoto/mms-engine

/**
 * Visit each scene graph element ordered by BFS
 * @param visitor
 */
public void breadthFirstTraversal(SceneGraphVisitor visitor) {
  Queue<Spatial> queue = new LinkedList<Spatial>();
  queue.add(this);
  while (!queue.isEmpty()) {
    Spatial s = queue.poll();
    visitor.visit(s);
    s.breadthFirstTraversal(visitor, queue);
  }
}

代码示例来源:origin: org.jmonkeyengine/jme3-core

public static void generateParallel(Spatial scene, ExecutorService executor) {
  final Set<Mesh> meshes = new HashSet<Mesh>();
  scene.breadthFirstTraversal(new SceneGraphVisitor() {
    @Override
    public void visit(Spatial spatial) {

代码示例来源:origin: tonihele/OpenKeeper

public static void generateParallel(Spatial scene, ExecutorService executor) {
  final Set<Mesh> meshes = new HashSet<Mesh>();
  scene.breadthFirstTraversal(new SceneGraphVisitor() {
    @Override
    public void visit(Spatial spatial) {

代码示例来源:origin: tonihele/OpenKeeper

tile.breadthFirstTraversal(new SceneGraphVisitor() {
  @Override
  public void visit(Spatial spatial) {

相关文章

Spatial类方法