// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen // SPDX-FileCopyrightText: Copyright 2008 Sandia Corporation // SPDX-License-Identifier: LicenseRef-BSD-3-Clause-Sandia-USGov /** * @class vtkBoxLayoutStrategy * @brief a tree map layout that puts vertices in square-ish boxes * * * vtkBoxLayoutStrategy recursively partitions the space for children vertices * in a tree-map into square regions (or regions very close to a square). * * @par Thanks: * Thanks to Brian Wylie from Sandia National Laboratories for creating this class. */ #ifndef vtkBoxLayoutStrategy_h #define vtkBoxLayoutStrategy_h #include "vtkInfovisLayoutModule.h" // For export macro #include "vtkTreeMapLayoutStrategy.h" VTK_ABI_NAMESPACE_BEGIN class VTKINFOVISLAYOUT_EXPORT vtkBoxLayoutStrategy : public vtkTreeMapLayoutStrategy { public: static vtkBoxLayoutStrategy* New(); vtkTypeMacro(vtkBoxLayoutStrategy, vtkTreeMapLayoutStrategy); void PrintSelf(ostream& os, vtkIndent indent) override; /** * Perform the layout of a tree and place the results as 4-tuples in * coordsArray (Xmin, Xmax, Ymin, Ymax). */ void Layout(vtkTree* inputTree, vtkDataArray* coordsArray, vtkDataArray* sizeArray) override; protected: vtkBoxLayoutStrategy(); ~vtkBoxLayoutStrategy() override; private: void LayoutChildren(vtkTree* inputTree, vtkDataArray* coordsArray, vtkIdType parentId, float parentMinX, float parentMaxX, float parentMinY, float parentMaxY); vtkBoxLayoutStrategy(const vtkBoxLayoutStrategy&) = delete; void operator=(const vtkBoxLayoutStrategy&) = delete; }; VTK_ABI_NAMESPACE_END #endif