Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
O
opencv
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
opencv
Commits
200b254b
Commit
200b254b
authored
Jul 09, 2013
by
ozantonkal
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
rearrange widget constructors
parent
10d955f1
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
67 additions
and
58 deletions
+67
-58
widget_accessor.hpp
modules/viz/include/opencv2/viz/widget_accessor.hpp
+2
-2
widgets.hpp
modules/viz/include/opencv2/viz/widgets.hpp
+3
-0
simple_widgets.cpp
modules/viz/src/simple_widgets.cpp
+47
-41
viz3d_impl.cpp
modules/viz/src/viz3d_impl.cpp
+4
-4
widget.cpp
modules/viz/src/widget.cpp
+11
-11
No files found.
modules/viz/include/opencv2/viz/widget_accessor.hpp
View file @
200b254b
...
@@ -12,7 +12,7 @@ namespace temp_viz
...
@@ -12,7 +12,7 @@ namespace temp_viz
//It is indended for those users who want to develop own widgets system using VTK library API.
//It is indended for those users who want to develop own widgets system using VTK library API.
struct
CV_EXPORTS
WidgetAccessor
struct
CV_EXPORTS
WidgetAccessor
{
{
static
vtkSmartPointer
<
vtkProp
>
get
Actor
(
const
Widget
&
widget
);
static
vtkSmartPointer
<
vtkProp
>
get
Prop
(
const
Widget
&
widget
);
static
void
set
Vtk
Prop
(
Widget
&
widget
,
vtkSmartPointer
<
vtkProp
>
actor
);
static
void
setProp
(
Widget
&
widget
,
vtkSmartPointer
<
vtkProp
>
actor
);
};
};
}
}
modules/viz/include/opencv2/viz/widgets.hpp
View file @
200b254b
...
@@ -132,6 +132,9 @@ namespace temp_viz
...
@@ -132,6 +132,9 @@ namespace temp_viz
TextWidget
(
const
String
&
text
,
const
Point2i
&
pos
,
int
font_size
=
10
,
const
Color
&
color
=
Color
::
white
());
TextWidget
(
const
String
&
text
,
const
Point2i
&
pos
,
int
font_size
=
10
,
const
Color
&
color
=
Color
::
white
());
TextWidget
(
const
Widget
&
other
)
:
Widget2D
(
other
)
{}
TextWidget
(
const
Widget
&
other
)
:
Widget2D
(
other
)
{}
TextWidget
&
operator
=
(
const
Widget
&
other
);
TextWidget
&
operator
=
(
const
Widget
&
other
);
void
setText
(
const
String
&
text
);
String
getText
()
const
;
};
};
class
CV_EXPORTS
CloudWidget
:
public
Widget3D
class
CV_EXPORTS
CloudWidget
:
public
Widget3D
...
...
modules/viz/src/simple_widgets.cpp
View file @
200b254b
...
@@ -9,8 +9,6 @@ namespace temp_viz
...
@@ -9,8 +9,6 @@ namespace temp_viz
/// line widget implementation
/// line widget implementation
temp_viz
::
LineWidget
::
LineWidget
(
const
Point3f
&
pt1
,
const
Point3f
&
pt2
,
const
Color
&
color
)
temp_viz
::
LineWidget
::
LineWidget
(
const
Point3f
&
pt1
,
const
Point3f
&
pt2
,
const
Color
&
color
)
{
{
WidgetAccessor
::
setVtkProp
(
*
this
,
vtkSmartPointer
<
vtkLODActor
>::
New
());
vtkSmartPointer
<
vtkLineSource
>
line
=
vtkSmartPointer
<
vtkLineSource
>::
New
();
vtkSmartPointer
<
vtkLineSource
>
line
=
vtkSmartPointer
<
vtkLineSource
>::
New
();
line
->
SetPoint1
(
pt1
.
x
,
pt1
.
y
,
pt1
.
z
);
line
->
SetPoint1
(
pt1
.
x
,
pt1
.
y
,
pt1
.
z
);
line
->
SetPoint2
(
pt2
.
x
,
pt2
.
y
,
pt2
.
z
);
line
->
SetPoint2
(
pt2
.
x
,
pt2
.
y
,
pt2
.
z
);
...
@@ -19,9 +17,10 @@ temp_viz::LineWidget::LineWidget(const Point3f &pt1, const Point3f &pt2, const C
...
@@ -19,9 +17,10 @@ temp_viz::LineWidget::LineWidget(const Point3f &pt1, const Point3f &pt2, const C
vtkSmartPointer
<
vtkDataSetMapper
>
mapper
=
vtkSmartPointer
<
vtkDataSetMapper
>::
New
();
vtkSmartPointer
<
vtkDataSetMapper
>
mapper
=
vtkSmartPointer
<
vtkDataSetMapper
>::
New
();
mapper
->
SetInput
(
line
->
GetOutput
());
mapper
->
SetInput
(
line
->
GetOutput
());
vtk
LODActor
*
actor
=
vtkLODActor
::
SafeDownCast
(
WidgetAccessor
::
getActor
(
*
this
)
);
vtk
SmartPointer
<
vtkLODActor
>
actor
=
vtkSmartPointer
<
vtkLODActor
>::
New
(
);
actor
->
SetMapper
(
mapper
);
actor
->
SetMapper
(
mapper
);
WidgetAccessor
::
setProp
(
*
this
,
actor
);
setColor
(
color
);
setColor
(
color
);
}
}
...
@@ -33,13 +32,15 @@ temp_viz::LineWidget& temp_viz::LineWidget::operator=(const Widget &other)
...
@@ -33,13 +32,15 @@ temp_viz::LineWidget& temp_viz::LineWidget::operator=(const Widget &other)
void
temp_viz
::
LineWidget
::
setLineWidth
(
float
line_width
)
void
temp_viz
::
LineWidget
::
setLineWidth
(
float
line_width
)
{
{
vtkLODActor
*
actor
=
vtkLODActor
::
SafeDownCast
(
WidgetAccessor
::
getActor
(
*
this
));
vtkLODActor
*
actor
=
vtkLODActor
::
SafeDownCast
(
WidgetAccessor
::
getProp
(
*
this
));
CV_Assert
(
actor
);
actor
->
GetProperty
()
->
SetLineWidth
(
line_width
);
actor
->
GetProperty
()
->
SetLineWidth
(
line_width
);
}
}
float
temp_viz
::
LineWidget
::
getLineWidth
()
float
temp_viz
::
LineWidget
::
getLineWidth
()
{
{
vtkLODActor
*
actor
=
vtkLODActor
::
SafeDownCast
(
WidgetAccessor
::
getActor
(
*
this
));
vtkLODActor
*
actor
=
vtkLODActor
::
SafeDownCast
(
WidgetAccessor
::
getProp
(
*
this
));
CV_Assert
(
actor
);
return
actor
->
GetProperty
()
->
GetLineWidth
();
return
actor
->
GetProperty
()
->
GetLineWidth
();
}
}
...
@@ -48,8 +49,6 @@ float temp_viz::LineWidget::getLineWidth()
...
@@ -48,8 +49,6 @@ float temp_viz::LineWidget::getLineWidth()
temp_viz
::
PlaneWidget
::
PlaneWidget
(
const
Vec4f
&
coefs
,
double
size
,
const
Color
&
color
)
temp_viz
::
PlaneWidget
::
PlaneWidget
(
const
Vec4f
&
coefs
,
double
size
,
const
Color
&
color
)
{
{
WidgetAccessor
::
setVtkProp
(
*
this
,
vtkSmartPointer
<
vtkLODActor
>::
New
());
vtkSmartPointer
<
vtkPlaneSource
>
plane
=
vtkSmartPointer
<
vtkPlaneSource
>::
New
();
vtkSmartPointer
<
vtkPlaneSource
>
plane
=
vtkSmartPointer
<
vtkPlaneSource
>::
New
();
plane
->
SetNormal
(
coefs
[
0
],
coefs
[
1
],
coefs
[
2
]);
plane
->
SetNormal
(
coefs
[
0
],
coefs
[
1
],
coefs
[
2
]);
double
norm
=
cv
::
norm
(
cv
::
Vec3f
(
coefs
.
val
));
double
norm
=
cv
::
norm
(
cv
::
Vec3f
(
coefs
.
val
));
...
@@ -58,17 +57,16 @@ temp_viz::PlaneWidget::PlaneWidget(const Vec4f& coefs, double size, const Color
...
@@ -58,17 +57,16 @@ temp_viz::PlaneWidget::PlaneWidget(const Vec4f& coefs, double size, const Color
vtkSmartPointer
<
vtkDataSetMapper
>
mapper
=
vtkSmartPointer
<
vtkDataSetMapper
>::
New
();
vtkSmartPointer
<
vtkDataSetMapper
>
mapper
=
vtkSmartPointer
<
vtkDataSetMapper
>::
New
();
mapper
->
SetInput
(
plane
->
GetOutput
());
mapper
->
SetInput
(
plane
->
GetOutput
());
vtk
LODActor
*
actor
=
vtkLODActor
::
SafeDownCast
(
WidgetAccessor
::
getActor
(
*
this
)
);
vtk
SmartPointer
<
vtkLODActor
>
actor
=
vtkSmartPointer
<
vtkLODActor
>::
New
(
);
actor
->
SetMapper
(
mapper
);
actor
->
SetMapper
(
mapper
);
actor
->
SetScale
(
size
);
actor
->
SetScale
(
size
);
WidgetAccessor
::
setProp
(
*
this
,
actor
);
setColor
(
color
);
setColor
(
color
);
}
}
temp_viz
::
PlaneWidget
::
PlaneWidget
(
const
Vec4f
&
coefs
,
const
Point3f
&
pt
,
double
size
,
const
Color
&
color
)
temp_viz
::
PlaneWidget
::
PlaneWidget
(
const
Vec4f
&
coefs
,
const
Point3f
&
pt
,
double
size
,
const
Color
&
color
)
{
{
WidgetAccessor
::
setVtkProp
(
*
this
,
vtkSmartPointer
<
vtkLODActor
>::
New
());
vtkSmartPointer
<
vtkPlaneSource
>
plane
=
vtkSmartPointer
<
vtkPlaneSource
>::
New
();
vtkSmartPointer
<
vtkPlaneSource
>
plane
=
vtkSmartPointer
<
vtkPlaneSource
>::
New
();
cv
::
Point3f
coefs3
(
coefs
[
0
],
coefs
[
1
],
coefs
[
2
]);
cv
::
Point3f
coefs3
(
coefs
[
0
],
coefs
[
1
],
coefs
[
2
]);
double
norm_sqr
=
1.0
/
coefs3
.
dot
(
coefs3
);
double
norm_sqr
=
1.0
/
coefs3
.
dot
(
coefs3
);
...
@@ -81,10 +79,11 @@ temp_viz::PlaneWidget::PlaneWidget(const Vec4f& coefs, const Point3f& pt, double
...
@@ -81,10 +79,11 @@ temp_viz::PlaneWidget::PlaneWidget(const Vec4f& coefs, const Point3f& pt, double
vtkSmartPointer
<
vtkDataSetMapper
>
mapper
=
vtkSmartPointer
<
vtkDataSetMapper
>::
New
();
vtkSmartPointer
<
vtkDataSetMapper
>
mapper
=
vtkSmartPointer
<
vtkDataSetMapper
>::
New
();
mapper
->
SetInput
(
plane
->
GetOutput
());
mapper
->
SetInput
(
plane
->
GetOutput
());
vtk
LODActor
*
actor
=
vtkLODActor
::
SafeDownCast
(
WidgetAccessor
::
getActor
(
*
this
)
);
vtk
SmartPointer
<
vtkLODActor
>
actor
=
vtkSmartPointer
<
vtkLODActor
>::
New
(
);
actor
->
SetMapper
(
mapper
);
actor
->
SetMapper
(
mapper
);
actor
->
SetScale
(
size
);
actor
->
SetScale
(
size
);
WidgetAccessor
::
setProp
(
*
this
,
actor
);
setColor
(
color
);
setColor
(
color
);
}
}
...
@@ -99,8 +98,6 @@ temp_viz::PlaneWidget& temp_viz::PlaneWidget::operator=(const Widget& other)
...
@@ -99,8 +98,6 @@ temp_viz::PlaneWidget& temp_viz::PlaneWidget::operator=(const Widget& other)
temp_viz
::
SphereWidget
::
SphereWidget
(
const
cv
::
Point3f
&
center
,
float
radius
,
int
sphere_resolution
,
const
Color
&
color
)
temp_viz
::
SphereWidget
::
SphereWidget
(
const
cv
::
Point3f
&
center
,
float
radius
,
int
sphere_resolution
,
const
Color
&
color
)
{
{
WidgetAccessor
::
setVtkProp
(
*
this
,
vtkSmartPointer
<
vtkLODActor
>::
New
());
vtkSmartPointer
<
vtkSphereSource
>
sphere
=
vtkSmartPointer
<
vtkSphereSource
>::
New
();
vtkSmartPointer
<
vtkSphereSource
>
sphere
=
vtkSmartPointer
<
vtkSphereSource
>::
New
();
sphere
->
SetRadius
(
radius
);
sphere
->
SetRadius
(
radius
);
sphere
->
SetCenter
(
center
.
x
,
center
.
y
,
center
.
z
);
sphere
->
SetCenter
(
center
.
x
,
center
.
y
,
center
.
z
);
...
@@ -112,9 +109,10 @@ temp_viz::SphereWidget::SphereWidget(const cv::Point3f ¢er, float radius, in
...
@@ -112,9 +109,10 @@ temp_viz::SphereWidget::SphereWidget(const cv::Point3f ¢er, float radius, in
vtkSmartPointer
<
vtkDataSetMapper
>
mapper
=
vtkSmartPointer
<
vtkDataSetMapper
>::
New
();
vtkSmartPointer
<
vtkDataSetMapper
>
mapper
=
vtkSmartPointer
<
vtkDataSetMapper
>::
New
();
mapper
->
SetInput
(
sphere
->
GetOutput
());
mapper
->
SetInput
(
sphere
->
GetOutput
());
vtk
LODActor
*
actor
=
vtkLODActor
::
SafeDownCast
(
WidgetAccessor
::
getActor
(
*
this
)
);
vtk
SmartPointer
<
vtkLODActor
>
actor
=
vtkSmartPointer
<
vtkLODActor
>::
New
(
);
actor
->
SetMapper
(
mapper
);
actor
->
SetMapper
(
mapper
);
WidgetAccessor
::
setProp
(
*
this
,
actor
);
setColor
(
color
);
setColor
(
color
);
}
}
...
@@ -129,8 +127,6 @@ temp_viz::SphereWidget& temp_viz::SphereWidget::operator=(const Widget &other)
...
@@ -129,8 +127,6 @@ temp_viz::SphereWidget& temp_viz::SphereWidget::operator=(const Widget &other)
temp_viz
::
ArrowWidget
::
ArrowWidget
(
const
Point3f
&
pt1
,
const
Point3f
&
pt2
,
const
Color
&
color
)
temp_viz
::
ArrowWidget
::
ArrowWidget
(
const
Point3f
&
pt1
,
const
Point3f
&
pt2
,
const
Color
&
color
)
{
{
WidgetAccessor
::
setVtkProp
(
*
this
,
vtkSmartPointer
<
vtkLODActor
>::
New
());
vtkSmartPointer
<
vtkArrowSource
>
arrowSource
=
vtkSmartPointer
<
vtkArrowSource
>::
New
();
vtkSmartPointer
<
vtkArrowSource
>
arrowSource
=
vtkSmartPointer
<
vtkArrowSource
>::
New
();
float
startPoint
[
3
],
endPoint
[
3
];
float
startPoint
[
3
],
endPoint
[
3
];
...
@@ -182,9 +178,10 @@ temp_viz::ArrowWidget::ArrowWidget(const Point3f& pt1, const Point3f& pt2, const
...
@@ -182,9 +178,10 @@ temp_viz::ArrowWidget::ArrowWidget(const Point3f& pt1, const Point3f& pt2, const
vtkSmartPointer
<
vtkDataSetMapper
>
mapper
=
vtkSmartPointer
<
vtkDataSetMapper
>::
New
();
vtkSmartPointer
<
vtkDataSetMapper
>
mapper
=
vtkSmartPointer
<
vtkDataSetMapper
>::
New
();
mapper
->
SetInput
(
transformPD
->
GetOutput
());
mapper
->
SetInput
(
transformPD
->
GetOutput
());
vtk
LODActor
*
actor
=
vtkLODActor
::
SafeDownCast
(
WidgetAccessor
::
getActor
(
*
this
)
);
vtk
SmartPointer
<
vtkLODActor
>
actor
=
vtkSmartPointer
<
vtkLODActor
>::
New
(
);
actor
->
SetMapper
(
mapper
);
actor
->
SetMapper
(
mapper
);
WidgetAccessor
::
setProp
(
*
this
,
actor
);
setColor
(
color
);
setColor
(
color
);
}
}
...
@@ -199,8 +196,6 @@ temp_viz::ArrowWidget& temp_viz::ArrowWidget::operator=(const Widget &other)
...
@@ -199,8 +196,6 @@ temp_viz::ArrowWidget& temp_viz::ArrowWidget::operator=(const Widget &other)
temp_viz
::
CircleWidget
::
CircleWidget
(
const
temp_viz
::
Point3f
&
pt
,
double
radius
,
double
thickness
,
const
temp_viz
::
Color
&
color
)
temp_viz
::
CircleWidget
::
CircleWidget
(
const
temp_viz
::
Point3f
&
pt
,
double
radius
,
double
thickness
,
const
temp_viz
::
Color
&
color
)
{
{
WidgetAccessor
::
setVtkProp
(
*
this
,
vtkSmartPointer
<
vtkLODActor
>::
New
());
vtkSmartPointer
<
vtkDiskSource
>
disk
=
vtkSmartPointer
<
vtkDiskSource
>::
New
();
vtkSmartPointer
<
vtkDiskSource
>
disk
=
vtkSmartPointer
<
vtkDiskSource
>::
New
();
// Maybe the resolution should be lower e.g. 50 or 25
// Maybe the resolution should be lower e.g. 50 or 25
disk
->
SetCircumferentialResolution
(
50
);
disk
->
SetCircumferentialResolution
(
50
);
...
@@ -219,9 +214,10 @@ temp_viz::CircleWidget::CircleWidget(const temp_viz::Point3f& pt, double radius,
...
@@ -219,9 +214,10 @@ temp_viz::CircleWidget::CircleWidget(const temp_viz::Point3f& pt, double radius,
vtkSmartPointer
<
vtkDataSetMapper
>
mapper
=
vtkSmartPointer
<
vtkDataSetMapper
>::
New
();
vtkSmartPointer
<
vtkDataSetMapper
>
mapper
=
vtkSmartPointer
<
vtkDataSetMapper
>::
New
();
mapper
->
SetInput
(
tf
->
GetOutput
());
mapper
->
SetInput
(
tf
->
GetOutput
());
vtk
LODActor
*
actor
=
vtkLODActor
::
SafeDownCast
(
WidgetAccessor
::
getActor
(
*
this
)
);
vtk
SmartPointer
<
vtkLODActor
>
actor
=
vtkSmartPointer
<
vtkLODActor
>::
New
(
);
actor
->
SetMapper
(
mapper
);
actor
->
SetMapper
(
mapper
);
WidgetAccessor
::
setProp
(
*
this
,
actor
);
setColor
(
color
);
setColor
(
color
);
}
}
...
@@ -236,8 +232,6 @@ temp_viz::CircleWidget& temp_viz::CircleWidget::operator=(const Widget &other)
...
@@ -236,8 +232,6 @@ temp_viz::CircleWidget& temp_viz::CircleWidget::operator=(const Widget &other)
temp_viz
::
CylinderWidget
::
CylinderWidget
(
const
Point3f
&
pt_on_axis
,
const
Point3f
&
axis_direction
,
double
radius
,
int
numsides
,
const
Color
&
color
)
temp_viz
::
CylinderWidget
::
CylinderWidget
(
const
Point3f
&
pt_on_axis
,
const
Point3f
&
axis_direction
,
double
radius
,
int
numsides
,
const
Color
&
color
)
{
{
WidgetAccessor
::
setVtkProp
(
*
this
,
vtkSmartPointer
<
vtkLODActor
>::
New
());
const
cv
::
Point3f
pt2
=
pt_on_axis
+
axis_direction
;
const
cv
::
Point3f
pt2
=
pt_on_axis
+
axis_direction
;
vtkSmartPointer
<
vtkLineSource
>
line
=
vtkSmartPointer
<
vtkLineSource
>::
New
();
vtkSmartPointer
<
vtkLineSource
>
line
=
vtkSmartPointer
<
vtkLineSource
>::
New
();
line
->
SetPoint1
(
pt_on_axis
.
x
,
pt_on_axis
.
y
,
pt_on_axis
.
z
);
line
->
SetPoint1
(
pt_on_axis
.
x
,
pt_on_axis
.
y
,
pt_on_axis
.
z
);
...
@@ -251,9 +245,10 @@ temp_viz::CylinderWidget::CylinderWidget(const Point3f& pt_on_axis, const Point3
...
@@ -251,9 +245,10 @@ temp_viz::CylinderWidget::CylinderWidget(const Point3f& pt_on_axis, const Point3
vtkSmartPointer
<
vtkDataSetMapper
>
mapper
=
vtkSmartPointer
<
vtkDataSetMapper
>::
New
();
vtkSmartPointer
<
vtkDataSetMapper
>
mapper
=
vtkSmartPointer
<
vtkDataSetMapper
>::
New
();
mapper
->
SetInput
(
tuber
->
GetOutput
());
mapper
->
SetInput
(
tuber
->
GetOutput
());
vtk
LODActor
*
actor
=
vtkLODActor
::
SafeDownCast
(
WidgetAccessor
::
getActor
(
*
this
)
);
vtk
SmartPointer
<
vtkLODActor
>
actor
=
vtkSmartPointer
<
vtkLODActor
>::
New
(
);
actor
->
SetMapper
(
mapper
);
actor
->
SetMapper
(
mapper
);
WidgetAccessor
::
setProp
(
*
this
,
actor
);
setColor
(
color
);
setColor
(
color
);
}
}
...
@@ -268,20 +263,19 @@ temp_viz::CylinderWidget& temp_viz::CylinderWidget::operator=(const Widget &othe
...
@@ -268,20 +263,19 @@ temp_viz::CylinderWidget& temp_viz::CylinderWidget::operator=(const Widget &othe
temp_viz
::
CubeWidget
::
CubeWidget
(
const
Point3f
&
pt_min
,
const
Point3f
&
pt_max
,
bool
wire_frame
,
const
Color
&
color
)
temp_viz
::
CubeWidget
::
CubeWidget
(
const
Point3f
&
pt_min
,
const
Point3f
&
pt_max
,
bool
wire_frame
,
const
Color
&
color
)
{
{
WidgetAccessor
::
setVtkProp
(
*
this
,
vtkSmartPointer
<
vtkLODActor
>::
New
());
vtkSmartPointer
<
vtkCubeSource
>
cube
=
vtkSmartPointer
<
vtkCubeSource
>::
New
();
vtkSmartPointer
<
vtkCubeSource
>
cube
=
vtkSmartPointer
<
vtkCubeSource
>::
New
();
cube
->
SetBounds
(
pt_min
.
x
,
pt_max
.
x
,
pt_min
.
y
,
pt_max
.
y
,
pt_min
.
z
,
pt_max
.
z
);
cube
->
SetBounds
(
pt_min
.
x
,
pt_max
.
x
,
pt_min
.
y
,
pt_max
.
y
,
pt_min
.
z
,
pt_max
.
z
);
vtkSmartPointer
<
vtkDataSetMapper
>
mapper
=
vtkSmartPointer
<
vtkDataSetMapper
>::
New
();
vtkSmartPointer
<
vtkDataSetMapper
>
mapper
=
vtkSmartPointer
<
vtkDataSetMapper
>::
New
();
mapper
->
SetInput
(
cube
->
GetOutput
());
mapper
->
SetInput
(
cube
->
GetOutput
());
vtk
LODActor
*
actor
=
vtkLODActor
::
SafeDownCast
(
WidgetAccessor
::
getActor
(
*
this
)
);
vtk
SmartPointer
<
vtkLODActor
>
actor
=
vtkSmartPointer
<
vtkLODActor
>::
New
(
);
actor
->
SetMapper
(
mapper
);
actor
->
SetMapper
(
mapper
);
if
(
wire_frame
)
if
(
wire_frame
)
actor
->
GetProperty
()
->
SetRepresentationToWireframe
();
actor
->
GetProperty
()
->
SetRepresentationToWireframe
();
WidgetAccessor
::
setProp
(
*
this
,
actor
);
setColor
(
color
);
setColor
(
color
);
}
}
...
@@ -296,8 +290,6 @@ temp_viz::CubeWidget& temp_viz::CubeWidget::operator=(const Widget &other)
...
@@ -296,8 +290,6 @@ temp_viz::CubeWidget& temp_viz::CubeWidget::operator=(const Widget &other)
temp_viz
::
CoordinateSystemWidget
::
CoordinateSystemWidget
(
double
scale
,
const
Affine3f
&
affine
)
temp_viz
::
CoordinateSystemWidget
::
CoordinateSystemWidget
(
double
scale
,
const
Affine3f
&
affine
)
{
{
WidgetAccessor
::
setVtkProp
(
*
this
,
vtkSmartPointer
<
vtkLODActor
>::
New
());
vtkSmartPointer
<
vtkAxes
>
axes
=
vtkSmartPointer
<
vtkAxes
>::
New
();
vtkSmartPointer
<
vtkAxes
>
axes
=
vtkSmartPointer
<
vtkAxes
>::
New
();
axes
->
SetOrigin
(
0
,
0
,
0
);
axes
->
SetOrigin
(
0
,
0
,
0
);
axes
->
SetScaleFactor
(
scale
);
axes
->
SetScaleFactor
(
scale
);
...
@@ -324,7 +316,7 @@ temp_viz::CoordinateSystemWidget::CoordinateSystemWidget(double scale, const Aff
...
@@ -324,7 +316,7 @@ temp_viz::CoordinateSystemWidget::CoordinateSystemWidget(double scale, const Aff
mapper
->
SetScalarModeToUsePointData
();
mapper
->
SetScalarModeToUsePointData
();
mapper
->
SetInput
(
axes_tubes
->
GetOutput
());
mapper
->
SetInput
(
axes_tubes
->
GetOutput
());
vtk
LODActor
*
actor
=
vtkLODActor
::
SafeDownCast
(
WidgetAccessor
::
getActor
(
*
this
)
);
vtk
SmartPointer
<
vtkLODActor
>
actor
=
vtkSmartPointer
<
vtkLODActor
>::
New
(
);
actor
->
SetMapper
(
mapper
);
actor
->
SetMapper
(
mapper
);
cv
::
Vec3d
t
=
affine
.
translation
();
cv
::
Vec3d
t
=
affine
.
translation
();
...
@@ -340,6 +332,8 @@ temp_viz::CoordinateSystemWidget::CoordinateSystemWidget(double scale, const Aff
...
@@ -340,6 +332,8 @@ temp_viz::CoordinateSystemWidget::CoordinateSystemWidget(double scale, const Aff
actor
->
SetOrientation
(
0
,
0
,
0
);
actor
->
SetOrientation
(
0
,
0
,
0
);
actor
->
RotateWXYZ
(
r_angle
*
180
/
CV_PI
,
rvec
[
0
],
rvec
[
1
],
rvec
[
2
]);
actor
->
RotateWXYZ
(
r_angle
*
180
/
CV_PI
,
rvec
[
0
],
rvec
[
1
],
rvec
[
2
]);
WidgetAccessor
::
setProp
(
*
this
,
actor
);
}
}
temp_viz
::
CoordinateSystemWidget
&
temp_viz
::
CoordinateSystemWidget
::
operator
=
(
const
Widget
&
other
)
temp_viz
::
CoordinateSystemWidget
&
temp_viz
::
CoordinateSystemWidget
::
operator
=
(
const
Widget
&
other
)
...
@@ -353,9 +347,7 @@ temp_viz::CoordinateSystemWidget& temp_viz::CoordinateSystemWidget::operator=(co
...
@@ -353,9 +347,7 @@ temp_viz::CoordinateSystemWidget& temp_viz::CoordinateSystemWidget::operator=(co
temp_viz
::
TextWidget
::
TextWidget
(
const
String
&
text
,
const
Point2i
&
pos
,
int
font_size
,
const
Color
&
color
)
temp_viz
::
TextWidget
::
TextWidget
(
const
String
&
text
,
const
Point2i
&
pos
,
int
font_size
,
const
Color
&
color
)
{
{
WidgetAccessor
::
setVtkProp
(
*
this
,
vtkSmartPointer
<
vtkTextActor
>::
New
());
vtkSmartPointer
<
vtkTextActor
>
actor
=
vtkSmartPointer
<
vtkTextActor
>::
New
();
vtkTextActor
*
actor
=
vtkTextActor
::
SafeDownCast
(
WidgetAccessor
::
getActor
(
*
this
));
actor
->
SetPosition
(
pos
.
x
,
pos
.
y
);
actor
->
SetPosition
(
pos
.
x
,
pos
.
y
);
actor
->
SetInput
(
text
.
c_str
());
actor
->
SetInput
(
text
.
c_str
());
...
@@ -367,6 +359,8 @@ temp_viz::TextWidget::TextWidget(const String &text, const Point2i &pos, int fon
...
@@ -367,6 +359,8 @@ temp_viz::TextWidget::TextWidget(const String &text, const Point2i &pos, int fon
Color
c
=
vtkcolor
(
color
);
Color
c
=
vtkcolor
(
color
);
tprop
->
SetColor
(
c
.
val
);
tprop
->
SetColor
(
c
.
val
);
WidgetAccessor
::
setProp
(
*
this
,
actor
);
}
}
temp_viz
::
TextWidget
&
temp_viz
::
TextWidget
::
operator
=
(
const
Widget
&
other
)
temp_viz
::
TextWidget
&
temp_viz
::
TextWidget
::
operator
=
(
const
Widget
&
other
)
...
@@ -375,6 +369,20 @@ temp_viz::TextWidget& temp_viz::TextWidget::operator=(const Widget &other)
...
@@ -375,6 +369,20 @@ temp_viz::TextWidget& temp_viz::TextWidget::operator=(const Widget &other)
return
*
this
;
return
*
this
;
}
}
void
temp_viz
::
TextWidget
::
setText
(
const
String
&
text
)
{
vtkTextActor
*
actor
=
vtkTextActor
::
SafeDownCast
(
WidgetAccessor
::
getProp
(
*
this
));
CV_Assert
(
actor
);
actor
->
SetInput
(
text
.
c_str
());
}
temp_viz
::
String
temp_viz
::
TextWidget
::
getText
()
const
{
vtkTextActor
*
actor
=
vtkTextActor
::
SafeDownCast
(
WidgetAccessor
::
getProp
(
*
this
));
CV_Assert
(
actor
);
return
actor
->
GetInput
();
}
///////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////
/// point cloud widget implementation
/// point cloud widget implementation
...
@@ -474,9 +482,7 @@ temp_viz::CloudWidget::CloudWidget(InputArray _cloud, InputArray _colors)
...
@@ -474,9 +482,7 @@ temp_viz::CloudWidget::CloudWidget(InputArray _cloud, InputArray _colors)
CV_Assert
(
cloud
.
type
()
==
CV_32FC3
||
cloud
.
type
()
==
CV_64FC3
||
cloud
.
type
()
==
CV_32FC4
||
cloud
.
type
()
==
CV_64FC4
);
CV_Assert
(
cloud
.
type
()
==
CV_32FC3
||
cloud
.
type
()
==
CV_64FC3
||
cloud
.
type
()
==
CV_32FC4
||
cloud
.
type
()
==
CV_64FC4
);
CV_Assert
(
colors
.
type
()
==
CV_8UC3
&&
cloud
.
size
()
==
colors
.
size
());
CV_Assert
(
colors
.
type
()
==
CV_8UC3
&&
cloud
.
size
()
==
colors
.
size
());
WidgetAccessor
::
setVtkProp
(
*
this
,
vtkSmartPointer
<
vtkLODActor
>::
New
());
vtkSmartPointer
<
vtkLODActor
>
actor
=
vtkSmartPointer
<
vtkLODActor
>::
New
();
vtkLODActor
*
actor
=
vtkLODActor
::
SafeDownCast
(
WidgetAccessor
::
getActor
(
*
this
));
vtkIdType
nr_points
;
vtkIdType
nr_points
;
vtkSmartPointer
<
vtkPolyData
>
polydata
=
CreateCloudWidget
::
create
(
cloud
,
nr_points
);
vtkSmartPointer
<
vtkPolyData
>
polydata
=
CreateCloudWidget
::
create
(
cloud
,
nr_points
);
...
@@ -510,6 +516,8 @@ temp_viz::CloudWidget::CloudWidget(InputArray _cloud, InputArray _colors)
...
@@ -510,6 +516,8 @@ temp_viz::CloudWidget::CloudWidget(InputArray _cloud, InputArray _colors)
actor
->
GetProperty
()
->
SetInterpolationToFlat
();
actor
->
GetProperty
()
->
SetInterpolationToFlat
();
actor
->
GetProperty
()
->
BackfaceCullingOn
();
actor
->
GetProperty
()
->
BackfaceCullingOn
();
actor
->
SetMapper
(
mapper
);
actor
->
SetMapper
(
mapper
);
WidgetAccessor
::
setProp
(
*
this
,
actor
);
}
}
temp_viz
::
CloudWidget
::
CloudWidget
(
InputArray
_cloud
,
const
Color
&
color
)
temp_viz
::
CloudWidget
::
CloudWidget
(
InputArray
_cloud
,
const
Color
&
color
)
...
@@ -517,9 +525,7 @@ temp_viz::CloudWidget::CloudWidget(InputArray _cloud, const Color &color)
...
@@ -517,9 +525,7 @@ temp_viz::CloudWidget::CloudWidget(InputArray _cloud, const Color &color)
Mat
cloud
=
_cloud
.
getMat
();
Mat
cloud
=
_cloud
.
getMat
();
CV_Assert
(
cloud
.
type
()
==
CV_32FC3
||
cloud
.
type
()
==
CV_64FC3
||
cloud
.
type
()
==
CV_32FC4
||
cloud
.
type
()
==
CV_64FC4
);
CV_Assert
(
cloud
.
type
()
==
CV_32FC3
||
cloud
.
type
()
==
CV_64FC3
||
cloud
.
type
()
==
CV_32FC4
||
cloud
.
type
()
==
CV_64FC4
);
WidgetAccessor
::
setVtkProp
(
*
this
,
vtkSmartPointer
<
vtkLODActor
>::
New
());
vtkSmartPointer
<
vtkLODActor
>
actor
=
vtkSmartPointer
<
vtkLODActor
>::
New
();
vtkLODActor
*
actor
=
vtkLODActor
::
SafeDownCast
(
WidgetAccessor
::
getActor
(
*
this
));
vtkIdType
nr_points
;
vtkIdType
nr_points
;
vtkSmartPointer
<
vtkPolyData
>
polydata
=
CreateCloudWidget
::
create
(
cloud
,
nr_points
);
vtkSmartPointer
<
vtkPolyData
>
polydata
=
CreateCloudWidget
::
create
(
cloud
,
nr_points
);
...
@@ -538,6 +544,7 @@ temp_viz::CloudWidget::CloudWidget(InputArray _cloud, const Color &color)
...
@@ -538,6 +544,7 @@ temp_viz::CloudWidget::CloudWidget(InputArray _cloud, const Color &color)
actor
->
GetProperty
()
->
BackfaceCullingOn
();
actor
->
GetProperty
()
->
BackfaceCullingOn
();
actor
->
SetMapper
(
mapper
);
actor
->
SetMapper
(
mapper
);
WidgetAccessor
::
setProp
(
*
this
,
actor
);
setColor
(
color
);
setColor
(
color
);
}
}
...
@@ -635,8 +642,6 @@ temp_viz::CloudNormalsWidget::CloudNormalsWidget(InputArray _cloud, InputArray _
...
@@ -635,8 +642,6 @@ temp_viz::CloudNormalsWidget::CloudNormalsWidget(InputArray _cloud, InputArray _
CV_Assert
(
cloud
.
type
()
==
CV_32FC3
||
cloud
.
type
()
==
CV_64FC3
||
cloud
.
type
()
==
CV_32FC4
||
cloud
.
type
()
==
CV_64FC4
);
CV_Assert
(
cloud
.
type
()
==
CV_32FC3
||
cloud
.
type
()
==
CV_64FC3
||
cloud
.
type
()
==
CV_32FC4
||
cloud
.
type
()
==
CV_64FC4
);
CV_Assert
(
cloud
.
size
()
==
normals
.
size
()
&&
cloud
.
type
()
==
normals
.
type
());
CV_Assert
(
cloud
.
size
()
==
normals
.
size
()
&&
cloud
.
type
()
==
normals
.
type
());
WidgetAccessor
::
setVtkProp
(
*
this
,
vtkSmartPointer
<
vtkLODActor
>::
New
());
vtkSmartPointer
<
vtkPoints
>
points
=
vtkSmartPointer
<
vtkPoints
>::
New
();
vtkSmartPointer
<
vtkPoints
>
points
=
vtkSmartPointer
<
vtkPoints
>::
New
();
vtkSmartPointer
<
vtkCellArray
>
lines
=
vtkSmartPointer
<
vtkCellArray
>::
New
();
vtkSmartPointer
<
vtkCellArray
>
lines
=
vtkSmartPointer
<
vtkCellArray
>::
New
();
vtkIdType
nr_normals
=
0
;
vtkIdType
nr_normals
=
0
;
...
@@ -675,8 +680,9 @@ temp_viz::CloudNormalsWidget::CloudNormalsWidget(InputArray _cloud, InputArray _
...
@@ -675,8 +680,9 @@ temp_viz::CloudNormalsWidget::CloudNormalsWidget(InputArray _cloud, InputArray _
mapper
->
SetColorModeToMapScalars
();
mapper
->
SetColorModeToMapScalars
();
mapper
->
SetScalarModeToUsePointData
();
mapper
->
SetScalarModeToUsePointData
();
vtk
LODActor
*
actor
=
vtkLODActor
::
SafeDownCast
(
WidgetAccessor
::
getActor
(
*
this
)
);
vtk
SmartPointer
<
vtkLODActor
>
actor
=
vtkSmartPointer
<
vtkLODActor
>::
New
(
);
actor
->
SetMapper
(
mapper
);
actor
->
SetMapper
(
mapper
);
WidgetAccessor
::
setProp
(
*
this
,
actor
);
setColor
(
color
);
setColor
(
color
);
}
}
...
...
modules/viz/src/viz3d_impl.cpp
View file @
200b254b
...
@@ -874,7 +874,7 @@ void temp_viz::Viz3d::VizImpl::showWidget(const String &id, const Widget &widget
...
@@ -874,7 +874,7 @@ void temp_viz::Viz3d::VizImpl::showWidget(const String &id, const Widget &widget
removeActorFromRenderer
(
wam_itr
->
second
.
actor
);
removeActorFromRenderer
(
wam_itr
->
second
.
actor
);
}
}
// Get the actor and set the user matrix
// Get the actor and set the user matrix
vtkProp3D
*
actor
=
vtkProp3D
::
SafeDownCast
(
WidgetAccessor
::
get
Actor
(
widget
));
vtkProp3D
*
actor
=
vtkProp3D
::
SafeDownCast
(
WidgetAccessor
::
get
Prop
(
widget
));
if
(
actor
)
if
(
actor
)
{
{
// If the actor is 3D, apply pose
// If the actor is 3D, apply pose
...
@@ -882,8 +882,8 @@ void temp_viz::Viz3d::VizImpl::showWidget(const String &id, const Widget &widget
...
@@ -882,8 +882,8 @@ void temp_viz::Viz3d::VizImpl::showWidget(const String &id, const Widget &widget
actor
->
SetUserMatrix
(
matrix
);
actor
->
SetUserMatrix
(
matrix
);
actor
->
Modified
();
actor
->
Modified
();
}
}
renderer_
->
AddActor
(
WidgetAccessor
::
get
Actor
(
widget
));
renderer_
->
AddActor
(
WidgetAccessor
::
get
Prop
(
widget
));
(
*
widget_actor_map_
)[
id
].
actor
=
WidgetAccessor
::
get
Actor
(
widget
);
(
*
widget_actor_map_
)[
id
].
actor
=
WidgetAccessor
::
get
Prop
(
widget
);
}
}
void
temp_viz
::
Viz3d
::
VizImpl
::
removeWidget
(
const
String
&
id
)
void
temp_viz
::
Viz3d
::
VizImpl
::
removeWidget
(
const
String
&
id
)
...
@@ -902,7 +902,7 @@ temp_viz::Widget temp_viz::Viz3d::VizImpl::getWidget(const String &id) const
...
@@ -902,7 +902,7 @@ temp_viz::Widget temp_viz::Viz3d::VizImpl::getWidget(const String &id) const
CV_Assert
(
exists
);
CV_Assert
(
exists
);
Widget
widget
;
Widget
widget
;
WidgetAccessor
::
set
Vtk
Prop
(
widget
,
wam_itr
->
second
.
actor
);
WidgetAccessor
::
setProp
(
widget
,
wam_itr
->
second
.
actor
);
return
widget
;
return
widget
;
}
}
...
...
modules/viz/src/widget.cpp
View file @
200b254b
...
@@ -57,12 +57,12 @@ void temp_viz::Widget::release()
...
@@ -57,12 +57,12 @@ void temp_viz::Widget::release()
///////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////
/// widget accessor implementaion
/// widget accessor implementaion
vtkSmartPointer
<
vtkProp
>
temp_viz
::
WidgetAccessor
::
get
Actor
(
const
Widget
&
widget
)
vtkSmartPointer
<
vtkProp
>
temp_viz
::
WidgetAccessor
::
get
Prop
(
const
Widget
&
widget
)
{
{
return
widget
.
impl_
->
actor
;
return
widget
.
impl_
->
actor
;
}
}
void
temp_viz
::
WidgetAccessor
::
set
Vtk
Prop
(
Widget
&
widget
,
vtkSmartPointer
<
vtkProp
>
actor
)
void
temp_viz
::
WidgetAccessor
::
setProp
(
Widget
&
widget
,
vtkSmartPointer
<
vtkProp
>
actor
)
{
{
widget
.
impl_
->
actor
=
actor
;
widget
.
impl_
->
actor
=
actor
;
}
}
...
@@ -94,14 +94,14 @@ struct temp_viz::Widget3D::MatrixConverter
...
@@ -94,14 +94,14 @@ struct temp_viz::Widget3D::MatrixConverter
temp_viz
::
Widget3D
::
Widget3D
(
const
Widget
&
other
)
:
Widget
(
other
)
temp_viz
::
Widget3D
::
Widget3D
(
const
Widget
&
other
)
:
Widget
(
other
)
{
{
// Check if other's actor is castable to vtkProp3D
// Check if other's actor is castable to vtkProp3D
vtkProp3D
*
actor
=
vtkProp3D
::
SafeDownCast
(
WidgetAccessor
::
get
Actor
(
other
));
vtkProp3D
*
actor
=
vtkProp3D
::
SafeDownCast
(
WidgetAccessor
::
get
Prop
(
other
));
CV_Assert
(
actor
);
CV_Assert
(
actor
);
}
}
temp_viz
::
Widget3D
&
temp_viz
::
Widget3D
::
operator
=
(
const
Widget
&
other
)
temp_viz
::
Widget3D
&
temp_viz
::
Widget3D
::
operator
=
(
const
Widget
&
other
)
{
{
// Check if other's actor is castable to vtkProp3D
// Check if other's actor is castable to vtkProp3D
vtkProp3D
*
actor
=
vtkProp3D
::
SafeDownCast
(
WidgetAccessor
::
get
Actor
(
other
));
vtkProp3D
*
actor
=
vtkProp3D
::
SafeDownCast
(
WidgetAccessor
::
get
Prop
(
other
));
CV_Assert
(
actor
);
CV_Assert
(
actor
);
Widget
::
operator
=
(
other
);
Widget
::
operator
=
(
other
);
...
@@ -110,7 +110,7 @@ temp_viz::Widget3D& temp_viz::Widget3D::operator =(const Widget &other)
...
@@ -110,7 +110,7 @@ temp_viz::Widget3D& temp_viz::Widget3D::operator =(const Widget &other)
void
temp_viz
::
Widget3D
::
setPose
(
const
Affine3f
&
pose
)
void
temp_viz
::
Widget3D
::
setPose
(
const
Affine3f
&
pose
)
{
{
vtkProp3D
*
actor
=
vtkProp3D
::
SafeDownCast
(
WidgetAccessor
::
get
Actor
(
*
this
));
vtkProp3D
*
actor
=
vtkProp3D
::
SafeDownCast
(
WidgetAccessor
::
get
Prop
(
*
this
));
CV_Assert
(
actor
);
CV_Assert
(
actor
);
vtkSmartPointer
<
vtkMatrix4x4
>
matrix
=
convertToVtkMatrix
(
pose
.
matrix
);
vtkSmartPointer
<
vtkMatrix4x4
>
matrix
=
convertToVtkMatrix
(
pose
.
matrix
);
...
@@ -120,7 +120,7 @@ void temp_viz::Widget3D::setPose(const Affine3f &pose)
...
@@ -120,7 +120,7 @@ void temp_viz::Widget3D::setPose(const Affine3f &pose)
void
temp_viz
::
Widget3D
::
updatePose
(
const
Affine3f
&
pose
)
void
temp_viz
::
Widget3D
::
updatePose
(
const
Affine3f
&
pose
)
{
{
vtkProp3D
*
actor
=
vtkProp3D
::
SafeDownCast
(
WidgetAccessor
::
get
Actor
(
*
this
));
vtkProp3D
*
actor
=
vtkProp3D
::
SafeDownCast
(
WidgetAccessor
::
get
Prop
(
*
this
));
CV_Assert
(
actor
);
CV_Assert
(
actor
);
vtkSmartPointer
<
vtkMatrix4x4
>
matrix
=
actor
->
GetUserMatrix
();
vtkSmartPointer
<
vtkMatrix4x4
>
matrix
=
actor
->
GetUserMatrix
();
...
@@ -140,7 +140,7 @@ void temp_viz::Widget3D::updatePose(const Affine3f &pose)
...
@@ -140,7 +140,7 @@ void temp_viz::Widget3D::updatePose(const Affine3f &pose)
temp_viz
::
Affine3f
temp_viz
::
Widget3D
::
getPose
()
const
temp_viz
::
Affine3f
temp_viz
::
Widget3D
::
getPose
()
const
{
{
vtkProp3D
*
actor
=
vtkProp3D
::
SafeDownCast
(
WidgetAccessor
::
get
Actor
(
*
this
));
vtkProp3D
*
actor
=
vtkProp3D
::
SafeDownCast
(
WidgetAccessor
::
get
Prop
(
*
this
));
CV_Assert
(
actor
);
CV_Assert
(
actor
);
vtkSmartPointer
<
vtkMatrix4x4
>
matrix
=
actor
->
GetUserMatrix
();
vtkSmartPointer
<
vtkMatrix4x4
>
matrix
=
actor
->
GetUserMatrix
();
...
@@ -151,7 +151,7 @@ temp_viz::Affine3f temp_viz::Widget3D::getPose() const
...
@@ -151,7 +151,7 @@ temp_viz::Affine3f temp_viz::Widget3D::getPose() const
void
temp_viz
::
Widget3D
::
setColor
(
const
Color
&
color
)
void
temp_viz
::
Widget3D
::
setColor
(
const
Color
&
color
)
{
{
// Cast to actor instead of prop3d since prop3d doesn't provide getproperty
// Cast to actor instead of prop3d since prop3d doesn't provide getproperty
vtkActor
*
actor
=
vtkActor
::
SafeDownCast
(
WidgetAccessor
::
get
Actor
(
*
this
));
vtkActor
*
actor
=
vtkActor
::
SafeDownCast
(
WidgetAccessor
::
get
Prop
(
*
this
));
CV_Assert
(
actor
);
CV_Assert
(
actor
);
Color
c
=
vtkcolor
(
color
);
Color
c
=
vtkcolor
(
color
);
...
@@ -171,14 +171,14 @@ void temp_viz::Widget3D::setColor(const Color &color)
...
@@ -171,14 +171,14 @@ void temp_viz::Widget3D::setColor(const Color &color)
temp_viz
::
Widget2D
::
Widget2D
(
const
Widget
&
other
)
:
Widget
(
other
)
temp_viz
::
Widget2D
::
Widget2D
(
const
Widget
&
other
)
:
Widget
(
other
)
{
{
// Check if other's actor is castable to vtkActor2D
// Check if other's actor is castable to vtkActor2D
vtkActor2D
*
actor
=
vtkActor2D
::
SafeDownCast
(
WidgetAccessor
::
get
Actor
(
other
));
vtkActor2D
*
actor
=
vtkActor2D
::
SafeDownCast
(
WidgetAccessor
::
get
Prop
(
other
));
CV_Assert
(
actor
);
CV_Assert
(
actor
);
}
}
temp_viz
::
Widget2D
&
temp_viz
::
Widget2D
::
operator
=
(
const
Widget
&
other
)
temp_viz
::
Widget2D
&
temp_viz
::
Widget2D
::
operator
=
(
const
Widget
&
other
)
{
{
// Check if other's actor is castable to vtkActor2D
// Check if other's actor is castable to vtkActor2D
vtkActor2D
*
actor
=
vtkActor2D
::
SafeDownCast
(
WidgetAccessor
::
get
Actor
(
other
));
vtkActor2D
*
actor
=
vtkActor2D
::
SafeDownCast
(
WidgetAccessor
::
get
Prop
(
other
));
CV_Assert
(
actor
);
CV_Assert
(
actor
);
Widget
::
operator
=
(
other
);
Widget
::
operator
=
(
other
);
return
*
this
;
return
*
this
;
...
@@ -186,7 +186,7 @@ temp_viz::Widget2D& temp_viz::Widget2D::operator=(const Widget &other)
...
@@ -186,7 +186,7 @@ temp_viz::Widget2D& temp_viz::Widget2D::operator=(const Widget &other)
void
temp_viz
::
Widget2D
::
setColor
(
const
Color
&
color
)
void
temp_viz
::
Widget2D
::
setColor
(
const
Color
&
color
)
{
{
vtkActor2D
*
actor
=
vtkActor2D
::
SafeDownCast
(
WidgetAccessor
::
get
Actor
(
*
this
));
vtkActor2D
*
actor
=
vtkActor2D
::
SafeDownCast
(
WidgetAccessor
::
get
Prop
(
*
this
));
CV_Assert
(
actor
);
CV_Assert
(
actor
);
Color
c
=
vtkcolor
(
color
);
Color
c
=
vtkcolor
(
color
);
actor
->
GetProperty
()
->
SetColor
(
c
.
val
);
actor
->
GetProperty
()
->
SetColor
(
c
.
val
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment