1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
// SPDX-License-Identifier: BSD-3-Clause
#include "vtkCellGridBoundsQuery.h"
#include "vtkBoundingBox.h"
#include "vtkMath.h"
#include "vtkObjectFactory.h"
#include <algorithm>
VTK_ABI_NAMESPACE_BEGIN
vtkStandardNewMacro(vtkCellGridBoundsQuery);
void vtkCellGridBoundsQuery::PrintSelf(ostream& os, vtkIndent indent)
{
this->Superclass::PrintSelf(os, indent);
os << indent << "Bounds: " << this->Bounds[0] << " " << this->Bounds[1] << ", " << this->Bounds[2]
<< " " << this->Bounds[3] << ", " << this->Bounds[4] << " " << this->Bounds[5] << "\n";
}
bool vtkCellGridBoundsQuery::Initialize()
{
bool ok = this->Superclass::Initialize();
vtkMath::UninitializeBounds(this->Bounds.data());
return ok;
}
void vtkCellGridBoundsQuery::GetBounds(double* bds)
{
if (!bds)
{
return;
}
std::copy(this->Bounds.begin(), this->Bounds.end(), bds);
}
void vtkCellGridBoundsQuery::AddBounds(vtkBoundingBox& bbox)
{
// Ignore invalid bounds:
if (!bbox.IsValid())
{
return;
}
// If the current local bounds are well-defined, then add them to the bbox:
if (this->Bounds[0] <= this->Bounds[1])
{
bbox.AddPoint(this->Bounds[0], this->Bounds[2], this->Bounds[4]);
bbox.AddPoint(this->Bounds[1], this->Bounds[3], this->Bounds[5]);
}
// Now copy bbox into our local storage:
bbox.GetBounds(this->Bounds.data());
}
VTK_ABI_NAMESPACE_END
|