Skip to Content.
Sympa Menu

cgal-discuss - [cgal-discuss] Viewer for Arrangement 2D

Subject: CGAL users discussion list

List archive

[cgal-discuss] Viewer for Arrangement 2D


Chronological Thread 
  • From: "jasmeet.singh" <>
  • To:
  • Subject: [cgal-discuss] Viewer for Arrangement 2D
  • Date: Mon, 29 Jul 2019 22:26:29 -0500 (CDT)
  • Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None ; spf=SoftFail ; spf=Pass
  • Ironport-phdr: 9a23:YgBPkRxHA4JWMS/XCy+O+j09IxM/srCxBDY+r6Qd2+sRIJqq85mqBkHD//Il1AaPAdyBraMewLSH+4nbGkU4qa6bt34DdJEeHzQksu4x2zIaPcieFEfgJ+TrZSFpVO5LVVti4m3peRMNQJW2aFLduGC94iAPERvjKwV1Ov71GonPhMiryuy+4ZLebxhWiDanZb5+Mhq6oATVu8ILnYZsN6E9xwfTrHBVYepW32RoJVySnxb4+Mi9+YNo/jpTtfw86cNOSL32cKskQ7NWCjQmKH0169bwtRbfVwuP52ATXXsQnxFVHgXK9hD6XpP2sivnqupw3TSRMMPqQbwoXzmp8qFmQwLqhigaLT406G/ZhMxugqxYvRyuqABwzYHPbYGJLfpyYr/Rcc8GSWdDWMtaSixPApm7b4sKF+cNM+RYoJPmp1sLsxSxGxWsCPn0yj9JgH/20q063+o8GgzB3gwvBckOsHHKo9rrKKceS/u1zKjOzTXMb/NawzL955bUfRw8vP2BRrNwccvNyUY0FwPFk0+cppb5MD+P1+QNtXGW4ux9XuyhjG4nrht+ojmpxso0jInGnJkaxUvA9Spn2oo6Odq4SEtjbd6rEZtQqyGaN5ZtTc84X25ovyM6x7sbspC4ZCgH0IkryhrbZvCdfYWF4QjvWeWQLDtihX9oebSyjAuo/0e60O3zTMy03U5KriVbltnMsWgA1xrc58SdTPty5Fyu1i2L1w/N8O1LPUc0la/DJ54gxL4/iIYTvFzeEiLynEj6lqGbe0Y+9uWr6unreLTrq56EO49xkA7+M6AumsKlAeQ/NwgDR2qb9v6n1L3m40L2XqlKguctkqnYtpDaKsQbqrS8AwBLzokv9guzAiyn0NQZgXkIN1JFeA+dg4fzJ17COvH4DfGnj1S2jDhr3+zGPqHmApjVMnfDn63ufbJk50FByQoz1sxQ549PCrEaO//zQU/wtNnADhAjKQC0wuDnCM981owEQ26PDLWZY+vutgqD6esrZuWNf4QIoy3VKv4/5veog2Vqt0UaePzj35IMbX21ArJ9IkOWYTCk1tUICmIHsxZ4V+3sh13EVDNYPi+aXqMg7DEmToutS4bFENP+yIed1Tu2S8UFLltNDUqBRC+xJte0HswUYSfXGfdP1zkNVLyvUYgkjE38tQ7mwbp6aOPfvCwe58m6iIpFotbLnBR3zgRaStyH2jjRHWB1gmkIWnk/1+Z+px4lkwrR4e1Dm/VdUOdrybZJXwM9bMOOybA8Ddn4UAbMONyOTQT/Tw==

Hi,

I was in the process to develop the Arrangement 2D viewer (GSoC 2019). The
viewer would basically open a new window and show the elements (points,
edges, and faces) of the arrangement in it. I was facing some issues while
working on the viewer in this branch
<https://github.com/CGAL/cgal-public-dev/tree/gsoc2019-add_basic_viewer_arrangement-jasmeet>

. The example I added is named 'draw_arrangement.cpp'.

I started simple and am able to view an arrangement for line segments.
However, when I tried to view an arrangement of circular segments (example
circular_arcs.cpp), I witnessed the following error(s):

//----------------------------------------------------------------------------------------------------
GraphicsView/include/CGAL/Buffer_for_vao.h:82: error: no type named
‘Point_2’ in ‘struct
CGAL::internal_kernel_traits::Dummy_kernel<CGAL::_One_root_point_2&lt;__gmp_expr&lt;__mpq_struct
[1], __mpq_struct [1]>, true> >’
static Local_point get_local_point(const typename K::Point_2& p)
^~~~~~~~~~~~~~~
/home/singh/gsoc/cgal-public-dev/GraphicsView/include/CGAL/Buffer_for_vao.h:87:
error: no type named ‘Weighted_point_2’ in ‘struct
CGAL::internal_kernel_traits::Dummy_kernel<CGAL::_One_root_point_2&lt;__gmp_expr&lt;__mpq_struct
[1], __mpq_struct [1]>, true> >’
static Local_point get_local_point(const typename K::Weighted_point_2&
p)
^~~~~~~~~~~~~~~
//----------------------------------------------------------------------------------------------------

and some more errors similar to these. ( Basically, Point_2 type defined in
the Arr_circle_segment_traits_2 class, Kernel_trait<P> is Dummy_kernel
instead of the kernel used.)

I tried to troubleshoot the problem by taking a leaf out of the Arrangement
2D Demo and using the following class structure for the Arrangement 2D
viewer-

//----------------------------------------------------------------------------------------------------

template <class Arrangement_2>
class SimpleArrangementViewerQtBase : public Basic_viewer_qt
{
// Base viewer class

// function that adds elements to the buffer
// so that they can be viewed
compute_elements();
}

template <typename Arrangement_2>
class SimpleArrangementViewerQt
: public SimpleArrangementViewerQtBase<Arrangement_2> {
public:
SimpleArrangementViewerQt(QWidget *parent)
: SimpleArrangementViewerQtBase<Arrangement_2>(parent) {}
};

template <typename Kernel_, typename Dcel>
class SimpleArrangementViewerQt <
CGAL::Arrangement_2<CGAL::Arr_segment_traits_2&lt;Kernel_>, Dcel>>
: public SimpleArrangementViewerQtBase<
CGAL::Arrangement_2<CGAL::Arr_segment_traits_2&lt;Kernel_>, Dcel>>
{

typedef SimpleArrangementViewerQtBase<CGAL::Arrangement_2&lt;Traits,
Dcel>> Superclass;

public:
SimpleArrangementViewerQt(QWidget *parent,
const Arrangement_2 &a_arr,
const char *title)
: Superclass(parent, title), arr(a_arr)
{
compute_elements();
}
}

//----------------------------------------------------------------------------------------------------


this worked for linear segments again but when I added a similar class for
Arrangement_2 CGAL::Arr_circle_segment_traits_2 (as below), it gave me the
same errors as before.

//----------------------------------------------------------------------------------------------------

template <typename CircularKernel, typename Dcel>
class SimpleArrangementViewerQt<

CGAL::Arrangement_2<CGAL::Arr_circle_segment_traits_2&lt;CircularKernel>,
Dcel>>
: public SimpleArrangementViewerQtBase<CGAL::Arrangement_2&lt;
CGAL::Arr_circle_segment_traits_2&lt;CircularKernel>, Dcel>>
//---------------------------------------------------------------------------------------------------

1. Could you help me get around this problem?

2. To draw the various curves, the demo uses Qt5's various function defined
in qpainter.h, eg. drawArc, drawEllipse. However, the basic viewer doesn't
have support for drawing such curves. How can I draw the curves in the
arrangement without much duplication in the code? Should I write the draw
functionalities for circular arcs, bezier curves, etc. from scratch or can I
use it from somewhere?





--
Sent from: http://cgal-discuss.949826.n4.nabble.com/



Archive powered by MHonArc 2.6.18.

Top of Page