VTK
dox/Rendering/Core/vtkCellCenterDepthSort.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    vtkCellCenterDepthSort.h
00005 
00006   Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
00007   All rights reserved.
00008   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00009 
00010      This software is distributed WITHOUT ANY WARRANTY; without even
00011      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00012      PURPOSE.  See the above copyright notice for more information.
00013 
00014 =========================================================================*/
00015 
00016 /*
00017  * Copyright 2003 Sandia Corporation.
00018  * Under the terms of Contract DE-AC04-94AL85000, there is a non-exclusive
00019  * license for use of this work by or on behalf of the
00020  * U.S. Government. Redistribution and use in source and binary forms, with
00021  * or without modification, are permitted provided that this Notice and any
00022  * statement of authorship are reproduced on all copies.
00023  */
00024 
00038 #ifndef __vtkCellCenterDepthSort_h
00039 #define __vtkCellCenterDepthSort_h
00040 
00041 #include "vtkRenderingCoreModule.h" // For export macro
00042 #include "vtkVisibilitySort.h"
00043 
00044 class vtkFloatArray;
00045 
00046 class vtkCellCenterDepthSortStack;
00047 
00048 class VTKRENDERINGCORE_EXPORT vtkCellCenterDepthSort : public vtkVisibilitySort
00049 {
00050 public:
00051   vtkTypeMacro(vtkCellCenterDepthSort, vtkVisibilitySort);
00052   virtual void PrintSelf(ostream &os, vtkIndent indent);
00053   static vtkCellCenterDepthSort *New();
00054 
00055   virtual void InitTraversal();
00056   virtual vtkIdTypeArray *GetNextCells();
00057 
00058 protected:
00059   vtkCellCenterDepthSort();
00060   virtual ~vtkCellCenterDepthSort();
00061 
00062   vtkIdTypeArray *SortedCells;
00063   vtkIdTypeArray *SortedCellPartition;
00064 
00065   vtkFloatArray *CellCenters;
00066   vtkFloatArray *CellDepths;
00067   vtkFloatArray *CellPartitionDepths;
00068 
00069   virtual float *ComputeProjectionVector();
00070   virtual void ComputeCellCenters();
00071   virtual void ComputeDepths();
00072 
00073 private:
00074   vtkCellCenterDepthSortStack *ToSort;
00075 
00076   vtkCellCenterDepthSort(const vtkCellCenterDepthSort &);  // Not implemented.
00077   void operator=(const vtkCellCenterDepthSort &);  // Not implemented.
00078 };
00079 
00080 #endif