addeed test for text 2d/3d
This commit is contained in:
@@ -206,7 +206,7 @@ namespace cv
|
||||
class CV_EXPORTS WText : public Widget2D
|
||||
{
|
||||
public:
|
||||
WText(const String &text, const Point2i &pos, int font_size = 20, const Color &color = Color::white());
|
||||
WText(const String &text, const Point &pos, int font_size = 20, const Color &color = Color::white());
|
||||
|
||||
void setText(const String &text);
|
||||
String getText() const;
|
||||
@@ -215,6 +215,7 @@ namespace cv
|
||||
class CV_EXPORTS WText3D : public Widget3D
|
||||
{
|
||||
public:
|
||||
//! creates text label in 3D. If face_camera = false, text plane normal is oriented along z-axis. Use widget pose to orient it properly
|
||||
WText3D(const String &text, const Point3d &position, double text_scale = 1., bool face_camera = true, const Color &color = Color::white());
|
||||
|
||||
void setText(const String &text);
|
||||
|
||||
@@ -135,8 +135,12 @@ cv::viz::WPlane::WPlane(const Vec4d& coefs, double size, const Color &color)
|
||||
Vec3d p_center;
|
||||
plane->GetOrigin(p_center.val);
|
||||
|
||||
|
||||
vtkSmartPointer<vtkTransformPolyDataFilter> filter = PlaneUtils::setSize(p_center, plane->GetOutputPort(), size);
|
||||
filter->Update();
|
||||
|
||||
vtkSmartPointer<vtkPolyDataMapper> mapper = vtkSmartPointer<vtkPolyDataMapper>::New();
|
||||
mapper->SetInputConnection(PlaneUtils::setSize(p_center, plane->GetOutputPort(), size)->GetOutputPort());
|
||||
VtkUtils::SetInputData(mapper, filter->GetOutput());
|
||||
|
||||
vtkSmartPointer<vtkActor> actor = vtkSmartPointer<vtkActor>::New();
|
||||
actor->SetMapper(mapper);
|
||||
@@ -571,6 +575,7 @@ cv::viz::WText3D::WText3D(const String &text, const Point3d &position, double te
|
||||
actor->SetMapper(mapper);
|
||||
actor->SetPosition(position.x, position.y, position.z);
|
||||
actor->SetScale(text_scale);
|
||||
actor->GetProperty()->LightingOff();
|
||||
WidgetAccessor::setProp(*this, actor);
|
||||
}
|
||||
|
||||
@@ -579,7 +584,7 @@ cv::viz::WText3D::WText3D(const String &text, const Point3d &position, double te
|
||||
|
||||
void cv::viz::WText3D::setText(const String &text)
|
||||
{
|
||||
vtkFollower *actor = vtkFollower::SafeDownCast(WidgetAccessor::getProp(*this));
|
||||
vtkActor *actor = vtkActor::SafeDownCast(WidgetAccessor::getProp(*this));
|
||||
CV_Assert("This widget does not support text." && actor);
|
||||
|
||||
// Update text source
|
||||
@@ -613,7 +618,7 @@ template<> cv::viz::WText3D cv::viz::Widget::cast<cv::viz::WText3D>()
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
/// text widget implementation
|
||||
|
||||
cv::viz::WText::WText(const String &text, const Point2i &pos, int font_size, const Color &color)
|
||||
cv::viz::WText::WText(const String &text, const Point &pos, int font_size, const Color &color)
|
||||
{
|
||||
vtkSmartPointer<vtkTextActor> actor = vtkSmartPointer<vtkTextActor>::New();
|
||||
actor->SetPosition(pos.x, pos.y);
|
||||
|
||||
@@ -291,6 +291,7 @@ TEST(Viz, DISABLED_show_image_3d)
|
||||
TEST(Viz, show_simple_widgets)
|
||||
{
|
||||
Viz3d viz("show_simple_widgets");
|
||||
|
||||
viz.showWidget("coos", WCoordinateSystem());
|
||||
viz.showWidget("cube", WCube());
|
||||
viz.showWidget("cub0", WCube(Vec3d::all(-1.0), Vec3d::all(-0.5), false, Color::indigo()));
|
||||
@@ -301,6 +302,26 @@ TEST(Viz, show_simple_widgets)
|
||||
viz.showWidget("cyl0", WCylinder(Vec3d(-0.5, 0.5, -0.5), Vec3d(0.5, 0.5, -0.5), 0.125, 30, Color::brown()));
|
||||
viz.showWidget("con0", WCone(0.25, 0.125, 6, Color::azure()));
|
||||
viz.showWidget("con1", WCone(0.125, Point3d(0.5, -0.5, 0.5), Point3d(0.5, -1.0, 0.5), 6, Color::turquoise()));
|
||||
|
||||
viz.showWidget("text2d", WText("Simple text", Point(20, 20), 20, Color::green()));
|
||||
|
||||
viz.showWidget("text3d", WText3D("Simple 3D text", Point3d( 0.5, 0.5, 0.5), 0.125, false, Color::green()));
|
||||
|
||||
viz.spinOnce(1500, true);
|
||||
viz.getWidget("text2d").cast<WText>().setText("New simple text");
|
||||
viz.getWidget("text3d").cast<WText3D>().setText("Updated text 3D");
|
||||
viz.spin();
|
||||
}
|
||||
|
||||
TEST(Viz, show_follower)
|
||||
{
|
||||
Viz3d viz("show_follower");
|
||||
|
||||
viz.showWidget("coos", WCoordinateSystem());
|
||||
viz.showWidget("cube", WCube());
|
||||
viz.showWidget("t3d_2", WText3D("Simple 3D follower", Point3d(-0.5, -0.5, 0.5), 0.125, true, Color::green()));
|
||||
viz.spinOnce(1500, true);
|
||||
//viz.getWidget("t3d_2").cast<WText3D>().setText("Updated follower 3D");
|
||||
viz.spin();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user