Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
OpenFlipper-Free
Plugin-PropertyVis
Commits
0dfe7085
Commit
0dfe7085
authored
Feb 05, 2019
by
Martin Heistermann
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
mat3x3 vis: implementation start
parent
d08962e7
Changes
19
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
686 additions
and
11 deletions
+686
-11
Models/PropertyNameListModel.cc
Models/PropertyNameListModel.cc
+3
-0
Models/PropertyNameListModel.hh
Models/PropertyNameListModel.hh
+2
-1
OpenVolumeMesh/OVMPropertyModelT.hh
OpenVolumeMesh/OVMPropertyModelT.hh
+8
-2
OpenVolumeMesh/OVMPropertyModelT_impl.hh
OpenVolumeMesh/OVMPropertyModelT_impl.hh
+20
-0
OpenVolumeMesh/OVMPropertyVisualizerMatrix3x3.hh
OpenVolumeMesh/OVMPropertyVisualizerMatrix3x3.hh
+85
-0
OpenVolumeMesh/OVMPropertyVisualizerMatrix3x3_impl.hh
OpenVolumeMesh/OVMPropertyVisualizerMatrix3x3_impl.hh
+113
-0
PropertyVisualizer/PropertyVisualizer.cc
PropertyVisualizer/PropertyVisualizer.cc
+9
-0
PropertyVisualizer/PropertyVisualizer.hh
PropertyVisualizer/PropertyVisualizer.hh
+1
-0
Widgets/BooleanWidget.hh
Widgets/BooleanWidget.hh
+1
-1
Widgets/DoubleWidget.hh
Widgets/DoubleWidget.hh
+1
-1
Widgets/IntegerWidget.hh
Widgets/IntegerWidget.hh
+1
-1
Widgets/LoadSaveWidget.hh
Widgets/LoadSaveWidget.hh
+1
-1
Widgets/Matrix3x3Widget.cc
Widgets/Matrix3x3Widget.cc
+60
-0
Widgets/Matrix3x3Widget.hh
Widgets/Matrix3x3Widget.hh
+65
-0
Widgets/Matrix3x3Widget.ui
Widgets/Matrix3x3Widget.ui
+312
-0
Widgets/PickWidget.hh
Widgets/PickWidget.hh
+1
-1
Widgets/SkinWeightsWidget.hh
Widgets/SkinWeightsWidget.hh
+1
-1
Widgets/VectorFieldDifferenceWidget.hh
Widgets/VectorFieldDifferenceWidget.hh
+1
-1
Widgets/VectorWidget.hh
Widgets/VectorWidget.hh
+1
-1
No files found.
Models/PropertyNameListModel.cc
View file @
0dfe7085
...
...
@@ -45,6 +45,7 @@
#include <OpenMesh/Core/Utils/Property.hh>
#include <ACG/Math/VectorT.hh>
#include <ACG/Math/Matrix3x3T.hh>
#include <iostream>
...
...
@@ -64,6 +65,8 @@ const PropertyNameListModel::TypeInfoWrapper PropertyNameListModel::proptype_Vec
PropertyNameListModel
::
TypeInfoWrapper
(
typeid
(
OpenMesh
::
PropertyT
<
ACG
::
Vec2d
>
),
"Vec2d"
);
const
PropertyNameListModel
::
TypeInfoWrapper
PropertyNameListModel
::
proptype_Vec2f
=
PropertyNameListModel
::
TypeInfoWrapper
(
typeid
(
OpenMesh
::
PropertyT
<
ACG
::
Vec2f
>
),
"Vec2f"
);
const
PropertyNameListModel
::
TypeInfoWrapper
PropertyNameListModel
::
proptype_Matrix3x3d
=
PropertyNameListModel
::
TypeInfoWrapper
(
typeid
(
OpenMesh
::
PropertyT
<
ACG
::
Matrix3x3d
>
),
"Matrix3x3d"
);
#ifdef ENABLE_SKELETON_SUPPORT
#include <ObjectTypes/Skeleton/BaseSkin.hh>
...
...
Models/PropertyNameListModel.hh
View file @
0dfe7085
...
...
@@ -66,7 +66,7 @@ class PropertyNameListModel: public QAbstractListModel {
class
TypeInfoWrapper
{
public:
TypeInfoWrapper
(
const
std
::
type_info
&
ti
,
const
char
*
friendlyName
)
:
ti
(
&
ti
),
friendlyName
(
friendlyName
)
{}
TypeInfoWrapper
(
const
std
::
type_info
&
ti
)
:
ti
(
&
ti
),
friendlyName
(
""
)
{}
explicit
TypeInfoWrapper
(
const
std
::
type_info
&
ti
)
:
ti
(
&
ti
),
friendlyName
(
""
)
{}
operator
const
std
::
type_info
*
()
const
{
return
ti
;
}
operator
const
std
::
type_info
&
()
const
{
return
*
ti
;
}
...
...
@@ -215,6 +215,7 @@ class PropertyNameListModel: public QAbstractListModel {
static
const
TypeInfoWrapper
proptype_Vec3f
;
static
const
TypeInfoWrapper
proptype_Vec2d
;
static
const
TypeInfoWrapper
proptype_Vec2f
;
static
const
TypeInfoWrapper
proptype_Matrix3x3d
;
static
const
TypeInfoWrapper
proptype_SkinWeights
;
private:
...
...
OpenVolumeMesh/OVMPropertyModelT.hh
View file @
0dfe7085
...
...
@@ -48,6 +48,7 @@
#include "OVMPropertyVisualizerBoolean.hh"
#include "OVMPropertyVisualizerDouble.hh"
#include "OVMPropertyVisualizerInteger.hh"
#include "OVMPropertyVisualizerMatrix3x3.hh"
#include "OVMPropertyVisualizerVector.hh"
#include "OVMPropertyVisualizerVectorFieldDifference.hh"
...
...
@@ -104,6 +105,8 @@ public:
static
bool
isVec3fType
(
const
TypeInfoWrapper
&
typeInfo
);
static
bool
isVectorType
(
const
PropertyInfo
&
propInfo
);
static
bool
isVectorType
(
const
TypeInfoWrapper
&
typeInfo
);
static
bool
isMatrix3x3Type
(
const
PropertyInfo
&
propInfo
);
static
bool
isMatrix3x3Type
(
const
TypeInfoWrapper
&
typeInfo
);
#define DECLARE_PROPTYPES(primitive) \
static const TypeInfoWrapper proptype_##primitive##_bool; \
...
...
@@ -111,7 +114,8 @@ public:
static const TypeInfoWrapper proptype_##primitive##_uint; \
static const TypeInfoWrapper proptype_##primitive##_double; \
static const TypeInfoWrapper proptype_##primitive##_Vec3d; \
static const TypeInfoWrapper proptype_##primitive##_Vec3f;
static const TypeInfoWrapper proptype_##primitive##_Vec3f; \
static const TypeInfoWrapper proptype_##primitive##_Matrix3x3d;
DECLARE_PROPTYPES
(
Cell
)
DECLARE_PROPTYPES
(
Face
)
...
...
@@ -206,7 +210,9 @@ template <typename T> const TypeInfoWrapper OVMPropertyModel<T>::proptype_##prim
template <typename T> const TypeInfoWrapper OVMPropertyModel<T>::proptype_##primitive##_Vec3d \
= TypeInfoWrapper(typeid(OpenVolumeMesh::primitive##PropertyT<ACG::Vec3d>), "Vec3d"); \
template <typename T> const TypeInfoWrapper OVMPropertyModel<T>::proptype_##primitive##_Vec3f \
= TypeInfoWrapper(typeid(OpenVolumeMesh::primitive##PropertyT<ACG::Vec3f>), "Vec3f");
= TypeInfoWrapper(typeid(OpenVolumeMesh::primitive##PropertyT<ACG::Vec3f>), "Vec3f"); \
template <typename T> const TypeInfoWrapper OVMPropertyModel<T>::proptype_##primitive##_Matrix3x3d \
= TypeInfoWrapper(typeid(OpenVolumeMesh::primitive##PropertyT<ACG::Matrix3x3d>), "Matrix3x3d");
INITIALIZE_PROPTYPES
(
Cell
)
INITIALIZE_PROPTYPES
(
Face
)
...
...
OpenVolumeMesh/OVMPropertyModelT_impl.hh
View file @
0dfe7085
...
...
@@ -646,6 +646,23 @@ bool OVMPropertyModel<MeshT>::isVectorType(const TypeInfoWrapper& typeInfo)
return
isVec3fType
(
typeInfo
)
||
isVec3dType
(
typeInfo
);
}
template
<
typename
MeshT
>
bool
OVMPropertyModel
<
MeshT
>::
isMatrix3x3Type
(
const
PropertyInfo
&
propInfo
)
{
return
isMatrix3x3Type
(
propInfo
.
typeinfo
());
}
template
<
typename
MeshT
>
bool
OVMPropertyModel
<
MeshT
>::
isMatrix3x3Type
(
const
TypeInfoWrapper
&
typeInfo
)
{
return
typeInfo
==
proptype_Cell_Matrix3x3d
||
typeInfo
==
proptype_Face_Matrix3x3d
||
typeInfo
==
proptype_HalfFace_Matrix3x3d
||
typeInfo
==
proptype_Edge_Matrix3x3d
||
typeInfo
==
proptype_HalfEdge_Matrix3x3d
||
typeInfo
==
proptype_Vertex_Matrix3x3d
;
}
template
<
typename
MeshT
>
bool
OVMPropertyModel
<
MeshT
>::
isEntityType
(
const
TypeInfoWrapper
&
typeInfo
,
PropertyInfo
::
ENTITY_FILTER
entity_type
)
const
{
...
...
@@ -732,6 +749,8 @@ void OVMPropertyModel<MeshT>::addPropertyVisualizer(OpenVolumeMesh::BaseProperty
propertyVisualizers
.
push_back
(
new
OVMPropertyVisualizerDouble
<
MeshT
>
(
mesh
,
objectID_
,
propInfo
));
else
if
(
isVectorType
(
propInfo
))
propertyVisualizers
.
push_back
(
new
OVMPropertyVisualizerVector
<
MeshT
>
(
mesh
,
objectID_
,
propInfo
));
else
if
(
isMatrix3x3Type
(
propInfo
))
propertyVisualizers
.
push_back
(
new
OVMPropertyVisualizerMatrix3x3
<
MeshT
>
(
mesh
,
objectID_
,
propInfo
));
connectLogs
(
propertyVisualizers
.
back
());
}
...
...
@@ -936,6 +955,7 @@ supportedPropertyTypes.insert(proptype_##primitive##_uint); \
supportedPropertyTypes.insert(proptype_##primitive##_double); \
supportedPropertyTypes.insert(proptype_##primitive##_Vec3d); \
supportedPropertyTypes.insert(proptype_##primitive##_Vec3f); \
supportedPropertyTypes.insert(proptype_##primitive##_Matrix3x3d); \
INSERT_PROPTYPES
(
Cell
)
INSERT_PROPTYPES
(
Face
)
...
...
OpenVolumeMesh/OVMPropertyVisualizerMatrix3x3.hh
0 → 100644
View file @
0dfe7085
/*===========================================================================*\
* *
* 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. *
* *
\*===========================================================================*/
#pragma once
#include "OVMPropertyVisualizer.hh"
#include <ACG/Scenegraph/LineNode.hh>
#include <OpenFlipper/BasePlugin/PluginFunctions.hh>
#include <OpenVolumeMesh/Core/BaseEntities.hh>
#include <OpenVolumeMesh/Core/BaseProperty.hh>
#include "Widgets/Matrix3x3Widget.hh"
#include <iostream>
template
<
typename
MeshT
>
class
OVMPropertyVisualizerMatrix3x3
:
public
OVMPropertyVisualizer
<
MeshT
>
{
public:
OVMPropertyVisualizerMatrix3x3
(
MeshT
*
_mesh
,
int
objectID
,
PropertyInfo
_propertyInfo
);
virtual
~
OVMPropertyVisualizerMatrix3x3
(){
clear
();
}
void
clear
()
override
;
protected:
void
duplicateProperty
()
override
;
void
visualizeFaceProp
(
bool
_setDrawMode
=
true
)
override
;
void
visualizeEdgeProp
(
bool
_setDrawMode
=
true
)
override
;
void
visualizeHalfedgeProp
(
bool
_setDrawMode
=
true
)
override
;
void
visualizeVertexProp
(
bool
_setDrawMode
=
true
)
override
;
void
visualizeCellProp
(
bool
_setDrawMode
=
true
)
override
;
void
visualizeHalffaceProp
(
bool
_setDrawMode
=
true
)
override
;
QString
getPropertyText
(
unsigned
int
index
)
override
;
ACG
::
SceneGraph
::
LineNode
*
lineNode
;
};
#if defined(INCLUDE_TEMPLATES) && !defined(OVM_PROPERTY_VISUALIZER_MAT3X3_CC)
#include "OVMPropertyVisualizerMatrix3x3T.cc"
#endif
OpenVolumeMesh/OVMPropertyVisualizerMatrix3x3_impl.hh
0 → 100644
View file @
0dfe7085
/*===========================================================================*\
* *
* 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. *
* *
\*===========================================================================*/
#define OVM_PROPERTY_VISUALIZER_MAT3X3_CC
#include <ACG/Utils/ColorConversion.hh>
#include "OVMPropertyVisualizerMatrix3x3.hh"
template
<
typename
MeshT
>
OVMPropertyVisualizerMatrix3x3
<
MeshT
>::
OVMPropertyVisualizerMatrix3x3
(
MeshT
*
_mesh
,
int
objectID
,
PropertyInfo
_propertyInfo
)
:
OVMPropertyVisualizer
<
MeshT
>
(
_mesh
,
objectID
,
_propertyInfo
)
{
if
(
PropertyVisualizer
::
widget
)
delete
PropertyVisualizer
::
widget
;
Matrix3x3Widget
*
w
=
new
Matrix3x3Widget
();
PropertyVisualizer
::
widget
=
w
;
BaseObjectData
*
bod
;
PluginFunctions
::
getObject
(
objectID
,
bod
);
lineNode
=
new
ACG
::
SceneGraph
::
LineNode
(
ACG
::
SceneGraph
::
LineNode
::
LineSegmentsMode
,
bod
->
baseNode
());
this
->
connect
(
w
->
lineWidth
,
QOverload
<
double
>::
of
(
&
QDoubleSpinBox
::
valueChanged
),
[
this
](
double
value
)
{
lineNode
->
set_line_width
(
value
);});
}
template
<
typename
MeshT
>
void
OVMPropertyVisualizerMatrix3x3
<
MeshT
>::
clear
()
{
lineNode
->
clear
();
OVMPropertyVisualizer
<
MeshT
>::
clear
();
}
template
<
typename
MeshT
>
void
OVMPropertyVisualizerMatrix3x3
<
MeshT
>::
duplicateProperty
()
{
OVMPropertyVisualizer
<
MeshT
>::
template
duplicateProperty_stage1
<
ACG
::
Matrix3x3d
>();
}
template
<
typename
MeshT
>
void
OVMPropertyVisualizerMatrix3x3
<
MeshT
>::
visualizeCellProp
(
bool
_setDrawMode
)
{
}
template
<
typename
MeshT
>
void
OVMPropertyVisualizerMatrix3x3
<
MeshT
>::
visualizeFaceProp
(
bool
_setDrawMode
)
{}
template
<
typename
MeshT
>
void
OVMPropertyVisualizerMatrix3x3
<
MeshT
>::
visualizeHalffaceProp
(
bool
_setDrawMode
)
{}
template
<
typename
MeshT
>
void
OVMPropertyVisualizerMatrix3x3
<
MeshT
>::
visualizeEdgeProp
(
bool
_setDrawMode
)
{
}
template
<
typename
MeshT
>
void
OVMPropertyVisualizerMatrix3x3
<
MeshT
>::
visualizeHalfedgeProp
(
bool
_setDrawMode
)
{
}
template
<
typename
MeshT
>
void
OVMPropertyVisualizerMatrix3x3
<
MeshT
>::
visualizeVertexProp
(
bool
_setDrawMode
)
{}
template
<
typename
MeshT
>
QString
OVMPropertyVisualizerMatrix3x3
<
MeshT
>::
getPropertyText
(
unsigned
int
index
)
{
return
OVMPropertyVisualizer
<
MeshT
>::
template
getPropertyText_
<
ACG
::
Matrix3x3d
>(
index
);
}
PropertyVisualizer/PropertyVisualizer.cc
View file @
0dfe7085
...
...
@@ -42,6 +42,7 @@
#include "PropertyVisualizer.hh"
#include "ACG/Math/Matrix3x3T.hh"
/*! \brief Visualizes the property
*
...
...
@@ -107,6 +108,14 @@ QString PropertyVisualizer::toStr(OpenMesh::Vec2f v)
return
QObject
::
tr
(
"∥(%1, %2)∥ = %3"
).
arg
(
v
[
0
]).
arg
(
v
[
1
]).
arg
(
v
.
norm
());
}
QString
PropertyVisualizer
::
toStr
(
const
ACG
::
Matrix3x3d
&
v
)
{
return
QString
(
"(%1, %2, %3); (%4, %5, %6); (%7, %8, %9) "
)
.
arg
(
v
(
0
,
0
)).
arg
(
v
(
0
,
1
)).
arg
(
v
(
0
,
2
))
.
arg
(
v
(
1
,
0
)).
arg
(
v
(
1
,
1
)).
arg
(
v
(
1
,
2
))
.
arg
(
v
(
2
,
0
)).
arg
(
v
(
2
,
1
)).
arg
(
v
(
2
,
2
));
}
#ifdef ENABLE_SKELETON_SUPPORT
QString
PropertyVisualizer
::
toStr
(
BaseSkin
::
SkinWeights
sw
)
{
...
...
PropertyVisualizer/PropertyVisualizer.hh
View file @
0dfe7085
...
...
@@ -161,6 +161,7 @@ public:
static
QString
toStr
(
OpenMesh
::
Vec3d
v
);
static
QString
toStr
(
OpenMesh
::
Vec2d
v
);
static
QString
toStr
(
OpenMesh
::
Vec2f
v
);
static
QString
toStr
(
const
ACG
::
Matrix3x3d
&
v
);
#ifdef ENABLE_SKELETON_SUPPORT
static
QString
toStr
(
BaseSkin
::
SkinWeights
sw
);
#endif
...
...
Widgets/BooleanWidget.hh
View file @
0dfe7085
...
...
@@ -48,7 +48,7 @@ class BooleanWidget : public QWidget, public Ui::BooleanWidget
Q_OBJECT
public:
explicit
BooleanWidget
(
QWidget
*
parent
=
0
);
explicit
BooleanWidget
(
QWidget
*
parent
=
nullptr
);
signals:
void
widgetShown
();
...
...
Widgets/DoubleWidget.hh
View file @
0dfe7085
...
...
@@ -51,7 +51,7 @@ class DoubleWidget : public QWidget, public Ui::DoubleWidget
Q_OBJECT
public:
explicit
DoubleWidget
(
QWidget
*
parent
=
0
);
explicit
DoubleWidget
(
QWidget
*
parent
=
nullptr
);
/**
* @brief Builds a color coder according to UI settings
...
...
Widgets/IntegerWidget.hh
View file @
0dfe7085
...
...
@@ -53,7 +53,7 @@ class IntegerWidget : public QWidget, public Ui::IntegerWidget
Q_OBJECT
public:
explicit
IntegerWidget
(
QWidget
*
parent
=
0
);
explicit
IntegerWidget
(
QWidget
*
parent
=
nullptr
);
/**
* @brief Builds a color coder according to UI settings
...
...
Widgets/LoadSaveWidget.hh
View file @
0dfe7085
...
...
@@ -47,7 +47,7 @@ class LoadSaveWidget : public QWidget, public Ui::LoadSaveWidget
Q_OBJECT
public:
explicit
LoadSaveWidget
(
QWidget
*
parent
=
0
);
explicit
LoadSaveWidget
(
QWidget
*
parent
=
nullptr
);
signals:
void
widgetShown
();
...
...
Widgets/Matrix3x3Widget.cc
0 → 100644
View file @
0dfe7085
/*===========================================================================*\
* *
* 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 "Matrix3x3Widget.hh"
#include "ACG/Utils/ColorCoder.hh"
#include "ACG/Utils/LinearTwoColorCoder.hh"
#include <ACG/Utils/ColorConversion.hh>
Matrix3x3Widget
::
Matrix3x3Widget
(
QWidget
*
parent
)
:
QWidget
(
parent
)
{
setupUi
(
this
);
}
void
Matrix3x3Widget
::
showEvent
(
QShowEvent
*
/*event*/
)
{
emit
widgetShown
();
}
Widgets/Matrix3x3Widget.hh
0 → 100644
View file @
0dfe7085
/*===========================================================================*\
* *
* 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. *
* *
\*===========================================================================*/
#pragma once
#include "ui_Matrix3x3Widget.h"
#include "ACG/Utils/IColorCoder.hh"
#include <ACG/Utils/SmartPointer.hh>
class
Matrix3x3Widget
:
public
QWidget
,
public
Ui
::
Mat3x3Widget
{
Q_OBJECT
public:
explicit
Matrix3x3Widget
(
QWidget
*
parent
=
nullptr
);
signals:
void
widgetShown
();
protected:
void
showEvent
(
QShowEvent
*
/*event*/
);
};
Widgets/Matrix3x3Widget.ui
0 → 100644
View file @
0dfe7085
<?xml version="1.0" encoding="UTF-8"?>
<ui
version=
"4.0"
>
<class>
Mat3x3Widget
</class>
<widget
class=
"QWidget"
name=
"Mat3x3Widget"
>
<property
name=
"geometry"
>
<rect>
<x>
0
</x>
<y>
0
</y>
<width>
352
</width>
<height>
270
</height>
</rect>
</property>
<property
name=
"windowTitle"
>
<string>
Property Visualization
</string>
</property>
<property
name=
"toolTip"
>
<string>
Vectors are normalized and then transformed to the [0,1] range
</string>
</property>
<layout
class=
"QVBoxLayout"
name=
"verticalLayout_7"
>
<property
name=
"leftMargin"
>
<number>
0
</number>
</property>
<property
name=
"topMargin"
>
<number>
0
</number>
</property>
<property
name=
"rightMargin"
>
<number>
0
</number>
</property>
<property
name=
"bottomMargin"
>
<number>
0
</number>
</property>
<item>
<widget
class=
"QGroupBox"
name=
"paramVector"
>
<property
name=
"title"
>
<string>
3x3 Matrix Parameters
</string>
</property>
<layout
class=
"QVBoxLayout"
name=
"verticalLayout"
>
<item>
<widget
class=
"QWidget"
name=
"vector_edgeColors_widget"
native=
"true"
>
<property
name=
"enabled"
>
<bool>
false
</bool>
</property>
<property
name=
"visible"
>
<bool>
false
</bool>
</property>
<layout
class=
"QHBoxLayout"
name=
"horizontalLayout_15"
>
<property
name=
"topMargin"
>
<number>
0
</number>
</property>
<property
name=
"rightMargin"
>
<number>
0
</number>
</property>
<property
name=
"bottomMargin"
>
<number>
0
</number>
</property>
<item>
<widget
class=
"QDoubleSpinBox"
name=
"vectors_edges_alpha"
>
<property
name=
"sizePolicy"
>
<sizepolicy
hsizetype=
"MinimumExpanding"
vsizetype=
"Fixed"
>
<horstretch>
0
</horstretch>
<verstretch>
0
</verstretch>
</sizepolicy>
</property>
<property
name=
"prefix"
>
<string>
α =
</string>
</property>
<property
name=
"decimals"
>
<number>
4
</number>
</property>
<property
name=
"maximum"
>
<double>
1.000000000000000
</double>
</property>
<property
name=
"singleStep"
>
<double>
0.100000000000000
</double>
</property>
<property
name=
"value"
>
<double>
0.400000000000000
</double>
</property>
</widget>
</item>
<item>
<widget
class=
"QLabel"
name=
"label_4"
>
<property
name=
"text"
>
<string>
≤
</string>
</property>
</widget>
</item>
<item>
<widget
class=
"QDoubleSpinBox"
name=
"vectors_edges_beta"
>
<property
name=
"sizePolicy"
>
<sizepolicy
hsizetype=
"MinimumExpanding"
vsizetype=
"Fixed"
>
<horstretch>
0
</horstretch>
<verstretch>
0
</verstretch>
</sizepolicy>
</property>
<property
name=
"prefix"
>
<string>
β =
</string>