//============================================================================ // Copyright (c) Kitware, Inc. // All rights reserved. // See LICENSE.txt 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 2016 Sandia Corporation. // Copyright 2016 UT-Battelle, LLC. // Copyright 2016 Los Alamos National Security. // // Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, // the U.S. Government retains certain rights in this software. // // Under the terms of Contract DE-AC52-06NA25396 with Los Alamos National // Laboratory (LANL), the U.S. Government retains certain rights in // this software. //============================================================================ #include #include #include namespace vtkm { namespace rendering { Canvas::Canvas(vtkm::Id width, vtkm::Id height) : Width(0), Height(0) { this->ResizeBuffers(width, height); } Canvas::~Canvas() { } void Canvas::SaveAs(const std::string &fileName) const { this->RefreshColorBuffer(); std::ofstream of(fileName.c_str()); of<<"P6"<Width<<" "<Height<ColorBuffer.GetPortalConstControl(); for (vtkm::Id yIndex=this->Height-1; yIndex>=0; yIndex--) { for (vtkm::Id xIndex=0; xIndex < this->Width; xIndex++) { vtkm::Vec tuple = colorPortal.Get(yIndex*this->Width + xIndex); of<<(unsigned char)(tuple[0]*255); of<<(unsigned char)(tuple[1]*255); of<<(unsigned char)(tuple[2]*255); } } of.close(); } vtkm::rendering::WorldAnnotator * Canvas::CreateWorldAnnotator() const { return new vtkm::rendering::WorldAnnotator; } } } // vtkm::rendering