Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Opencv
提交
efa7f090
O
Opencv
项目概览
Greenplum
/
Opencv
大约 1 年 前同步成功
通知
7
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
Opencv
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
efa7f090
编写于
7月 04, 2013
作者:
A
Anatoly Baksheev
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
slight refactoring of widget system code
上级
daa2a205
变更
12
隐藏空白更改
内联
并排
Showing
12 changed file
with
195 addition
and
180 deletion
+195
-180
modules/viz/include/opencv2/viz.hpp
modules/viz/include/opencv2/viz.hpp
+3
-0
modules/viz/include/opencv2/viz/types.hpp
modules/viz/include/opencv2/viz/types.hpp
+2
-32
modules/viz/include/opencv2/viz/viz3d.hpp
modules/viz/include/opencv2/viz/viz3d.hpp
+3
-2
modules/viz/include/opencv2/viz/widget_accessor.hpp
modules/viz/include/opencv2/viz/widget_accessor.hpp
+8
-4
modules/viz/include/opencv2/viz/widgets.hpp
modules/viz/include/opencv2/viz/widgets.hpp
+38
-0
modules/viz/src/precomp.hpp
modules/viz/src/precomp.hpp
+2
-0
modules/viz/src/simple_widgets.cpp
modules/viz/src/simple_widgets.cpp
+18
-0
modules/viz/src/types.cpp
modules/viz/src/types.cpp
+0
-131
modules/viz/src/viz3d.cpp
modules/viz/src/viz3d.cpp
+4
-4
modules/viz/src/viz3d_impl.cpp
modules/viz/src/viz3d_impl.cpp
+6
-6
modules/viz/src/widget.cpp
modules/viz/src/widget.cpp
+110
-0
modules/viz/test/test_viz3d.cpp
modules/viz/test/test_viz3d.cpp
+1
-1
未找到文件。
modules/viz/include/opencv2/viz.hpp
浏览文件 @
efa7f090
#pragma once
#include <opencv2/viz/types.hpp>
#include <opencv2/viz/widgets.hpp>
#include <opencv2/viz/viz3d.hpp>
modules/viz/include/opencv2/viz/types.hpp
浏览文件 @
efa7f090
...
...
@@ -36,8 +36,6 @@ namespace temp_viz
using
cv
::
DataType
;
struct
CV_EXPORTS
ModelCoefficients
{
std
::
vector
<
float
>
values
;
...
...
@@ -81,6 +79,8 @@ namespace temp_viz
std
::
vector
<
Vertices
>
polygons
;
};
/////////////////////////////////////////////////////////////////////////////
/// Utility functions
inline
Color
vtkcolor
(
const
Color
&
color
)
{
...
...
@@ -90,11 +90,7 @@ namespace temp_viz
}
inline
Vec3d
vtkpoint
(
const
Point3f
&
point
)
{
return
Vec3d
(
point
.
x
,
point
.
y
,
point
.
z
);
}
template
<
typename
_Tp
>
inline
_Tp
normalized
(
const
_Tp
&
v
)
{
return
v
*
1
/
cv
::
norm
(
v
);
}
inline
bool
isNan
(
float
x
)
{
...
...
@@ -113,30 +109,4 @@ namespace temp_viz
template
<
typename
_Tp
>
inline
bool
isNan
(
const
Point3_
<
_Tp
>&
p
)
{
return
isNan
(
p
.
x
)
||
isNan
(
p
.
y
)
||
isNan
(
p
.
z
);
}
class
Widget
{
public:
Widget
();
Widget
(
const
Widget
&
other
);
Widget
&
operator
=
(
const
Widget
&
other
);
void
copyTo
(
Widget
&
dst
);
void
setColor
(
const
Color
&
color
);
void
setPose
(
const
Affine3f
&
pose
);
void
updatePose
(
const
Affine3f
&
pose
);
Affine3f
getPose
()
const
;
private:
class
Impl
;
cv
::
Ptr
<
Impl
>
impl_
;
friend
struct
WidgetAccessor
;
};
class
LineWidget
:
public
Widget
{
public:
LineWidget
(
const
Point3f
&
pt1
,
const
Point3f
&
pt2
,
const
Color
&
color
=
Color
(
255
,
255
,
255
));
};
}
modules/viz/include/opencv2/viz/viz3d.hpp
浏览文件 @
efa7f090
...
...
@@ -10,6 +10,7 @@
#include <string>
#include <opencv2/viz/types.hpp>
#include <opencv2/viz/widgets.hpp>
#include <opencv2/viz/events.hpp>
namespace
temp_viz
...
...
@@ -33,8 +34,8 @@ namespace temp_viz
bool
addPointCloudNormals
(
const
Mat
&
cloud
,
const
Mat
&
normals
,
int
level
=
100
,
float
scale
=
0.02
f
,
const
String
&
id
=
"cloud"
);
void
showLine
(
const
String
&
id
,
const
Point3f
&
pt1
,
const
Point3f
&
pt2
,
const
Color
&
color
=
Color
::
white
());
void
showPlane
(
const
String
&
id
,
const
Vec4f
&
coefs
,
const
Color
&
color
=
Color
::
white
());
void
showPlane
(
const
String
&
id
,
const
Vec4f
&
coefs
,
const
Point3f
&
pt
,
const
Color
&
color
=
Color
::
white
());
void
showPlane
(
const
String
&
id
,
const
Vec4f
&
coef
f
s
,
const
Color
&
color
=
Color
::
white
());
void
showPlane
(
const
String
&
id
,
const
Vec4f
&
coef
f
s
,
const
Point3f
&
pt
,
const
Color
&
color
=
Color
::
white
());
void
showCube
(
const
String
&
id
,
const
Point3f
&
pt1
,
const
Point3f
&
pt2
,
const
Color
&
color
=
Color
::
white
());
void
showCylinder
(
const
String
&
id
,
const
Point3f
&
pt_on_axis
,
const
Point3f
&
axis_direction
,
double
radius
,
int
num_sides
,
const
Color
&
color
=
Color
::
white
());
void
showCircle
(
const
String
&
id
,
const
Point3f
&
pt
,
double
radius
,
const
Color
&
color
=
Color
::
white
());
...
...
modules/viz/include/opencv2/viz/widget_accessor.hpp
浏览文件 @
efa7f090
#pragma once
#include <opencv2/viz/types.hpp>
#include <opencv2/viz/widgets.hpp>
#include <vtkSmartPointer.h>
#include <vtkLODActor.h>
namespace
temp_viz
{
struct
WidgetAccessor
//The class is only that depends on VTK in its interface.
//It is indended for those user who want to develop own widgets system using VTK library API.
struct
CV_EXPORTS
WidgetAccessor
{
static
CV_EXPORTS
vtkSmartPointer
<
vtkLODActor
>
getActor
(
const
Widget
&
widget
);
static
vtkSmartPointer
<
vtkLODActor
>
getActor
(
const
Widget
&
widget
);
};
}
\ No newline at end of file
}
modules/viz/include/opencv2/viz/widgets.hpp
0 → 100644
浏览文件 @
efa7f090
#pragma once
#include <opencv2/viz/types.hpp>
namespace
temp_viz
{
/////////////////////////////////////////////////////////////////////////////
/// brief The base class for all widgets
class
CV_EXPORTS
Widget
{
public:
Widget
();
Widget
(
const
Widget
&
other
);
Widget
&
operator
=
(
const
Widget
&
other
);
void
copyTo
(
Widget
&
dst
);
void
setColor
(
const
Color
&
color
);
void
setPose
(
const
Affine3f
&
pose
);
void
updatePose
(
const
Affine3f
&
pose
);
Affine3f
getPose
()
const
;
private:
class
Impl
;
cv
::
Ptr
<
Impl
>
impl_
;
friend
struct
WidgetAccessor
;
};
class
CV_EXPORTS
LineWidget
:
public
Widget
{
public:
LineWidget
(
const
Point3f
&
pt1
,
const
Point3f
&
pt2
,
const
Color
&
color
=
Color
::
white
());
};
}
modules/viz/src/precomp.hpp
浏览文件 @
efa7f090
...
...
@@ -154,3 +154,5 @@
#include <q/shapes.h>
#include "opencv2/viz/widget_accessor.hpp"
#include <opencv2/viz/widgets.hpp>
modules/viz/src/simple_widgets.cpp
0 → 100644
浏览文件 @
efa7f090
#include "precomp.hpp"
temp_viz
::
LineWidget
::
LineWidget
(
const
Point3f
&
pt1
,
const
Point3f
&
pt2
,
const
Color
&
color
)
{
vtkSmartPointer
<
vtkLineSource
>
line
=
vtkSmartPointer
<
vtkLineSource
>::
New
();
line
->
SetPoint1
(
pt1
.
x
,
pt1
.
y
,
pt1
.
z
);
line
->
SetPoint2
(
pt2
.
x
,
pt2
.
y
,
pt2
.
z
);
line
->
Update
();
vtkSmartPointer
<
vtkDataSetMapper
>
mapper
=
vtkSmartPointer
<
vtkDataSetMapper
>::
New
();
mapper
->
SetInput
(
line
->
GetOutput
());
vtkSmartPointer
<
vtkLODActor
>
actor
=
WidgetAccessor
::
getActor
(
*
this
);
actor
->
SetMapper
(
mapper
);
setColor
(
color
);
}
modules/viz/src/types.cpp
浏览文件 @
efa7f090
...
...
@@ -20,134 +20,3 @@ temp_viz::Color temp_viz::Color::white() { return Color(255, 255, 255); }
temp_viz
::
Color
temp_viz
::
Color
::
gray
()
{
return
Color
(
128
,
128
,
128
);
}
class
temp_viz
::
Widget
::
Impl
{
public:
String
id
;
vtkSmartPointer
<
vtkLODActor
>
actor
;
Impl
()
{
actor
=
vtkSmartPointer
<
vtkLODActor
>::
New
();
}
vtkSmartPointer
<
vtkLODActor
>
getActor
()
{
return
actor
;
}
void
setColor
(
const
Color
&
color
)
{
Color
c
=
vtkcolor
(
color
);
actor
->
GetMapper
()
->
ScalarVisibilityOff
();
actor
->
GetProperty
()
->
SetColor
(
c
.
val
);
actor
->
GetProperty
()
->
SetEdgeColor
(
c
.
val
);
actor
->
GetProperty
()
->
SetAmbient
(
0.8
);
actor
->
GetProperty
()
->
SetDiffuse
(
0.8
);
actor
->
GetProperty
()
->
SetSpecular
(
0.8
);
actor
->
GetProperty
()
->
SetLighting
(
0
);
actor
->
Modified
();
}
void
setPose
(
const
Affine3f
&
pose
)
{
vtkSmartPointer
<
vtkMatrix4x4
>
matrix
=
convertToVtkMatrix
(
pose
.
matrix
);
actor
->
SetUserMatrix
(
matrix
);
actor
->
Modified
();
}
void
updatePose
(
const
Affine3f
&
pose
)
{
vtkSmartPointer
<
vtkMatrix4x4
>
matrix
=
actor
->
GetUserMatrix
();
Matx44f
matrix_cv
;
convertToCvMatrix
(
matrix
,
matrix_cv
);
matrix
=
convertToVtkMatrix
((
pose
*
Affine3f
(
matrix_cv
)).
matrix
);
actor
->
SetUserMatrix
(
matrix
);
actor
->
Modified
();
}
Affine3f
getPose
()
const
{
vtkSmartPointer
<
vtkMatrix4x4
>
matrix
=
actor
->
GetUserMatrix
();
Matx44f
matrix_cv
;
convertToCvMatrix
(
matrix
,
matrix_cv
);
return
Affine3f
(
matrix_cv
);
}
protected:
vtkSmartPointer
<
vtkMatrix4x4
>
convertToVtkMatrix
(
const
cv
::
Matx44f
&
m
)
const
{
vtkSmartPointer
<
vtkMatrix4x4
>
vtk_matrix
=
vtkSmartPointer
<
vtkMatrix4x4
>::
New
();
for
(
int
i
=
0
;
i
<
4
;
i
++
)
for
(
int
k
=
0
;
k
<
4
;
k
++
)
vtk_matrix
->
SetElement
(
i
,
k
,
m
(
i
,
k
));
return
vtk_matrix
;
}
void
convertToCvMatrix
(
const
vtkSmartPointer
<
vtkMatrix4x4
>
&
vtk_matrix
,
cv
::
Matx44f
&
m
)
const
{
for
(
int
i
=
0
;
i
<
4
;
i
++
)
for
(
int
k
=
0
;
k
<
4
;
k
++
)
m
(
i
,
k
)
=
vtk_matrix
->
GetElement
(
i
,
k
);
}
};
temp_viz
::
Widget
::
Widget
()
{
impl_
=
new
Impl
();
}
temp_viz
::
Widget
::
Widget
(
const
Widget
&
other
)
{
impl_
=
other
.
impl_
;
}
temp_viz
::
Widget
&
temp_viz
::
Widget
::
operator
=
(
const
Widget
&
other
)
{
if
(
this
!=
&
other
)
impl_
=
other
.
impl_
;
return
*
this
;
}
void
temp_viz
::
Widget
::
copyTo
(
Widget
&
dst
)
{
// TODO Deep copy the data if there is any
}
void
temp_viz
::
Widget
::
setColor
(
const
Color
&
color
)
{
impl_
->
setColor
(
color
);
}
void
temp_viz
::
Widget
::
setPose
(
const
Affine3f
&
pose
)
{
impl_
->
setPose
(
pose
);
}
void
temp_viz
::
Widget
::
updatePose
(
const
Affine3f
&
pose
)
{
impl_
->
updatePose
(
pose
);
}
temp_viz
::
Affine3f
temp_viz
::
Widget
::
getPose
()
const
{
return
impl_
->
getPose
();
}
#include "opencv2/viz/widget_accessor.hpp"
vtkSmartPointer
<
vtkLODActor
>
temp_viz
::
WidgetAccessor
::
getActor
(
const
temp_viz
::
Widget
&
widget
)
{
return
widget
.
impl_
->
actor
;
}
temp_viz
::
LineWidget
::
LineWidget
(
const
Point3f
&
pt1
,
const
Point3f
&
pt2
,
const
Color
&
color
)
:
Widget
()
{
// Create the line and set actor's data
vtkSmartPointer
<
vtkDataSetMapper
>
mapper
=
vtkSmartPointer
<
vtkDataSetMapper
>::
New
();
mapper
->
SetInput
(
createLine
(
pt1
,
pt2
));
temp_viz
::
WidgetAccessor
::
getActor
(
*
this
)
->
SetMapper
(
mapper
);
setColor
(
color
);
}
\ No newline at end of file
modules/viz/src/viz3d.cpp
浏览文件 @
efa7f090
...
...
@@ -77,14 +77,14 @@ void temp_viz::Viz3d::showLine(const String& id, const Point3f& pt1, const Point
impl_
->
showLine
(
id
,
pt1
,
pt2
,
color
);
}
void
temp_viz
::
Viz3d
::
showPlane
(
const
String
&
id
,
const
Vec4f
&
coefs
,
const
Color
&
color
)
void
temp_viz
::
Viz3d
::
showPlane
(
const
String
&
id
,
const
Vec4f
&
coef
f
s
,
const
Color
&
color
)
{
impl_
->
showPlane
(
id
,
coefs
,
color
);
impl_
->
showPlane
(
id
,
coef
f
s
,
color
);
}
void
temp_viz
::
Viz3d
::
showPlane
(
const
String
&
id
,
const
Vec4f
&
coefs
,
const
Point3f
&
pt
,
const
Color
&
color
)
void
temp_viz
::
Viz3d
::
showPlane
(
const
String
&
id
,
const
Vec4f
&
coef
f
s
,
const
Point3f
&
pt
,
const
Color
&
color
)
{
impl_
->
showPlane
(
id
,
coefs
,
pt
,
color
);
impl_
->
showPlane
(
id
,
coef
f
s
,
pt
,
color
);
}
void
temp_viz
::
Viz3d
::
showCube
(
const
String
&
id
,
const
Point3f
&
pt1
,
const
Point3f
&
pt2
,
const
Color
&
color
)
...
...
modules/viz/src/viz3d_impl.cpp
浏览文件 @
efa7f090
...
...
@@ -416,7 +416,7 @@ void temp_viz::Viz3d::VizImpl::showLine (const String& id, const Point3f& pt1, c
}
}
void
temp_viz
::
Viz3d
::
VizImpl
::
showPlane
(
const
String
&
id
,
const
cv
::
Vec4f
&
coefs
,
const
Color
&
color
)
void
temp_viz
::
Viz3d
::
VizImpl
::
showPlane
(
const
String
&
id
,
const
cv
::
Vec4f
&
coef
f
s
,
const
Color
&
color
)
{
// Check if this Id already exists
ShapeActorMap
::
iterator
am_it
=
shape_actor_map_
->
find
(
id
);
...
...
@@ -426,7 +426,7 @@ void temp_viz::Viz3d::VizImpl::showPlane (const String& id, const cv::Vec4f &coe
if
(
exists
)
{
vtkSmartPointer
<
vtkLODActor
>
actor
=
vtkLODActor
::
SafeDownCast
(
am_it
->
second
);
reinterpret_cast
<
vtkDataSetMapper
*>
(
actor
->
GetMapper
())
->
SetInput
(
createPlane
(
coefs
));
reinterpret_cast
<
vtkDataSetMapper
*>
(
actor
->
GetMapper
())
->
SetInput
(
createPlane
(
coef
f
s
));
actor
->
GetProperty
()
->
SetColor
(
c
.
val
);
actor
->
GetMapper
()
->
ScalarVisibilityOff
();
actor
->
Modified
();
...
...
@@ -434,7 +434,7 @@ void temp_viz::Viz3d::VizImpl::showPlane (const String& id, const cv::Vec4f &coe
else
{
// Create a plane
vtkSmartPointer
<
vtkDataSet
>
data
=
createPlane
(
coefs
);
vtkSmartPointer
<
vtkDataSet
>
data
=
createPlane
(
coef
f
s
);
// Create an Actor
vtkSmartPointer
<
vtkLODActor
>
actor
;
...
...
@@ -451,7 +451,7 @@ void temp_viz::Viz3d::VizImpl::showPlane (const String& id, const cv::Vec4f &coe
}
}
void
temp_viz
::
Viz3d
::
VizImpl
::
showPlane
(
const
String
&
id
,
const
cv
::
Vec4f
&
coefs
,
const
Point3f
&
pt
,
const
Color
&
color
)
void
temp_viz
::
Viz3d
::
VizImpl
::
showPlane
(
const
String
&
id
,
const
cv
::
Vec4f
&
coef
f
s
,
const
Point3f
&
pt
,
const
Color
&
color
)
{
// Check if this Id already exists
ShapeActorMap
::
iterator
am_it
=
shape_actor_map_
->
find
(
id
);
...
...
@@ -461,7 +461,7 @@ void temp_viz::Viz3d::VizImpl::showPlane (const String& id ,const cv::Vec4f &coe
if
(
exists
)
{
vtkSmartPointer
<
vtkLODActor
>
actor
=
vtkLODActor
::
SafeDownCast
(
am_it
->
second
);
reinterpret_cast
<
vtkDataSetMapper
*>
(
actor
->
GetMapper
())
->
SetInput
(
createPlane
(
coefs
,
pt
));
reinterpret_cast
<
vtkDataSetMapper
*>
(
actor
->
GetMapper
())
->
SetInput
(
createPlane
(
coef
f
s
,
pt
));
actor
->
GetProperty
()
->
SetColor
(
c
.
val
);
actor
->
GetMapper
()
->
ScalarVisibilityOff
();
actor
->
Modified
();
...
...
@@ -469,7 +469,7 @@ void temp_viz::Viz3d::VizImpl::showPlane (const String& id ,const cv::Vec4f &coe
else
{
// Create a plane
vtkSmartPointer
<
vtkDataSet
>
data
=
createPlane
(
coefs
,
pt
);
vtkSmartPointer
<
vtkDataSet
>
data
=
createPlane
(
coef
f
s
,
pt
);
// Create an Actor
vtkSmartPointer
<
vtkLODActor
>
actor
;
...
...
modules/viz/src/widget.cpp
0 → 100644
浏览文件 @
efa7f090
#include "precomp.hpp"
class
temp_viz
::
Widget
::
Impl
{
public:
vtkSmartPointer
<
vtkLODActor
>
actor
;
Impl
()
:
actor
(
vtkSmartPointer
<
vtkLODActor
>::
New
())
{}
void
setColor
(
const
Color
&
color
)
{
Color
c
=
vtkcolor
(
color
);
actor
->
GetMapper
()
->
ScalarVisibilityOff
();
actor
->
GetProperty
()
->
SetColor
(
c
.
val
);
actor
->
GetProperty
()
->
SetEdgeColor
(
c
.
val
);
actor
->
GetProperty
()
->
SetAmbient
(
0.8
);
actor
->
GetProperty
()
->
SetDiffuse
(
0.8
);
actor
->
GetProperty
()
->
SetSpecular
(
0.8
);
actor
->
GetProperty
()
->
SetLighting
(
0
);
actor
->
Modified
();
}
void
setPose
(
const
Affine3f
&
pose
)
{
vtkSmartPointer
<
vtkMatrix4x4
>
matrix
=
convertToVtkMatrix
(
pose
.
matrix
);
actor
->
SetUserMatrix
(
matrix
);
actor
->
Modified
();
}
void
updatePose
(
const
Affine3f
&
pose
)
{
vtkSmartPointer
<
vtkMatrix4x4
>
matrix
=
actor
->
GetUserMatrix
();
Matx44f
matrix_cv
=
convertToMatx
(
matrix
);
Affine3f
updated_pose
=
pose
*
Affine3f
(
matrix_cv
);
matrix
=
convertToVtkMatrix
(
updated_pose
.
matrix
);
actor
->
SetUserMatrix
(
matrix
);
actor
->
Modified
();
}
Affine3f
getPose
()
const
{
vtkSmartPointer
<
vtkMatrix4x4
>
matrix
=
actor
->
GetUserMatrix
();
Matx44f
matrix_cv
=
convertToMatx
(
matrix
);
return
Affine3f
(
matrix_cv
);
}
protected:
static
vtkSmartPointer
<
vtkMatrix4x4
>
convertToVtkMatrix
(
const
cv
::
Matx44f
&
m
)
{
vtkSmartPointer
<
vtkMatrix4x4
>
vtk_matrix
=
vtkSmartPointer
<
vtkMatrix4x4
>::
New
();
for
(
int
i
=
0
;
i
<
4
;
i
++
)
for
(
int
k
=
0
;
k
<
4
;
k
++
)
vtk_matrix
->
SetElement
(
i
,
k
,
m
(
i
,
k
));
return
vtk_matrix
;
}
static
cv
::
Matx44f
convertToMatx
(
const
vtkSmartPointer
<
vtkMatrix4x4
>&
vtk_matrix
)
{
cv
::
Matx44f
m
;
for
(
int
i
=
0
;
i
<
4
;
i
++
)
for
(
int
k
=
0
;
k
<
4
;
k
++
)
m
(
i
,
k
)
=
vtk_matrix
->
GetElement
(
i
,
k
);
return
m
;
}
};
///////////////////////////////////////////////////////////////////////////////////////////////
/// stream accessor implementaion
vtkSmartPointer
<
vtkLODActor
>
temp_viz
::
WidgetAccessor
::
getActor
(
const
Widget
&
widget
)
{
return
widget
.
impl_
->
actor
;
}
///////////////////////////////////////////////////////////////////////////////////////////////
/// widget implementaion
temp_viz
::
Widget
::
Widget
()
{
impl_
=
new
Impl
();
}
temp_viz
::
Widget
::
Widget
(
const
Widget
&
other
)
{
impl_
=
other
.
impl_
;
}
temp_viz
::
Widget
&
temp_viz
::
Widget
::
operator
=
(
const
Widget
&
other
)
{
if
(
this
!=
&
other
)
impl_
=
other
.
impl_
;
return
*
this
;
}
void
temp_viz
::
Widget
::
copyTo
(
Widget
&
/*dst*/
)
{
// TODO Deep copy the data if there is any
}
void
temp_viz
::
Widget
::
setColor
(
const
Color
&
color
)
{
impl_
->
setColor
(
color
);
}
void
temp_viz
::
Widget
::
setPose
(
const
Affine3f
&
pose
)
{
impl_
->
setPose
(
pose
);
}
void
temp_viz
::
Widget
::
updatePose
(
const
Affine3f
&
pose
)
{
impl_
->
updatePose
(
pose
);
}
temp_viz
::
Affine3f
temp_viz
::
Widget
::
getPose
()
const
{
return
impl_
->
getPose
();
}
modules/viz/test/test_viz3d.cpp
浏览文件 @
efa7f090
...
...
@@ -47,7 +47,7 @@
#include <fstream>
#include <string>
#include <opencv2/viz
/types
.hpp>
#include <opencv2/viz.hpp>
#include <opencv2/viz/mesh_load.hpp>
cv
::
Mat
cvcloud_load
()
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录