mirror of
https://github.com/OpenFOAM/ThirdParty-6.git
synced 2025-12-08 06:57:43 +00:00
645 lines
17 KiB
C++
645 lines
17 KiB
C++
/*****************************************************************************
|
|
*
|
|
* Copyright (c) 2000 - 2007, The Regents of the University of California
|
|
* Produced at the Lawrence Livermore National Laboratory
|
|
* All rights reserved.
|
|
*
|
|
* This file is part of VisIt. For details, see http://www.llnl.gov/visit/. 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 materials provided with the distribution.
|
|
* - Neither the name of the UC/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 THE REGENTS OF THE UNIVERSITY OF
|
|
* CALIFORNIA, 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 <GaussianControlPoint.h>
|
|
#include <DataNode.h>
|
|
|
|
namespace pointsprite {
|
|
|
|
// ****************************************************************************
|
|
// Method: GaussianControlPoint::GaussianControlPoint
|
|
//
|
|
// Purpose:
|
|
// Constructor for the GaussianControlPoint class.
|
|
//
|
|
// Note: Autogenerated by xml2atts.
|
|
//
|
|
// Programmer: xml2atts
|
|
// Creation: Thu Dec 18 11:24:07 PDT 2003
|
|
//
|
|
// Modifications:
|
|
//
|
|
// ****************************************************************************
|
|
|
|
GaussianControlPoint::GaussianControlPoint() : AttributeSubject("fffff")
|
|
{
|
|
x = 0;
|
|
height = 0;
|
|
width = 0.001;
|
|
xBias = 0;
|
|
yBias = 0;
|
|
}
|
|
|
|
// ****************************************************************************
|
|
// Method: GaussianControlPoint::GaussianControlPoint
|
|
//
|
|
// Purpose:
|
|
// Copy constructor for the GaussianControlPoint class.
|
|
//
|
|
// Note: Autogenerated by xml2atts.
|
|
//
|
|
// Programmer: xml2atts
|
|
// Creation: Thu Dec 18 11:24:07 PDT 2003
|
|
//
|
|
// Modifications:
|
|
//
|
|
// ****************************************************************************
|
|
|
|
GaussianControlPoint::GaussianControlPoint(const GaussianControlPoint &obj) : AttributeSubject("fffff")
|
|
{
|
|
x = obj.x;
|
|
height = obj.height;
|
|
width = obj.width;
|
|
xBias = obj.xBias;
|
|
yBias = obj.yBias;
|
|
|
|
SelectAll();
|
|
}
|
|
|
|
// ****************************************************************************
|
|
// Method: GaussianControlPoint::~GaussianControlPoint
|
|
//
|
|
// Purpose:
|
|
// Destructor for the GaussianControlPoint class.
|
|
//
|
|
// Note: Autogenerated by xml2atts.
|
|
//
|
|
// Programmer: xml2atts
|
|
// Creation: Thu Dec 18 11:24:07 PDT 2003
|
|
//
|
|
// Modifications:
|
|
//
|
|
// ****************************************************************************
|
|
|
|
GaussianControlPoint::~GaussianControlPoint()
|
|
{
|
|
// nothing here
|
|
}
|
|
|
|
// ****************************************************************************
|
|
// Method: GaussianControlPoint::operator =
|
|
//
|
|
// Purpose:
|
|
// Assignment operator for the GaussianControlPoint class.
|
|
//
|
|
// Note: Autogenerated by xml2atts.
|
|
//
|
|
// Programmer: xml2atts
|
|
// Creation: Thu Dec 18 11:24:07 PDT 2003
|
|
//
|
|
// Modifications:
|
|
//
|
|
// ****************************************************************************
|
|
|
|
void
|
|
GaussianControlPoint::operator = (const GaussianControlPoint &obj)
|
|
{
|
|
x = obj.x;
|
|
height = obj.height;
|
|
width = obj.width;
|
|
xBias = obj.xBias;
|
|
yBias = obj.yBias;
|
|
|
|
SelectAll();
|
|
}
|
|
|
|
// ****************************************************************************
|
|
// Method: GaussianControlPoint::operator ==
|
|
//
|
|
// Purpose:
|
|
// Comparison operator == for the GaussianControlPoint class.
|
|
//
|
|
// Note: Autogenerated by xml2atts.
|
|
//
|
|
// Programmer: xml2atts
|
|
// Creation: Thu Dec 18 11:24:07 PDT 2003
|
|
//
|
|
// Modifications:
|
|
//
|
|
// ****************************************************************************
|
|
|
|
bool
|
|
GaussianControlPoint::operator == (const GaussianControlPoint &obj) const
|
|
{
|
|
// Create the return value
|
|
return ((x == obj.x) &&
|
|
(height == obj.height) &&
|
|
(width == obj.width) &&
|
|
(xBias == obj.xBias) &&
|
|
(yBias == obj.yBias));
|
|
}
|
|
|
|
// ****************************************************************************
|
|
// Method: GaussianControlPoint::operator !=
|
|
//
|
|
// Purpose:
|
|
// Comparison operator != for the GaussianControlPoint class.
|
|
//
|
|
// Note: Autogenerated by xml2atts.
|
|
//
|
|
// Programmer: xml2atts
|
|
// Creation: Thu Dec 18 11:24:07 PDT 2003
|
|
//
|
|
// Modifications:
|
|
//
|
|
// ****************************************************************************
|
|
|
|
bool
|
|
GaussianControlPoint::operator != (const GaussianControlPoint &obj) const
|
|
{
|
|
return !(this->operator == (obj));
|
|
}
|
|
|
|
// ****************************************************************************
|
|
// Method: GaussianControlPoint::TypeName
|
|
//
|
|
// Purpose:
|
|
// Type name method for the GaussianControlPoint class.
|
|
//
|
|
// Note: Autogenerated by xml2atts.
|
|
//
|
|
// Programmer: xml2atts
|
|
// Creation: Thu Dec 18 11:24:07 PDT 2003
|
|
//
|
|
// Modifications:
|
|
//
|
|
// ****************************************************************************
|
|
|
|
const std::string
|
|
GaussianControlPoint::TypeName() const
|
|
{
|
|
return "GaussianControlPoint";
|
|
}
|
|
|
|
// ****************************************************************************
|
|
// Method: GaussianControlPoint::CopyAttributes
|
|
//
|
|
// Purpose:
|
|
// CopyAttributes method for the GaussianControlPoint class.
|
|
//
|
|
// Note: Autogenerated by xml2atts.
|
|
//
|
|
// Programmer: xml2atts
|
|
// Creation: Thu Dec 18 11:24:07 PDT 2003
|
|
//
|
|
// Modifications:
|
|
//
|
|
// ****************************************************************************
|
|
|
|
bool
|
|
GaussianControlPoint::CopyAttributes(const AttributeGroup *atts)
|
|
{
|
|
if(TypeName() != atts->TypeName())
|
|
return false;
|
|
|
|
// Call assignment operator.
|
|
const GaussianControlPoint *tmp = (const GaussianControlPoint *)atts;
|
|
*this = *tmp;
|
|
|
|
return true;
|
|
}
|
|
|
|
// ****************************************************************************
|
|
// Method: GaussianControlPoint::CreateCompatible
|
|
//
|
|
// Purpose:
|
|
// CreateCompatible method for the GaussianControlPoint class.
|
|
//
|
|
// Note: Autogenerated by xml2atts.
|
|
//
|
|
// Programmer: xml2atts
|
|
// Creation: Thu Dec 18 11:24:07 PDT 2003
|
|
//
|
|
// Modifications:
|
|
//
|
|
// ****************************************************************************
|
|
|
|
AttributeSubject *
|
|
GaussianControlPoint::CreateCompatible(const std::string &tname) const
|
|
{
|
|
AttributeSubject *retval = 0;
|
|
if(TypeName() == tname)
|
|
retval = new GaussianControlPoint(*this);
|
|
// Other cases could go here too.
|
|
|
|
return retval;
|
|
}
|
|
|
|
// ****************************************************************************
|
|
// Method: GaussianControlPoint::NewInstance
|
|
//
|
|
// Purpose:
|
|
// NewInstance method for the GaussianControlPoint class.
|
|
//
|
|
// Note: Autogenerated by xml2atts.
|
|
//
|
|
// Programmer: xml2atts
|
|
// Creation: Thu Dec 18 11:24:07 PDT 2003
|
|
//
|
|
// Modifications:
|
|
//
|
|
// ****************************************************************************
|
|
|
|
AttributeSubject *
|
|
GaussianControlPoint::NewInstance(bool copy) const
|
|
{
|
|
AttributeSubject *retval = 0;
|
|
if(copy)
|
|
retval = new GaussianControlPoint(*this);
|
|
else
|
|
retval = new GaussianControlPoint;
|
|
|
|
return retval;
|
|
}
|
|
|
|
// ****************************************************************************
|
|
// Method: GaussianControlPoint::SelectAll
|
|
//
|
|
// Purpose:
|
|
// Selects all attributes.
|
|
//
|
|
// Note: Autogenerated by xml2atts.
|
|
//
|
|
// Programmer: xml2atts
|
|
// Creation: Thu Dec 18 11:24:07 PDT 2003
|
|
//
|
|
// Modifications:
|
|
//
|
|
// ****************************************************************************
|
|
|
|
void
|
|
GaussianControlPoint::SelectAll()
|
|
{
|
|
Select(0, (void *)&x);
|
|
Select(1, (void *)&height);
|
|
Select(2, (void *)&width);
|
|
Select(3, (void *)&xBias);
|
|
Select(4, (void *)&yBias);
|
|
}
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
// Persistence methods
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
// ****************************************************************************
|
|
// Method: GaussianControlPoint::CreateNode
|
|
//
|
|
// Purpose:
|
|
// This method creates a DataNode representation of the object so it can be saved to a config file.
|
|
//
|
|
// Note: Autogenerated by xml2atts.
|
|
//
|
|
// Programmer: xml2atts
|
|
// Creation: Thu Dec 18 11:24:07 PDT 2003
|
|
//
|
|
// Modifications:
|
|
//
|
|
// ****************************************************************************
|
|
|
|
bool
|
|
GaussianControlPoint::CreateNode(DataNode *parentNode, bool completeSave, bool forceAdd)
|
|
{
|
|
if(parentNode == 0)
|
|
return false;
|
|
|
|
GaussianControlPoint defaultObject;
|
|
bool addToParent = false;
|
|
// Create a node for GaussianControlPoint.
|
|
DataNode *node = new DataNode("GaussianControlPoint");
|
|
|
|
if(completeSave || !FieldsEqual(0, &defaultObject))
|
|
{
|
|
addToParent = true;
|
|
node->AddNode(new DataNode("x", x));
|
|
}
|
|
|
|
if(completeSave || !FieldsEqual(1, &defaultObject))
|
|
{
|
|
addToParent = true;
|
|
node->AddNode(new DataNode("height", height));
|
|
}
|
|
|
|
if(completeSave || !FieldsEqual(2, &defaultObject))
|
|
{
|
|
addToParent = true;
|
|
node->AddNode(new DataNode("width", width));
|
|
}
|
|
|
|
if(completeSave || !FieldsEqual(3, &defaultObject))
|
|
{
|
|
addToParent = true;
|
|
node->AddNode(new DataNode("xBias", xBias));
|
|
}
|
|
|
|
if(completeSave || !FieldsEqual(4, &defaultObject))
|
|
{
|
|
addToParent = true;
|
|
node->AddNode(new DataNode("yBias", yBias));
|
|
}
|
|
|
|
|
|
// Add the node to the parent node.
|
|
if(addToParent || forceAdd)
|
|
parentNode->AddNode(node);
|
|
else
|
|
delete node;
|
|
|
|
return (addToParent || forceAdd);
|
|
}
|
|
|
|
// ****************************************************************************
|
|
// Method: GaussianControlPoint::SetFromNode
|
|
//
|
|
// Purpose:
|
|
// This method sets attributes in this object from values in a DataNode representation of the object.
|
|
//
|
|
// Note: Autogenerated by xml2atts.
|
|
//
|
|
// Programmer: xml2atts
|
|
// Creation: Thu Dec 18 11:24:07 PDT 2003
|
|
//
|
|
// Modifications:
|
|
//
|
|
// ****************************************************************************
|
|
|
|
void
|
|
GaussianControlPoint::SetFromNode(DataNode *parentNode)
|
|
{
|
|
//int i;
|
|
if(parentNode == 0)
|
|
return;
|
|
|
|
DataNode *searchNode = parentNode->GetNode("GaussianControlPoint");
|
|
if(searchNode == 0)
|
|
return;
|
|
|
|
DataNode *node;
|
|
if((node = searchNode->GetNode("x")) != 0)
|
|
SetX(node->AsFloat());
|
|
if((node = searchNode->GetNode("height")) != 0)
|
|
SetHeight(node->AsFloat());
|
|
if((node = searchNode->GetNode("width")) != 0)
|
|
SetWidth(node->AsFloat());
|
|
if((node = searchNode->GetNode("xBias")) != 0)
|
|
SetXBias(node->AsFloat());
|
|
if((node = searchNode->GetNode("yBias")) != 0)
|
|
SetYBias(node->AsFloat());
|
|
}
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
// Set property methods
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
void
|
|
GaussianControlPoint::SetX(float x_)
|
|
{
|
|
x = x_;
|
|
Select(0, (void *)&x);
|
|
}
|
|
|
|
void
|
|
GaussianControlPoint::SetHeight(float height_)
|
|
{
|
|
height = height_;
|
|
Select(1, (void *)&height);
|
|
}
|
|
|
|
void
|
|
GaussianControlPoint::SetWidth(float width_)
|
|
{
|
|
width = width_;
|
|
Select(2, (void *)&width);
|
|
}
|
|
|
|
void
|
|
GaussianControlPoint::SetXBias(float xBias_)
|
|
{
|
|
xBias = xBias_;
|
|
Select(3, (void *)&xBias);
|
|
}
|
|
|
|
void
|
|
GaussianControlPoint::SetYBias(float yBias_)
|
|
{
|
|
yBias = yBias_;
|
|
Select(4, (void *)&yBias);
|
|
}
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
// Get property methods
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
float
|
|
GaussianControlPoint::GetX() const
|
|
{
|
|
return x;
|
|
}
|
|
|
|
float
|
|
GaussianControlPoint::GetHeight() const
|
|
{
|
|
return height;
|
|
}
|
|
|
|
float
|
|
GaussianControlPoint::GetWidth() const
|
|
{
|
|
return width;
|
|
}
|
|
|
|
float
|
|
GaussianControlPoint::GetXBias() const
|
|
{
|
|
return xBias;
|
|
}
|
|
|
|
float
|
|
GaussianControlPoint::GetYBias() const
|
|
{
|
|
return yBias;
|
|
}
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
// Keyframing methods
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
// ****************************************************************************
|
|
// Method: GaussianControlPoint::GetFieldName
|
|
//
|
|
// Purpose:
|
|
// This method returns the name of a field given its index.
|
|
//
|
|
// Note: Autogenerated by xml2atts.
|
|
//
|
|
// Programmer: xml2atts
|
|
// Creation: Thu Dec 18 11:24:07 PDT 2003
|
|
//
|
|
// Modifications:
|
|
//
|
|
// ****************************************************************************
|
|
|
|
std::string
|
|
GaussianControlPoint::GetFieldName(int index) const
|
|
{
|
|
switch (index)
|
|
{
|
|
case 0: return "x";
|
|
case 1: return "height";
|
|
case 2: return "width";
|
|
case 3: return "xBias";
|
|
case 4: return "yBias";
|
|
default: return "invalid index";
|
|
}
|
|
}
|
|
|
|
// ****************************************************************************
|
|
// Method: GaussianControlPoint::GetFieldType
|
|
//
|
|
// Purpose:
|
|
// This method returns the type of a field given its index.
|
|
//
|
|
// Note: Autogenerated by xml2atts.
|
|
//
|
|
// Programmer: xml2atts
|
|
// Creation: Thu Dec 18 11:24:07 PDT 2003
|
|
//
|
|
// Modifications:
|
|
//
|
|
// ****************************************************************************
|
|
|
|
AttributeGroup::FieldType
|
|
GaussianControlPoint::GetFieldType(int index) const
|
|
{
|
|
switch (index)
|
|
{
|
|
case 0: return FieldType_float;
|
|
case 1: return FieldType_float;
|
|
case 2: return FieldType_float;
|
|
case 3: return FieldType_float;
|
|
case 4: return FieldType_float;
|
|
default: return FieldType_unknown;
|
|
}
|
|
}
|
|
|
|
// ****************************************************************************
|
|
// Method: GaussianControlPoint::GetFieldTypeName
|
|
//
|
|
// Purpose:
|
|
// This method returns the name of a field type given its index.
|
|
//
|
|
// Note: Autogenerated by xml2atts.
|
|
//
|
|
// Programmer: xml2atts
|
|
// Creation: Thu Dec 18 11:24:07 PDT 2003
|
|
//
|
|
// Modifications:
|
|
//
|
|
// ****************************************************************************
|
|
|
|
std::string
|
|
GaussianControlPoint::GetFieldTypeName(int index) const
|
|
{
|
|
switch (index)
|
|
{
|
|
case 0: return "float";
|
|
case 1: return "float";
|
|
case 2: return "float";
|
|
case 3: return "float";
|
|
case 4: return "float";
|
|
default: return "invalid index";
|
|
}
|
|
}
|
|
|
|
// ****************************************************************************
|
|
// Method: GaussianControlPoint::FieldsEqual
|
|
//
|
|
// Purpose:
|
|
// This method compares two fields and return true if they are equal.
|
|
//
|
|
// Note: Autogenerated by xml2atts.
|
|
//
|
|
// Programmer: xml2atts
|
|
// Creation: Thu Dec 18 11:24:07 PDT 2003
|
|
//
|
|
// Modifications:
|
|
//
|
|
// ****************************************************************************
|
|
|
|
bool
|
|
GaussianControlPoint::FieldsEqual(int index_, const AttributeGroup *rhs) const
|
|
{
|
|
const GaussianControlPoint &obj = *((const GaussianControlPoint*)rhs);
|
|
bool retval = false;
|
|
switch (index_)
|
|
{
|
|
case 0:
|
|
{ // new scope
|
|
retval = (x == obj.x);
|
|
}
|
|
break;
|
|
case 1:
|
|
{ // new scope
|
|
retval = (height == obj.height);
|
|
}
|
|
break;
|
|
case 2:
|
|
{ // new scope
|
|
retval = (width == obj.width);
|
|
}
|
|
break;
|
|
case 3:
|
|
{ // new scope
|
|
retval = (xBias == obj.xBias);
|
|
}
|
|
break;
|
|
case 4:
|
|
{ // new scope
|
|
retval = (yBias == obj.yBias);
|
|
}
|
|
break;
|
|
default: retval = false;
|
|
}
|
|
|
|
return retval;
|
|
}
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
// User-defined methods.
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
}
|