/*========================================================================= Program: Visualization Toolkit Module: vtkGraphInternals.cxx Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen All rights reserved. See Copyright.txt or http://www.kitware.com/Copyright.htm for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notice for more information. =========================================================================*/ /*---------------------------------------------------------------------------- Copyright (c) Sandia Corporation See Copyright.txt or http://www.paraview.org/HTML/Copyright.html for details. ----------------------------------------------------------------------------*/ #include "vtkGraphInternals.h" #include "vtkDistributedGraphHelper.h" #include "vtkObjectFactory.h" vtkStandardNewMacro(vtkGraphInternals); //------------------------------------------------------------------------------ vtkGraphInternals::vtkGraphInternals() { this->NumberOfEdges = 0; this->LastRemoteEdgeId = -1; this->UsingPedigreeIds = false; } //------------------------------------------------------------------------------ vtkGraphInternals::~vtkGraphInternals() = default; //------------------------------------------------------------------------------ void vtkGraphInternals::PrintSelf(ostream& os, vtkIndent indent) { this->Superclass::PrintSelf(os, indent); os << indent << "NumberOfEdges: " << this->NumberOfEdges << endl; os << indent << "LastRemoteEdgeId: " << this->LastRemoteEdgeId << endl; os << indent << "LastRemoteEdgeSource: " << this->LastRemoteEdgeSource << endl; os << indent << "LastRemoteEdgeTarget: " << this->LastRemoteEdgeTarget << endl; os << indent << "UsingPedigreeIds: " << this->UsingPedigreeIds << endl; } //------------------------------------------------------------------------------ void vtkGraphInternals::RemoveEdgeFromOutList(vtkIdType e, std::vector& outEdges) { size_t outSize = outEdges.size(); size_t i = 0; for (; i < outSize; ++i) { if (outEdges[i].Id == e) { break; } } if (i == outSize) { vtkErrorMacro("Could not find edge in source edge list."); return; } outEdges[i] = outEdges[outSize - 1]; outEdges.pop_back(); } //------------------------------------------------------------------------------ void vtkGraphInternals::RemoveEdgeFromInList(vtkIdType e, std::vector& inEdges) { size_t inSize = inEdges.size(); size_t i = 0; for (; i < inSize; ++i) { if (inEdges[i].Id == e) { break; } } if (i == inSize) { vtkErrorMacro("Could not find edge in source edge list."); return; } inEdges[i] = inEdges[inSize - 1]; inEdges.pop_back(); } //------------------------------------------------------------------------------ void vtkGraphInternals::ReplaceEdgeFromOutList( vtkIdType from, vtkIdType to, std::vector& outEdges) { size_t outSize = outEdges.size(); for (size_t i = 0; i < outSize; ++i) { if (outEdges[i].Id == from) { outEdges[i].Id = to; } } } //------------------------------------------------------------------------------ void vtkGraphInternals::ReplaceEdgeFromInList( vtkIdType from, vtkIdType to, std::vector& inEdges) { size_t inSize = inEdges.size(); for (size_t i = 0; i < inSize; ++i) { if (inEdges[i].Id == from) { inEdges[i].Id = to; } } }