51#ifndef OPENMESH_VDPROGMESH_VDPMSYNTHESIZERVIEWERWIDGET_HH
52#define OPENMESH_VDPROGMESH_VDPMSYNTHESIZERVIEWERWIDGET_HH
60#include <OpenMesh/Core/IO/MeshIO.hh>
61#include <OpenMesh/Core/Mesh/TriMesh_ArrayKernelT.hh>
62#include <OpenMesh/Apps/QtViewer/MeshViewerWidgetT.hh>
64#include <OpenMesh/Tools/VDPM/MeshTraits.hh>
65#include <OpenMesh/Tools/VDPM/StreamingDef.hh>
66#include <OpenMesh/Tools/VDPM/ViewingParameters.hh>
67#include <OpenMesh/Tools/VDPM/VHierarchy.hh>
68#include <OpenMesh/Tools/VDPM/VFront.hh>
82typedef TriMesh_ArrayKernelT<VDPM::MeshTraits> VDPMMesh;
90 using VDPM::VHierarchy;
91 using VDPM::VHierarchyNode;
92 using VDPM::VHierarchyNodeIndex;
93 using VDPM::VHierarchyNodeHandle;
95 using VDPM::ViewingParameters;
126 unsigned int n_base_vertices_;
127 unsigned int n_base_edges_;
128 unsigned int n_base_faces_;
129 unsigned int n_details_;
136 bool oriented_away(
float sin_square,
137 float distance_square,
138 float product_value);
140 bool screen_space_error(
float mue_square,
142 float distance_square,
143 float product_value);
145 void update_viewing_parameters();
147 virtual void keyPressEvent(QKeyEvent* _event)
override;
152 virtual void draw_scene(
const std::string& _draw_mode)
override;
156 void adaptive_refinement();
Kernel::VertexHandle VertexHandle
Handle for referencing the corresponding item.
Kernel::HalfedgeHandle HalfedgeHandle
Scalar type.
std::vector< VHierarchyNodeHandle > VHierarchyNodeHandleContainer
Container for vertex hierarchy node handles.