Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
OpenFlipper-Free
Plugin-PropertyVis
Commits
889d30ce
Commit
889d30ce
authored
Dec 20, 2018
by
Jan Möbius
Browse files
Added missing cc files
parent
72f61323
Changes
24
Hide whitespace changes
Inline
Side-by-side
Models/MultiObjectPropertyModel.hh
View file @
889d30ce
...
...
@@ -47,8 +47,7 @@
* *
\*===========================================================================*/
#ifndef MULTI_OBJECT_PROPERTY_MODEL_H
#define MULTI_OBJECT_PROPERTY_MODEL_H
#pragma once
#include
"PropertyModel.hh"
...
...
@@ -114,4 +113,3 @@ private:
QWidget
*
widget
;
};
#endif
/* MULTI_OBJECT_PROPERTY_MODEL_H */
Models/ObjectListItemModel.hh
View file @
889d30ce
...
...
@@ -47,8 +47,7 @@
* *
\*===========================================================================*/
#ifndef OBJECTLISTITEMMODEL_HH_
#define OBJECTLISTITEMMODEL_HH_
#pragma once
#include
<QAbstractItemModel>
...
...
@@ -92,4 +91,4 @@ class ObjectListItemModel: public QAbstractListModel {
std
::
vector
<
ObjectInfo
>
objects_
;
};
#endif
/* OBJECTLISTITEMMODEL_HH_ */
Models/PropertyModel.hh
View file @
889d30ce
...
...
@@ -47,8 +47,7 @@
* *
\*===========================================================================*/
#ifndef PROPERTY_MODEL_H
#define PROPERTY_MODEL_H
#pragma once
#include
"Utils.hh"
#include
<QAbstractListModel>
...
...
@@ -111,4 +110,4 @@ public:
QModelIndex
indexFromPlainPropName
(
const
QString
&
propName
)
const
;
};
#endif
/* PROPERTY_MODEL_H */
Models/PropertyModelFactory.hh
View file @
889d30ce
...
...
@@ -47,8 +47,7 @@
* *
\*===========================================================================*/
#ifndef PROPERTY_MODEL_FACTORY_HH
#define PROPERTY_MODEL_FACTORY_HH
#pragma once
#include
<OpenMesh/Core/Utils/SingletonT.hh>
...
...
@@ -100,4 +99,3 @@ private:
typedef
OpenMesh
::
SingletonT
<
__PropertyModelFactory
>
PropertyModelFactory
;
#endif
/* PROPERTY_VISUALISER_FACTORY_HH */
Models/PropertyNameListModel.hh
View file @
889d30ce
...
...
@@ -47,8 +47,7 @@
* *
\*===========================================================================*/
#ifndef PROPERTYNAMELISTMODEL_HH_
#define PROPERTYNAMELISTMODEL_HH_
#pragma once
#include
<OpenMesh/Core/Utils/BaseProperty.hh>
...
...
@@ -230,4 +229,3 @@ class PropertyNameListModel: public QAbstractListModel {
static
const
TYPE_INFO_SET
sane_prop_types
;
};
#endif
/* PROPERTYNAMELISTMODEL_HH_ */
Models/SingleObjectPropertyModel.hh
View file @
889d30ce
...
...
@@ -47,8 +47,7 @@
* *
\*===========================================================================*/
#ifndef SINGLE_OBJECT_PROPERTY_MODEL_H
#define SINGLE_OBJECT_PROPERTY_MODEL_H
#pragma once
#include
"Models/PropertyModel.hh"
#include
"PropertyVisualizer/PropertyVisualizer.hh"
...
...
@@ -192,4 +191,4 @@ protected:
std
::
vector
<
unsigned
int
>
currentlyVisualizedIndices
;
};
#endif
/* SINGLE_OBJECT_PROPERTY_MODEL_H */
Toolbars/PropertyVisToolbar.cc
0 → 100644
View file @
889d30ce
/*===========================================================================*\
* *
* OpenFlipper *
* Copyright (c) 2001-2015, RWTH-Aachen University *
* Department of Computer Graphics and Multimedia *
* All rights reserved. *
* www.openflipper.org *
* *
*---------------------------------------------------------------------------*
* This file is part of OpenFlipper. *
*---------------------------------------------------------------------------*
* *
* Redistribution and use in source and binary forms, with or without *
* modification, are permitted provided that the following conditions *
* are met: *
* *
* 1. Redistributions of source code must retain the above copyright notice, *
* this list of conditions and the following disclaimer. *
* *
* 2. Redistributions in binary form must reproduce the above copyright *
* notice, this list of conditions and the following disclaimer in the *
* documentation and/or other materials provided with the distribution. *
* *
* 3. Neither the name of the copyright holder 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 COPYRIGHT HOLDER *
* 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
"PropertyVisToolbar.hh"
PropertyVisToolbar
::
PropertyVisToolbar
(
QWidget
*
parent
)
:
QWidget
(
parent
)
{
setupUi
(
this
);
}
QSize
PropertyVisToolbar
::
minimumSizeHint
()
const
{
QSize
result
=
QWidget
::
minimumSizeHint
();
result
.
setWidth
(
0
);
return
result
;
}
void
PropertyVisToolbar
::
showEvent
(
QShowEvent
*
/*event*/
)
{
emit
widgetShown
();
}
Toolbars/PropertyVisToolbar.hh
View file @
889d30ce
...
...
@@ -39,41 +39,25 @@
* *
\*===========================================================================*/
/*===========================================================================*\
* *
* $Revision$ *
* $LastChangedBy$ *
* $Date$ *
* *
\*===========================================================================*/
#pragma once
#include
"ui_PropertyVisToolbarBase.hh"
#include
<QtWidgets>
class
PropertyVisToolbar
:
public
QWidget
,
public
Ui
::
PropertyVisToolbarBase
{
Q_OBJECT
public:
PropertyVisToolbar
(
QWidget
*
parent
=
0
)
:
QWidget
(
parent
)
{
setupUi
(
this
);
}
PropertyVisToolbar
(
QWidget
*
parent
=
0
);
virtual
QSize
minimumSizeHint
()
const
{
QSize
result
=
QWidget
::
minimumSizeHint
();
result
.
setWidth
(
0
);
return
result
;
}
virtual
QSize
minimumSizeHint
()
const
;
signals:
void
widgetShown
();
protected:
void
showEvent
(
QShowEvent
*
/*event*/
)
{
emit
widgetShown
();
}
void
showEvent
(
QShowEvent
*
/*event*/
);
};
Widgets/BooleanWidget.cc
0 → 100644
View file @
889d30ce
/*===========================================================================*\
* *
* OpenFlipper *
* Copyright (c) 2001-2015, RWTH-Aachen University *
* Department of Computer Graphics and Multimedia *
* All rights reserved. *
* www.openflipper.org *
* *
*---------------------------------------------------------------------------*
* This file is part of OpenFlipper. *
*---------------------------------------------------------------------------*
* *
* Redistribution and use in source and binary forms, with or without *
* modification, are permitted provided that the following conditions *
* are met: *
* *
* 1. Redistributions of source code must retain the above copyright notice, *
* this list of conditions and the following disclaimer. *
* *
* 2. Redistributions in binary form must reproduce the above copyright *
* notice, this list of conditions and the following disclaimer in the *
* documentation and/or other materials provided with the distribution. *
* *
* 3. Neither the name of the copyright holder 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 COPYRIGHT HOLDER *
* 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
"BooleanWidget.hh"
BooleanWidget
::
BooleanWidget
(
QWidget
*
parent
)
:
QWidget
(
parent
)
{
setupUi
(
this
);
}
void
BooleanWidget
::
showEvent
(
QShowEvent
*
/*event*/
)
{
emit
widgetShown
();
}
Widgets/BooleanWidget.hh
View file @
889d30ce
...
...
@@ -39,20 +39,11 @@
* *
\*===========================================================================*/
/*===========================================================================*\
* *
* $Revision$ *
* $LastChangedBy$ *
* $Date$ *
* *
\*===========================================================================*/
#ifndef BOOLEAN_WIDGET_HH
#define BOOLEAN_WIDGET_HH
#pragma once
#include
"ui_BooleanWidget.hh"
#include
<QtWidgets>
#include
<QtWidgets>
class
BooleanWidget
:
public
QWidget
,
public
Ui
::
BooleanWidget
...
...
@@ -60,19 +51,12 @@ class BooleanWidget : public QWidget, public Ui::BooleanWidget
Q_OBJECT
public:
BooleanWidget
(
QWidget
*
parent
=
0
)
:
QWidget
(
parent
)
{
setupUi
(
this
);
}
BooleanWidget
(
QWidget
*
parent
=
0
);
signals:
void
widgetShown
();
protected:
void
showEvent
(
QShowEvent
*
/*event*/
)
{
emit
widgetShown
();
}
void
showEvent
(
QShowEvent
*
/*event*/
);
};
#endif // BOOLEAN_WIDGET_HH
Widgets/DoubleWidget.cc
0 → 100644
View file @
889d30ce
/*===========================================================================*\
* *
* OpenFlipper *
* Copyright (c) 2001-2015, RWTH-Aachen University *
* Department of Computer Graphics and Multimedia *
* All rights reserved. *
* www.openflipper.org *
* *
*---------------------------------------------------------------------------*
* This file is part of OpenFlipper. *
*---------------------------------------------------------------------------*
* *
* Redistribution and use in source and binary forms, with or without *
* modification, are permitted provided that the following conditions *
* are met: *
* *
* 1. Redistributions of source code must retain the above copyright notice, *
* this list of conditions and the following disclaimer. *
* *
* 2. Redistributions in binary form must reproduce the above copyright *
* notice, this list of conditions and the following disclaimer in the *
* documentation and/or other materials provided with the distribution. *
* *
* 3. Neither the name of the copyright holder 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 COPYRIGHT HOLDER *
* 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
"DoubleWidget.hh"
#include
<ACG/Utils/LinearTwoColorCoder.hh>
#include
<ACG/Utils/ColorConversion.hh>
DoubleWidget
::
DoubleWidget
(
QWidget
*
parent
)
:
QWidget
(
parent
)
{
setupUi
(
this
);
}
/**
* @brief Builds a color coder according to UI settings
* @return unique_ptr to an IColorCoder for parameters in [0..1]
*/
std
::
unique_ptr
<
ACG
::
IColorCoder
>
DoubleWidget
::
buildColorCoder
()
{
std
::
unique_ptr
<
ACG
::
IColorCoder
>
cc
;
if
(
doubleColorCoder
->
isChecked
())
{
cc
=
ptr
::
make_unique
<
ACG
::
ColorCoder
>
();
}
else
{
cc
=
ptr
::
make_unique
<
ACG
::
LinearTwoColorCoder
>
(
ACG
::
to_Vec4f
(
doubleMin
->
color
()),
ACG
::
to_Vec4f
(
doubleMax
->
color
()));
}
cc
->
setMapOutsideRangeToAlpha0
(
doubleMapOutsideRange
->
isChecked
());
return
cc
;
}
void
DoubleWidget
::
showEvent
(
QShowEvent
*
/*event*/
)
{
emit
widgetShown
();
}
Widgets/DoubleWidget.hh
View file @
889d30ce
...
...
@@ -39,25 +39,14 @@
* *
\*===========================================================================*/
/*===========================================================================*\
* *
* $Revision$ *
* $LastChangedBy$ *
* $Date$ *
* *
\*===========================================================================*/
#ifndef DOUBLE_WIDGET_HH
#define DOUBLE_WIDGET_HH
#pragma once
#include
"ui_DoubleWidget.hh"
#include
"ACG/Utils/IColorCoder.hh"
#include
"ACG/Utils/LinearTwoColorCoder.hh"
#include
<ACG/Utils/ColorConversion.hh>
#include
<ACG/Utils/IColorCoder.hh>
#include
<ACG/Utils/SmartPointer.hh>
#include
<QtWidgets>
#include
<QtWidgets>
class
DoubleWidget
:
public
QWidget
,
public
Ui
::
DoubleWidget
...
...
@@ -65,37 +54,18 @@ class DoubleWidget : public QWidget, public Ui::DoubleWidget
Q_OBJECT
public:
DoubleWidget
(
QWidget
*
parent
=
0
)
:
QWidget
(
parent
)
{
setupUi
(
this
);
}
DoubleWidget
(
QWidget
*
parent
=
0
);
/**
* @brief Builds a color coder according to UI settings
* @return unique_ptr to an IColorCoder for parameters in [0..1]
*/
std
::
unique_ptr
<
ACG
::
IColorCoder
>
buildColorCoder
()
{
std
::
unique_ptr
<
ACG
::
IColorCoder
>
cc
;
if
(
doubleColorCoder
->
isChecked
())
{
cc
=
ptr
::
make_unique
<
ACG
::
ColorCoder
>
();
}
else
{
cc
=
ptr
::
make_unique
<
ACG
::
LinearTwoColorCoder
>
(
ACG
::
to_Vec4f
(
doubleMin
->
color
()),
ACG
::
to_Vec4f
(
doubleMax
->
color
()));
}
cc
->
setMapOutsideRangeToAlpha0
(
doubleMapOutsideRange
->
isChecked
());
return
cc
;
}
std
::
unique_ptr
<
ACG
::
IColorCoder
>
buildColorCoder
();
signals:
void
widgetShown
();
protected:
void
showEvent
(
QShowEvent
*
/*event*/
)
{
emit
widgetShown
();
}
void
showEvent
(
QShowEvent
*
/*event*/
);
};
#endif // DOUBLE_WIDGET_HH
Widgets/IntegerWidget.cc
0 → 100644
View file @
889d30ce
/*===========================================================================*\
* *
* OpenFlipper *
* Copyright (c) 2001-2015, RWTH-Aachen University *
* Department of Computer Graphics and Multimedia *
* All rights reserved. *
* www.openflipper.org *
* *
*---------------------------------------------------------------------------*
* This file is part of OpenFlipper. *
*---------------------------------------------------------------------------*
* *
* Redistribution and use in source and binary forms, with or without *
* modification, are permitted provided that the following conditions *
* are met: *
* *
* 1. Redistributions of source code must retain the above copyright notice, *
* this list of conditions and the following disclaimer. *
* *
* 2. Redistributions in binary form must reproduce the above copyright *
* notice, this list of conditions and the following disclaimer in the *
* documentation and/or other materials provided with the distribution. *
* *
* 3. Neither the name of the copyright holder 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 COPYRIGHT HOLDER *
* 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
"IntegerWidget.hh"
#include
"ACG/Utils/ColorCoder.hh"
#include
"ACG/Utils/LinearTwoColorCoder.hh"
#include
<ACG/Utils/ColorConversion.hh>
IntegerWidget
::
IntegerWidget
(
QWidget
*
parent
)
:
QWidget
(
parent
)
{
setupUi
(
this
);
}
/**
* @brief Builds a color coder according to UI settings
* @return unique_ptr to an IColorCoder for parameters in [0..1]
*/
std
::
unique_ptr
<
ACG
::
IColorCoder
>
IntegerWidget
::
buildColorCoder
()
{
if
(
intColorCoder
->
isChecked
())
{
return
ptr
::
make_unique
<
ACG
::
ColorCoder
>
();
}
else
{
return
ptr
::
make_unique
<
ACG
::
LinearTwoColorCoder
>
(
ACG
::
to_Vec4f
(
intMin
->
color
()),
ACG
::
to_Vec4f
(
intMax
->
color
()));
}
}
void
IntegerWidget
::
showEvent
(
QShowEvent
*
/*event*/
)
{
emit
widgetShown
();
}
Widgets/IntegerWidget.hh
View file @
889d30ce
...
...
@@ -47,18 +47,14 @@
* *
\*===========================================================================*/
#ifndef INTEGER_WIDGET_HH
#define INTEGER_WIDGET_HH
#pragma once
#include
"ui_IntegerWidget.hh"
#include
"ACG/Utils/IColorCoder.hh"
#include
"ACG/Utils/ColorCoder.hh"
#include
"ACG/Utils/LinearTwoColorCoder.hh"
#include
<ACG/Utils/ColorConversion.hh>
#include
<ACG/Utils/SmartPointer.hh>
#include
<QtWidgets>
#include
<QtWidgets>
class
IntegerWidget
:
public
QWidget
,
public
Ui
::
IntegerWidget
...
...
@@ -66,35 +62,20 @@ class IntegerWidget : public QWidget, public Ui::IntegerWidget
Q_OBJECT
public:
IntegerWidget
(
QWidget
*
parent
=
0
)
:
QWidget
(
parent
)
{
setupUi
(
this
);
}
IntegerWidget
(
QWidget
*
parent
=
0
);
/**
* @brief Builds a color coder according to UI settings
* @return unique_ptr to an IColorCoder for parameters in [0..1]
*/
std
::
unique_ptr
<
ACG
::
IColorCoder
>
buildColorCoder
()
{
if
(
intColorCoder
->
isChecked
())
{
return
ptr
::
make_unique
<
ACG
::
ColorCoder
>
();
}
else
{
return
ptr
::
make_unique
<
ACG
::
LinearTwoColorCoder
>
(
ACG
::
to_Vec4f
(
intMin
->
color
()),
ACG
::
to_Vec4f
(
intMax
->
color
()));
}
}
std
::
unique_ptr
<
ACG
::
IColorCoder
>
buildColorCoder
();
signals:
void
widgetShown
();
protected:
void
showEvent
(
QShowEvent
*
/*event*/
)
{
emit
widgetShown
();
}
void
showEvent
(
QShowEvent
*
/*event*/
);
};
#endif // INTEGER_WIDGET_HH
Widgets/LoadSaveWidget.cc
0 → 100644
View file @
889d30ce
/*===========================================================================*\
* *
* OpenFlipper *
* Copyright (c) 2001-2015, RWTH-Aachen University *
* Department of Computer Graphics and Multimedia *
* All rights reserved. *
* www.openflipper.org *
* *
*---------------------------------------------------------------------------*
* This file is part of OpenFlipper. *
*---------------------------------------------------------------------------*
* *
* Redistribution and use in source and binary forms, with or without *
* modification, are permitted provided that the following conditions *
* are met: *
* *
* 1. Redistributions of source code must retain the above copyright notice, *
* this list of conditions and the following disclaimer. *
* *
* 2. Redistributions in binary form must reproduce the above copyright *
* notice, this list of conditions and the following disclaimer in the *
* documentation and/or other materials provided with the distribution. *
* *
* 3. Neither the name of the copyright holder 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 COPYRIGHT HOLDER *
* 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. *
* *
\*===========================================================================*/