Commit 49edee9f authored by ahern's avatar ahern
Browse files

A number of changes related to clip:

+ Added fast vs. accurate quality option.
+ Added quality options to the GUI.
+ Put the fast path logic back in and made it be the default.


git-svn-id: http://visit.ilight.com/svn/visit/trunk/src@3368 18c085ea-50e0-402c-830e-de6fd14e8384
parent 299d983c
##
## build_vist generated host.conf
## created: Thu Jul 12 15:03:08 EDT 2007
## system: Linux lije 2.6.9-55.ELsmp #1 SMP Fri Apr 20 16:36:54 EDT 2007 x86_64 x86_64 x86_64 GNU/Linux
## created: Wed Feb 27 09:54:29 EST 2008
## system: Linux lije 2.6.9-67.0.1.ELsmp #1 SMP Fri Nov 30 11:57:43 EST 2007 x86_64 x86_64 x86_64 GNU/Linux
## by: ahern
##
## Tell VisIt where to find cmake in case we want to build slivr.
##
DEFAULT_CMAKE=/home/ahern/work/VisIt/svn/trunk/src/cmake-2.4.5/bin/cmake
##
## Set the VISITHOME environment variable.
##
VISITHOME=/home/ahern/work/VisIt/svn/trunk/src/visit
VISITHOME=/home/ahern/work/VisIt/svn/trunk/visit
##
## Specify the location of the mesa include files and libraries.
##
#MESA=$VISITHOME/mesa/6.4.2/linux_gcc-3.4.6
MESA=$VISITHOME/mesa/5.0/
MESA=$VISITHOME/mesa/5.0/linux-x86_64_gcc-3.4.6/
##
## If enable_viewer_mesa_stub in not set, then disable it.
##
if test -z "$enable_viewer_mesa_stub"; then
enable_viewer_mesa_stub=no
fi
##
## Specify the location of the vtk include files and libraries.
##
VTK=$VISITHOME/vtk/5.0.0c/linux_gcc-3.4.6
VTK=$VISITHOME/vtk/5.0.0c/linux-x86_64_gcc-3.4.6
##
## Specify the location of cmake.
##
DEFAULT_CMAKE=$VISITHOME/cmake/2.4.5/linux-x86_64_gcc-3.4.6/bin/cmake
##
## Specify the location of the qt include files and libraries.
##
QT_BIN=$VISITHOME/qt/3.3.8/linux_gcc-3.4.6/bin
QT_INCLUDE=$VISITHOME/qt/3.3.8/linux_gcc-3.4.6/include
QT_LIB=$VISITHOME/qt/3.3.8/linux_gcc-3.4.6/lib
QT_BIN=$VISITHOME/qt/3.3.8/linux-x86_64_gcc-3.4.6/bin
QT_INCLUDE=$VISITHOME/qt/3.3.8/linux-x86_64_gcc-3.4.6/include
QT_LIB=$VISITHOME/qt/3.3.8/linux-x86_64_gcc-3.4.6/lib
##
## Specify the location of the python include and libraries.
##
PYDIR=$VISITHOME/python/2.5/linux_gcc-3.4.6
PYDIR=$VISITHOME/python/2.5/linux-x86_64_gcc-3.4.6
PYVERSION=python2.5
##
## Silo
##
DEFAULT_SILO_INCLUDES=$VISITHOME/silo/4.5.1/linux_gcc-3.4.6/include
DEFAULT_SILO_LIBRARY=$VISITHOME/silo/4.5.1/linux_gcc-3.4.6/lib
DEFAULT_SILO_INCLUDES=$VISITHOME/silo/4.6.1/linux-x86_64_gcc-3.4.6/include
DEFAULT_SILO_LIBRARY=$VISITHOME/silo/4.6.1/linux-x86_64_gcc-3.4.6/lib
## Compiler flage.
## Compiler flags.
##
CC="gcc"
CXX="g++"
CFLAGS="-g -m64 -fPIC"
CXXFLAGS="-g -m64 -fPIC"
CFLAGS=" -m64 -fPIC -g"
CXXFLAGS=" -m64 -fPIC -g"
##
## Database reader plugin support libraries
......@@ -59,67 +64,57 @@ CXXFLAGS="-g -m64 -fPIC"
##
## Boxlib
##
DEFAULT_BOXLIB2D_INCLUDE=$VISITHOME/boxlib/linux_gcc-3.4.6/include/2D
DEFAULT_BOXLIB2D_LIBS=$VISITHOME/boxlib/linux_gcc-3.4.6/lib
DEFAULT_BOXLIB3D_INCLUDE=$VISITHOME/boxlib/linux_gcc-3.4.6/include/3D
DEFAULT_BOXLIB3D_LIBS=$VISITHOME/boxlib/linux_gcc-3.4.6/lib
##
## CFITSIO
##
DEFAULT_CFITSIO_INCLUDE=$VISITHOME/cfitsio/3006/linux_gcc-3.4.6/include
DEFAULT_CFITSIO_LIB=$VISITHOME/cfitsio/3006/linux_gcc-3.4.6/lib
##
## CGNS
##
DEFAULT_CGNS_INCLUDE=$VISITHOME/cgns/2.4/linux_gcc-3.4.6/include
DEFAULT_CGNS_LIB=$VISITHOME/cgns/2.4/linux_gcc-3.4.6/lib
##
## Exodus
##
DEFAULT_EXODUS_INCLUDES=$VISITHOME/exodus/4.46/linux_gcc-3.4.6/inc
DEFAULT_EXODUS_LIBRARY=$VISITHOME/exodus/4.46/linux_gcc-3.4.6/lib
##
## GDAL
##
DEFAULT_GDAL_INCLUDE=$VISITHOME/gdal/1.3.2/linux_gcc-3.4.6/include
DEFAULT_GDAL_LIB=$VISITHOME/gdal/1.3.2/linux_gcc-3.4.6/lib
##
## H5Part
##
DEFAULT_H5PART_INCLUDE=$VISITHOME/h5part/1.3.3/linux_gcc-3.4.6/include
DEFAULT_H5PART_LIB=$VISITHOME/h5part/1.3.3/linux_gcc-3.4.6/lib
DEFAULT_H5PART_INCLUDE=$VISITHOME/h5part/1.4.0/linux-x86_64_gcc-3.4.6/include
DEFAULT_H5PART_LIB=$VISITHOME/h5part/1.4.0/linux-x86_64_gcc-3.4.6/lib
##
## HDF4
##
DEFAULT_HDF4_FLAGS=$VISITHOME/hdf4/4.2.1/linux_gcc-3.4.6/include
DEFAULT_HDF4_LIBS=$VISITHOME/hdf4/4.2.1/linux_gcc-3.4.6/lib
DEFAULT_HDF4_FLAGS=$VISITHOME/hdf4/4.2.1/linux-x86_64_gcc-3.4.6/include
DEFAULT_HDF4_LIBS=$VISITHOME/hdf4/4.2.1/linux-x86_64_gcc-3.4.6/lib
##
## HDF5
##
DEFAULT_HDF5_INCLUDE=$VISITHOME/hdf5/1.6.5/linux_gcc-3.4.6/include
DEFAULT_HDF5_LIB=$VISITHOME/hdf5/1.6.5/linux_gcc-3.4.6/lib
DEFAULT_HDF5_INCLUDE=$VISITHOME/hdf5/1.6.5/linux-x86_64_gcc-3.4.6/include
DEFAULT_HDF5_LIB=$VISITHOME/hdf5/1.6.5/linux-x86_64_gcc-3.4.6/lib
##
## Mili
##
MILI_DIR=$VISITHOME/mili/1.10.0/linux_gcc-3.4.6
##
## NetCDF
##
DEFAULT_NETCDF_INCLUDE=$VISITHOME/netcdf/3.6.0/linux_gcc-3.4.6/include
DEFAULT_NETCDF_LIB=$VISITHOME/netcdf/3.6.0/linux_gcc-3.4.6/lib
DEFAULT_NETCDF_INCLUDE=$VISITHOME/netcdf/3.6.0/linux-x86_64_gcc-3.4.6/include
DEFAULT_NETCDF_LIB=$VISITHOME/netcdf/3.6.0/linux-x86_64_gcc-3.4.6/lib
##
## If enable_viewer_mesa_stub in not set, then disable it.
## SZIP
##
DEFAULT_SZIP_INCLUDE=$VISITHOME/szip/2.1/linux-x86_64_gcc-3.4.6/include
DEFAULT_SZIP_LIB=$VISITHOME/szip/2.1/linux-x86_64_gcc-3.4.6/lib
##
## CCMIO
##
##
if test -z "$enable_viewer_mesa_stub"; then
enable_viewer_mesa_stub=no
fi
......@@ -68,8 +68,8 @@ enhancements and bug-fixes that were added to this release.</p>
<li>VisIt's ZeusMP reader now supports cylindrical coordinates.</li>
<li>VisIt's Clip operator now has a 'fast' vs. 'accurate' option, with
a new 'accurate' option being the default.</li>
<li>VisIt's Clip operator now has a 'fast' vs. 'accurate' option,
with 'fast' being the default.</li>
</ul>
<p><b><font size="4">Bugs fixed in version 1.9.0</font></b></p>
<ul>
......
......@@ -11,6 +11,13 @@
Plane2
Plane3
</Enum>
<Enum name="Quality">
Fast
Accurate
</Enum>
<Field name="quality" label="Quality" type="enum" subtype="Quality">
Fast
</Field>
<Field name="funcType" label="Style" type="enum" subtype="ClipStyle">
Plane
</Field>
......
......@@ -116,8 +116,45 @@ ClipAttributes::WhichClipPlane_FromString(const std::string &s, ClipAttributes::
return false;
}
//
// Enum conversion methods for ClipAttributes::Quality
//
static const char *Quality_strings[] = {
"Fast", "Accurate"};
std::string
ClipAttributes::Quality_ToString(ClipAttributes::Quality t)
{
int index = int(t);
if(index < 0 || index >= 2) index = 0;
return Quality_strings[index];
}
std::string
ClipAttributes::Quality_ToString(int t)
{
int index = (t < 0 || t >= 2) ? 0 : t;
return Quality_strings[index];
}
bool
ClipAttributes::Quality_FromString(const std::string &s, ClipAttributes::Quality &val)
{
val = ClipAttributes::Fast;
for(int i = 0; i < 2; ++i)
{
if(s == Quality_strings[i])
{
val = (Quality)i;
return true;
}
}
return false;
}
// Type map format string
const char *ClipAttributes::TypeMapFormatString = "ibbbDDDDDDbiDdb";
const char *ClipAttributes::TypeMapFormatString = "iibbbDDDDDDbiDdb";
// ****************************************************************************
// Method: ClipAttributes::ClipAttributes
......@@ -128,7 +165,7 @@ const char *ClipAttributes::TypeMapFormatString = "ibbbDDDDDDbiDdb";
// Note: Autogenerated by xml2atts.
//
// Programmer: xml2atts
// Creation: Tue Aug 28 15:35:06 PST 2007
// Creation: Wed Feb 27 16:13:14 PST 2008
//
// Modifications:
//
......@@ -137,6 +174,7 @@ const char *ClipAttributes::TypeMapFormatString = "ibbbDDDDDDbiDdb";
ClipAttributes::ClipAttributes() :
AttributeSubject(ClipAttributes::TypeMapFormatString)
{
quality = Fast;
funcType = Plane;
plane1Status = true;
plane2Status = false;
......@@ -177,7 +215,7 @@ ClipAttributes::ClipAttributes() :
// Note: Autogenerated by xml2atts.
//
// Programmer: xml2atts
// Creation: Tue Aug 28 15:35:06 PST 2007
// Creation: Wed Feb 27 16:13:14 PST 2008
//
// Modifications:
//
......@@ -186,6 +224,7 @@ ClipAttributes::ClipAttributes() :
ClipAttributes::ClipAttributes(const ClipAttributes &obj) :
AttributeSubject(ClipAttributes::TypeMapFormatString)
{
quality = obj.quality;
funcType = obj.funcType;
plane1Status = obj.plane1Status;
plane2Status = obj.plane2Status;
......@@ -235,7 +274,7 @@ ClipAttributes::ClipAttributes(const ClipAttributes &obj) :
// Note: Autogenerated by xml2atts.
//
// Programmer: xml2atts
// Creation: Tue Aug 28 15:35:06 PST 2007
// Creation: Wed Feb 27 16:13:14 PST 2008
//
// Modifications:
//
......@@ -255,7 +294,7 @@ ClipAttributes::~ClipAttributes()
// Note: Autogenerated by xml2atts.
//
// Programmer: xml2atts
// Creation: Tue Aug 28 15:35:06 PST 2007
// Creation: Wed Feb 27 16:13:14 PST 2008
//
// Modifications:
//
......@@ -265,6 +304,7 @@ ClipAttributes&
ClipAttributes::operator = (const ClipAttributes &obj)
{
if (this == &obj) return *this;
quality = obj.quality;
funcType = obj.funcType;
plane1Status = obj.plane1Status;
plane2Status = obj.plane2Status;
......@@ -315,7 +355,7 @@ ClipAttributes::operator = (const ClipAttributes &obj)
// Note: Autogenerated by xml2atts.
//
// Programmer: xml2atts
// Creation: Tue Aug 28 15:35:06 PST 2007
// Creation: Wed Feb 27 16:13:14 PST 2008
//
// Modifications:
//
......@@ -362,7 +402,8 @@ ClipAttributes::operator == (const ClipAttributes &obj) const
center_equal = (center[i] == obj.center[i]);
// Create the return value
return ((funcType == obj.funcType) &&
return ((quality == obj.quality) &&
(funcType == obj.funcType) &&
(plane1Status == obj.plane1Status) &&
(plane2Status == obj.plane2Status) &&
(plane3Status == obj.plane3Status) &&
......@@ -388,7 +429,7 @@ ClipAttributes::operator == (const ClipAttributes &obj) const
// Note: Autogenerated by xml2atts.
//
// Programmer: xml2atts
// Creation: Tue Aug 28 15:35:06 PST 2007
// Creation: Wed Feb 27 16:13:14 PST 2008
//
// Modifications:
//
......@@ -409,7 +450,7 @@ ClipAttributes::operator != (const ClipAttributes &obj) const
// Note: Autogenerated by xml2atts.
//
// Programmer: xml2atts
// Creation: Tue Aug 28 15:35:06 PST 2007
// Creation: Wed Feb 27 16:13:14 PST 2008
//
// Modifications:
//
......@@ -631,7 +672,7 @@ ClipAttributes::CreateCompatible(const std::string &tname) const
// Note: Autogenerated by xml2atts.
//
// Programmer: xml2atts
// Creation: Tue Aug 28 15:35:06 PST 2007
// Creation: Wed Feb 27 16:13:14 PST 2008
//
// Modifications:
//
......@@ -658,7 +699,7 @@ ClipAttributes::NewInstance(bool copy) const
// Note: Autogenerated by xml2atts.
//
// Programmer: xml2atts
// Creation: Tue Aug 28 15:35:06 PST 2007
// Creation: Wed Feb 27 16:13:14 PST 2008
//
// Modifications:
//
......@@ -667,21 +708,22 @@ ClipAttributes::NewInstance(bool copy) const
void
ClipAttributes::SelectAll()
{
Select(0, (void *)&funcType);
Select(1, (void *)&plane1Status);
Select(2, (void *)&plane2Status);
Select(3, (void *)&plane3Status);
Select(4, (void *)plane1Origin, 3);
Select(5, (void *)plane2Origin, 3);
Select(6, (void *)plane3Origin, 3);
Select(7, (void *)plane1Normal, 3);
Select(8, (void *)plane2Normal, 3);
Select(9, (void *)plane3Normal, 3);
Select(10, (void *)&planeInverse);
Select(11, (void *)&planeToolControlledClipPlane);
Select(12, (void *)center, 3);
Select(13, (void *)&radius);
Select(14, (void *)&sphereInverse);
Select(ID_quality, (void *)&quality);
Select(ID_funcType, (void *)&funcType);
Select(ID_plane1Status, (void *)&plane1Status);
Select(ID_plane2Status, (void *)&plane2Status);
Select(ID_plane3Status, (void *)&plane3Status);
Select(ID_plane1Origin, (void *)plane1Origin, 3);
Select(ID_plane2Origin, (void *)plane2Origin, 3);
Select(ID_plane3Origin, (void *)plane3Origin, 3);
Select(ID_plane1Normal, (void *)plane1Normal, 3);
Select(ID_plane2Normal, (void *)plane2Normal, 3);
Select(ID_plane3Normal, (void *)plane3Normal, 3);
Select(ID_planeInverse, (void *)&planeInverse);
Select(ID_planeToolControlledClipPlane, (void *)&planeToolControlledClipPlane);
Select(ID_center, (void *)center, 3);
Select(ID_radius, (void *)&radius);
Select(ID_sphereInverse, (void *)&sphereInverse);
}
///////////////////////////////////////////////////////////////////////////////
......@@ -697,7 +739,7 @@ ClipAttributes::SelectAll()
// Note: Autogenerated by xml2atts.
//
// Programmer: xml2atts
// Creation: Tue Aug 28 15:35:06 PST 2007
// Creation: Wed Feb 27 16:13:14 PST 2008
//
// Modifications:
//
......@@ -714,91 +756,97 @@ ClipAttributes::CreateNode(DataNode *parentNode, bool completeSave, bool forceAd
// Create a node for ClipAttributes.
DataNode *node = new DataNode("ClipAttributes");
if(completeSave || !FieldsEqual(0, &defaultObject))
if(completeSave || !FieldsEqual(ID_quality, &defaultObject))
{
addToParent = true;
node->AddNode(new DataNode("quality", Quality_ToString(quality)));
}
if(completeSave || !FieldsEqual(ID_funcType, &defaultObject))
{
addToParent = true;
node->AddNode(new DataNode("funcType", ClipStyle_ToString(funcType)));
}
if(completeSave || !FieldsEqual(1, &defaultObject))
if(completeSave || !FieldsEqual(ID_plane1Status, &defaultObject))
{
addToParent = true;
node->AddNode(new DataNode("plane1Status", plane1Status));
}
if(completeSave || !FieldsEqual(2, &defaultObject))
if(completeSave || !FieldsEqual(ID_plane2Status, &defaultObject))
{
addToParent = true;
node->AddNode(new DataNode("plane2Status", plane2Status));
}
if(completeSave || !FieldsEqual(3, &defaultObject))
if(completeSave || !FieldsEqual(ID_plane3Status, &defaultObject))
{
addToParent = true;
node->AddNode(new DataNode("plane3Status", plane3Status));
}
if(completeSave || !FieldsEqual(4, &defaultObject))
if(completeSave || !FieldsEqual(ID_plane1Origin, &defaultObject))
{
addToParent = true;
node->AddNode(new DataNode("plane1Origin", plane1Origin, 3));
}
if(completeSave || !FieldsEqual(5, &defaultObject))
if(completeSave || !FieldsEqual(ID_plane2Origin, &defaultObject))
{
addToParent = true;
node->AddNode(new DataNode("plane2Origin", plane2Origin, 3));
}
if(completeSave || !FieldsEqual(6, &defaultObject))
if(completeSave || !FieldsEqual(ID_plane3Origin, &defaultObject))
{
addToParent = true;
node->AddNode(new DataNode("plane3Origin", plane3Origin, 3));
}
if(completeSave || !FieldsEqual(7, &defaultObject))
if(completeSave || !FieldsEqual(ID_plane1Normal, &defaultObject))
{
addToParent = true;
node->AddNode(new DataNode("plane1Normal", plane1Normal, 3));
}
if(completeSave || !FieldsEqual(8, &defaultObject))
if(completeSave || !FieldsEqual(ID_plane2Normal, &defaultObject))
{
addToParent = true;
node->AddNode(new DataNode("plane2Normal", plane2Normal, 3));
}
if(completeSave || !FieldsEqual(9, &defaultObject))
if(completeSave || !FieldsEqual(ID_plane3Normal, &defaultObject))
{
addToParent = true;
node->AddNode(new DataNode("plane3Normal", plane3Normal, 3));
}
if(completeSave || !FieldsEqual(10, &defaultObject))
if(completeSave || !FieldsEqual(ID_planeInverse, &defaultObject))
{
addToParent = true;
node->AddNode(new DataNode("planeInverse", planeInverse));
}
if(completeSave || !FieldsEqual(11, &defaultObject))
if(completeSave || !FieldsEqual(ID_planeToolControlledClipPlane, &defaultObject))
{
addToParent = true;
node->AddNode(new DataNode("planeToolControlledClipPlane", WhichClipPlane_ToString(planeToolControlledClipPlane)));
}
if(completeSave || !FieldsEqual(12, &defaultObject))
if(completeSave || !FieldsEqual(ID_center, &defaultObject))
{
addToParent = true;
node->AddNode(new DataNode("center", center, 3));
}
if(completeSave || !FieldsEqual(13, &defaultObject))
if(completeSave || !FieldsEqual(ID_radius, &defaultObject))
{
addToParent = true;
node->AddNode(new DataNode("radius", radius));
}
if(completeSave || !FieldsEqual(14, &defaultObject))
if(completeSave || !FieldsEqual(ID_sphereInverse, &defaultObject))
{
addToParent = true;
node->AddNode(new DataNode("sphereInverse", sphereInverse));
......@@ -823,7 +871,7 @@ ClipAttributes::CreateNode(DataNode *parentNode, bool completeSave, bool forceAd
// Note: Autogenerated by xml2atts.
//
// Programmer: xml2atts
// Creation: Tue Aug 28 15:35:06 PST 2007
// Creation: Wed Feb 27 16:13:14 PST 2008
//
// Modifications:
//
......@@ -841,6 +889,22 @@ ClipAttributes::SetFromNode(DataNode *parentNode)
return;
DataNode *node;
if((node = searchNode->GetNode("quality")) != 0)
{
// Allow enums to be int or string in the config file
if(node->GetNodeType() == INT_NODE)
{
int ival = node->AsInt();
if(ival >= 0 && ival < 2)
SetQuality(Quality(ival));
}
else if(node->GetNodeType() == STRING_NODE)
{
Quality value;
if(Quality_FromString(node->AsString(), value))
SetQuality(value);
}
}
if((node = searchNode->GetNode("funcType")) != 0)
{
// Allow enums to be int or string in the config file
......@@ -905,32 +969,39 @@ ClipAttributes::SetFromNode(DataNode *parentNode)
// Set property methods
///////////////////////////////////////////////////////////////////////////////
void
ClipAttributes::SetQuality(ClipAttributes::Quality quality_)
{
quality = quality_;
Select(ID_quality, (void *)&quality);
}
void
ClipAttributes::SetFuncType(ClipAttributes::ClipStyle funcType_)
{
funcType = funcType_;
Select(0, (void *)&funcType);
Select(ID_funcType, (void *)&funcType);
}
void
ClipAttributes::SetPlane1Status(bool plane1Status_)
{
plane1Status = plane1Status_;
Select(1, (void *)&plane1Status);
Select(ID_plane1Status, (void *)&plane1Status);
}
void
ClipAttributes::SetPlane2Status(bool plane2Status_)
{
plane2Status = plane2Status_;
Select(2, (void *)&plane2Status);
Select(ID_plane2Status, (void *)&plane2Status);
}
void
ClipAttributes::SetPlane3Status(bool plane3Status_)
{
plane3Status = plane3Status_;
Select(3, (void *)&plane3Status);
Select(ID_plane3Status, (void *)&plane3Status);
}
void
......@@ -939,7 +1010,7 @@ ClipAttributes::SetPlane1Origin(const double *plane1Origin_)
plane1Origin[0] = plane1Origin_[0];
plane1Origin[1] = plane1Origin_[1];
plane1Origin[2] = plane1Origin_[2];
Select(4, (void *)plane1Origin, 3);
Select(ID_plane1Origin, (void *)plane1Origin, 3);
}
void
......@@ -948,7 +1019,7 @@ ClipAttributes::SetPlane2Origin(const double *plane2Origin_)
plane2Origin[0] = plane2Origin_[0];
plane2Origin[1] = plane2Origin_[1];
plane2Origin[2] = plane2Origin_[2];
Select(5, (void *)plane2Origin, 3);
Select(ID_plane2Origin, (void *)plane2Origin, 3);
}
void
......@@ -957,7 +1028,7 @@ ClipAttributes::SetPlane3Origin(const double *plane3Origin_)
plane3Origin[0] = plane3Origin_[0];
plane3Origin[1] = plane3Origin_[1];
plane3Origin[2] = plane3Origin_[2];
Select(6, (void *)plane3Origin, 3);
Select(ID_plane3Origin, (void *)plane3Origin, 3);
}
void
......@@ -966,7 +1037,7 @@ ClipAttributes::SetPlane1Normal(const double *plane1Normal_)
plane1Normal[0] = plane1Normal_[0];
plane1Normal[1] = plane1Normal_[1];
plane1Normal[2] = plane1Normal_[2];
Select(7, (void *)plane1Normal, 3);
Select(ID_plane1Normal, (void *)plane1Normal, 3);
}
void
......@@ -975,7 +1046,7 @@ ClipAttributes::SetPlane2Normal(const double *plane2Normal_)
plane2Normal[0] = plane2Normal_[0];
plane2Normal[1] = plane2Normal_[1];