Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * The MIT License (MIT)
   *
   * Copyright (c) 2014 Christian Gärtner
   *
   * Permission is hereby granted, free of charge, to any person obtaining a copy
   * of this software and associated documentation files (the "Software"), to deal
   * in the Software without restriction, including without limitation the rights
   * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  * copies of the Software, and to permit persons to whom the Software is
  * furnished to do so, subject to the following conditions:
  *
  * The above copyright notice and this permission notice shall be included in all
  * copies or substantial portions of the Software.
  *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
 
 package org.achtern.AchternEngine.core.scenegraph.scanning;
 
 
 import java.util.List;

A Figure Retriever retrives all Figures from the scenegraph and calculates BoundingBoxes, Vertex Counts and gathers meshes and materials!
 
 public class FigureRetriever extends EntityRetriever {

    
List of found figures
 
     protected List<Figurefigures;
    
Retrieved meshes.
 
     protected List<Meshmeshes;
    
Retrieved materials.
 
     protected List<Materialmaterials;
    
Complete BoundingBox
 
     protected BoundingBox bb;


    
Performs the search. Filters out Figures and collects meshes/materials and calculates the BB

 
     @Override
     public void scan(Node node) {
         super.scan(node);
          = getAll(Figure.class);
          = null;
          = getMeshes();
          = null;
          = getMaterials();
          = getCompleteBoundingBox();
     }

    
Getter for all Figures

Returns:
figures
 
     public List<Figureget() {
         return ;
     }

    
Returns retrieved meshes or if not retrieved yet, does the retrieving.

Returns:
meshes
 
     public List<MeshgetMeshes() {
         if ( != nullreturn ;
 
          = new ArrayList<Mesh>(get().size());
 
         for (Figure f : get()) {
             .add(f.getMesh());
         }
        return ;
    }

    
Returns retrieved materials or if not retrieved yet, does the retrieving.

Returns:
materials
    public List<MaterialgetMaterials() {
        if ( != nullreturn ;
         = new ArrayList<Material>(get().size());
        for (Figure f : get()) {
            .add(f.getMaterial());
        }
        return ;
    }

    
Returns the total Vertex Count of all retrieved meshes

Returns:
Vertex Count
    public int getTotalVertexCount() {
        List<MeshmeshList = getMeshes();
        int count = 0;
        for (Mesh m : meshList) {
            count += m.getData().getVertexCount();
        }
        return count;
    }

    
Merges all BoundingBoxes of the meshes. TODO: Include Transforms.

Returns:
Complete BoundingBox
        if ( != nullreturn ;
        for (Mesh m : getMeshes()) {
            if ( == null) {
                 = new BoundingBox(m.getBoundingBox());
                continue;
            }
            .merge(m.getBoundingBox());
        }
        return ;
    }
New to GrepCode? Check out our FAQ X