/Library/VisItLib/avt/DBAtts/MetaData/avtArrayMetaData.C
C++ | 501 lines | 145 code | 52 blank | 304 comment | 17 complexity | 414ec2a9cc9483b5d707e10d2f1d4ac4 MD5 | raw file
- /*****************************************************************************
- *
- * Copyright (c) 2000 - 2013, Lawrence Livermore National Security, LLC
- * Produced at the Lawrence Livermore National Laboratory
- * LLNL-CODE-442911
- * All rights reserved.
- *
- * This file is part of VisIt. For details, see https://visit.llnl.gov/. The
- * full copyright notice is contained in the file COPYRIGHT located at the root
- * of the VisIt distribution or at http://www.llnl.gov/visit/copyright.html.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * - Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the disclaimer below.
- * - Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the disclaimer (as noted below) in the
- * documentation and/or other materials provided with the distribution.
- * - Neither the name of the LLNS/LLNL nor the names of its contributors may
- * be used to endorse or promote products derived from this software without
- * specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL LAWRENCE LIVERMORE NATIONAL SECURITY,
- * LLC, THE U.S. DEPARTMENT OF ENERGY OR CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
- * DAMAGE.
- *
- *****************************************************************************/
- #include <avtArrayMetaData.h>
- #include <DataNode.h>
- #include <snprintf.h>
- // ****************************************************************************
- // Method: avtArrayMetaData::avtArrayMetaData
- //
- // Purpose:
- // Init utility for the avtArrayMetaData class.
- //
- // Note: Autogenerated by xml2atts.
- //
- // Programmer: xml2atts
- // Creation: omitted
- //
- // Modifications:
- //
- // ****************************************************************************
- void avtArrayMetaData::Init()
- {
- nVars = 0;
- avtArrayMetaData::SelectAll();
- }
- // ****************************************************************************
- // Method: avtArrayMetaData::avtArrayMetaData
- //
- // Purpose:
- // Copy utility for the avtArrayMetaData class.
- //
- // Note: Autogenerated by xml2atts.
- //
- // Programmer: xml2atts
- // Creation: omitted
- //
- // Modifications:
- //
- // ****************************************************************************
- void avtArrayMetaData::Copy(const avtArrayMetaData &obj)
- {
- nVars = obj.nVars;
- compNames = obj.compNames;
- avtArrayMetaData::SelectAll();
- }
- // Type map format string
- const char *avtArrayMetaData::TypeMapFormatString = AVTARRAYMETADATA_TMFS;
- const AttributeGroup::private_tmfs_t avtArrayMetaData::TmfsStruct = {AVTARRAYMETADATA_TMFS};
- // ****************************************************************************
- // Method: avtArrayMetaData::avtArrayMetaData
- //
- // Purpose:
- // Default constructor for the avtArrayMetaData class.
- //
- // Note: Autogenerated by xml2atts.
- //
- // Programmer: xml2atts
- // Creation: omitted
- //
- // Modifications:
- //
- // ****************************************************************************
- avtArrayMetaData::avtArrayMetaData() :
- avtVarMetaData(avtArrayMetaData::TmfsStruct)
- {
- avtArrayMetaData::Init();
- }
- // ****************************************************************************
- // Method: avtArrayMetaData::avtArrayMetaData
- //
- // Purpose:
- // Constructor for the derived classes of avtArrayMetaData class.
- //
- // Note: Autogenerated by xml2atts.
- //
- // Programmer: xml2atts
- // Creation: omitted
- //
- // Modifications:
- //
- // ****************************************************************************
- avtArrayMetaData::avtArrayMetaData(private_tmfs_t tmfs) :
- avtVarMetaData(tmfs)
- {
- avtArrayMetaData::Init();
- }
- // ****************************************************************************
- // Method: avtArrayMetaData::avtArrayMetaData
- //
- // Purpose:
- // Copy constructor for the avtArrayMetaData class.
- //
- // Note: Autogenerated by xml2atts.
- //
- // Programmer: xml2atts
- // Creation: omitted
- //
- // Modifications:
- //
- // ****************************************************************************
- avtArrayMetaData::avtArrayMetaData(const avtArrayMetaData &obj) :
- avtVarMetaData(obj,avtArrayMetaData::TmfsStruct)
- {
- avtArrayMetaData::Copy(obj);
- }
- // ****************************************************************************
- // Method: avtArrayMetaData::avtArrayMetaData
- //
- // Purpose:
- // Copy constructor for derived classes of the avtArrayMetaData class.
- //
- // Note: Autogenerated by xml2atts.
- //
- // Programmer: xml2atts
- // Creation: omitted
- //
- // Modifications:
- //
- // ****************************************************************************
- avtArrayMetaData::avtArrayMetaData(const avtArrayMetaData &obj, private_tmfs_t tmfs) :
- avtVarMetaData(obj,tmfs)
- {
- avtArrayMetaData::Copy(obj);
- }
- // ****************************************************************************
- // Method: avtArrayMetaData::~avtArrayMetaData
- //
- // Purpose:
- // Destructor for the avtArrayMetaData class.
- //
- // Note: Autogenerated by xml2atts.
- //
- // Programmer: xml2atts
- // Creation: omitted
- //
- // Modifications:
- //
- // ****************************************************************************
- avtArrayMetaData::~avtArrayMetaData()
- {
- // nothing here
- }
- // ****************************************************************************
- // Method: avtArrayMetaData::operator =
- //
- // Purpose:
- // Assignment operator for the avtArrayMetaData class.
- //
- // Note: Autogenerated by xml2atts.
- //
- // Programmer: xml2atts
- // Creation: omitted
- //
- // Modifications:
- //
- // ****************************************************************************
- avtArrayMetaData&
- avtArrayMetaData::operator = (const avtArrayMetaData &obj)
- {
- if (this == &obj) return *this;
- // call the base class' assignment operator first
- avtVarMetaData::operator=(obj);
- avtArrayMetaData::Copy(obj);
- return *this;
- }
- // ****************************************************************************
- // Method: avtArrayMetaData::operator ==
- //
- // Purpose:
- // Comparison operator == for the avtArrayMetaData class.
- //
- // Note: Autogenerated by xml2atts.
- //
- // Programmer: xml2atts
- // Creation: omitted
- //
- // Modifications:
- //
- // ****************************************************************************
- bool
- avtArrayMetaData::operator == (const avtArrayMetaData &obj) const
- {
- // Create the return value
- return ((nVars == obj.nVars) &&
- (compNames == obj.compNames) &&
- avtVarMetaData::operator==(obj));
- }
- // ****************************************************************************
- // Method: avtArrayMetaData::operator !=
- //
- // Purpose:
- // Comparison operator != for the avtArrayMetaData class.
- //
- // Note: Autogenerated by xml2atts.
- //
- // Programmer: xml2atts
- // Creation: omitted
- //
- // Modifications:
- //
- // ****************************************************************************
- bool
- avtArrayMetaData::operator != (const avtArrayMetaData &obj) const
- {
- return !(this->operator == (obj));
- }
- // ****************************************************************************
- // Method: avtArrayMetaData::TypeName
- //
- // Purpose:
- // Type name method for the avtArrayMetaData class.
- //
- // Note: Autogenerated by xml2atts.
- //
- // Programmer: xml2atts
- // Creation: omitted
- //
- // Modifications:
- //
- // ****************************************************************************
- const std::string
- avtArrayMetaData::TypeName() const
- {
- return "avtArrayMetaData";
- }
- // ****************************************************************************
- // Method: avtArrayMetaData::CopyAttributes
- //
- // Purpose:
- // CopyAttributes method for the avtArrayMetaData class.
- //
- // Note: Autogenerated by xml2atts.
- //
- // Programmer: xml2atts
- // Creation: omitted
- //
- // Modifications:
- //
- // ****************************************************************************
- bool
- avtArrayMetaData::CopyAttributes(const AttributeGroup *atts)
- {
- if(TypeName() != atts->TypeName())
- return false;
- // Call assignment operator.
- const avtArrayMetaData *tmp = (const avtArrayMetaData *)atts;
- *this = *tmp;
- return true;
- }
- // ****************************************************************************
- // Method: avtArrayMetaData::CreateCompatible
- //
- // Purpose:
- // CreateCompatible method for the avtArrayMetaData class.
- //
- // Note: Autogenerated by xml2atts.
- //
- // Programmer: xml2atts
- // Creation: omitted
- //
- // Modifications:
- //
- // ****************************************************************************
- AttributeSubject *
- avtArrayMetaData::CreateCompatible(const std::string &tname) const
- {
- AttributeSubject *retval = 0;
- if(TypeName() == tname)
- retval = new avtArrayMetaData(*this);
- // Other cases could go here too.
- return retval;
- }
- // ****************************************************************************
- // Method: avtArrayMetaData::NewInstance
- //
- // Purpose:
- // NewInstance method for the avtArrayMetaData class.
- //
- // Note: Autogenerated by xml2atts.
- //
- // Programmer: xml2atts
- // Creation: omitted
- //
- // Modifications:
- //
- // ****************************************************************************
- AttributeSubject *
- avtArrayMetaData::NewInstance(bool copy) const
- {
- AttributeSubject *retval = 0;
- if(copy)
- retval = new avtArrayMetaData(*this);
- else
- retval = new avtArrayMetaData;
- return retval;
- }
- // ****************************************************************************
- // Method: avtArrayMetaData::SelectAll
- //
- // Purpose:
- // Selects all attributes.
- //
- // Note: Autogenerated by xml2atts.
- //
- // Programmer: xml2atts
- // Creation: omitted
- //
- // Modifications:
- //
- // ****************************************************************************
- void
- avtArrayMetaData::SelectAll()
- {
- // call the base class' SelectAll() first
- avtVarMetaData::SelectAll();
- Select(ID_nVars, (void *)&nVars);
- Select(ID_compNames, (void *)&compNames);
- }
- ///////////////////////////////////////////////////////////////////////////////
- // Set property methods
- ///////////////////////////////////////////////////////////////////////////////
- ///////////////////////////////////////////////////////////////////////////////
- // Get property methods
- ///////////////////////////////////////////////////////////////////////////////
- ///////////////////////////////////////////////////////////////////////////////
- // User-defined methods.
- ///////////////////////////////////////////////////////////////////////////////
- // ****************************************************************************
- // Method: avtArrayMetaData constructor
- //
- // Arguments:
- // n The name of the array variable.
- // mn The name of the mesh the array var is defined on.
- // nv The number of components.
- // c The centering of the variable.
- //
- // Programmer: Hank Childs
- // Creation: July 19, 2005
- //
- // ****************************************************************************
- avtArrayMetaData::avtArrayMetaData(std::string n, std::string mn,
- avtCentering c, int nv)
- : avtVarMetaData(avtArrayMetaData::TmfsStruct, n, mn, c)
- {
- avtArrayMetaData::Init();
- nVars = nv;
- compNames.resize(nVars);
- for (int i = 0 ; i < nVars ; i++)
- {
- char name[1024];
- SNPRINTF(name, 1024, "comp%d", i);
- }
- }
- // ****************************************************************************
- // Method: avtArrayMetaData constructor
- //
- // Arguments:
- // n The name of the array variable.
- // mn The name of the mesh the array var is defined on.
- // c The centering of the variable.
- // nv The number of components.
- // cn The component names.
- //
- // Programmer: Hank Childs
- // Creation: July 19, 2005
- //
- // ****************************************************************************
- avtArrayMetaData::avtArrayMetaData(std::string n, std::string mn,
- avtCentering c, int nv,
- const stringVector &cn)
- : avtVarMetaData(avtArrayMetaData::TmfsStruct, n, mn, c)
- {
- avtArrayMetaData::Init();
- nVars = nv;
- compNames = cn;
- }
- // ****************************************************************************
- // Method: avtArrayMetaData::Print
- //
- // Purpose:
- // Print statement for debugging.
- //
- // Arguments:
- // out The stream to output to.
- // indent The number of tabs to indent each line with.
- //
- // Programmer: Hank Childs
- // Creation: July 19, 2005
- //
- // ****************************************************************************
- inline void
- Indent(ostream &out, int indent)
- {
- for (int i = 0 ; i < indent ; i++)
- {
- out << "\t";
- }
- }
- void
- avtArrayMetaData::Print(ostream &out, int indent) const
- {
- avtVarMetaData::Print(out, indent);
- Indent(out, indent);
- out << "Number of variables = " << nVars << endl;
- Indent(out, indent);
- out << "Components are: ";
- for (size_t i = 0 ; i < compNames.size() ; i++)
- {
- out << compNames[i].c_str();
- if (i != compNames.size()-1)
- out << ", ";
- else
- out << endl;
- }
- }