56 #ifndef OPENMESH_VDPROGMESH_VDPMSYNTHESIZERVIEWERWIDGET_HH
57 #define OPENMESH_VDPROGMESH_VDPMSYNTHESIZERVIEWERWIDGET_HH
65 #include <OpenMesh/Core/IO/MeshIO.hh>
66 #include <OpenMesh/Core/Mesh/TriMesh_ArrayKernelT.hh>
67 #include <OpenMesh/Apps/QtViewer/MeshViewerWidgetT.hh>
69 #include <OpenMesh/Tools/VDPM/MeshTraits.hh>
70 #include <OpenMesh/Tools/VDPM/StreamingDef.hh>
71 #include <OpenMesh/Tools/VDPM/ViewingParameters.hh>
72 #include <OpenMesh/Tools/VDPM/VHierarchy.hh>
73 #include <OpenMesh/Tools/VDPM/VFront.hh>
96 typedef TriMesh_ArrayKernelT<VDPM::MeshTraits> VDPMMesh;
104 using VDPM::VHierarchy;
105 using VDPM::VHierarchyNode;
106 using VDPM::VHierarchyNodeIndex;
107 using VDPM::VHierarchyNodeHandle;
109 using VDPM::ViewingParameters;
119 typedef MeshViewerWidget
Base;
134 VHierarchy vhierarchy_;
136 ViewingParameters viewing_parameters_;
140 unsigned int n_base_vertices_;
141 unsigned int n_base_edges_;
142 unsigned int n_base_faces_;
143 unsigned int n_details_;
150 bool oriented_away(
float sin_square,
151 float distance_square,
152 float product_value);
154 bool screen_space_error(
float mue_square,
156 float distance_square,
157 float product_value);
159 void update_viewing_parameters();
161 virtual void keyPressEvent(QKeyEvent* _event);
166 virtual void draw_scene(
const std::string& _draw_mode);
170 void adaptive_refinement();
172 bool qrefine(VHierarchyNodeHandle _node_handle);
174 void force_vsplit(VHierarchyNodeHandle _node_handle);
176 bool ecol_legal(VHierarchyNodeHandle _parent_handle,
177 VDPMMesh::HalfedgeHandle& v0v1);
179 void get_active_cuts(VHierarchyNodeHandle _node_handle,
182 void vsplit(VHierarchyNodeHandle _node_handle,
185 void ecol(VHierarchyNodeHandle _parent_handle,
186 const VDPMMesh::HalfedgeHandle& v0v1);
196 #endif // OPENMESHAPPS_VDPMSYNTHESIZERVIEWERWIDGET_HH defined
void open_vd_prog_mesh(const char *_filename)
open view-dependent progressive mesh
virtual void draw_scene(const std::string &_draw_mode)
inherited drawing method
Kernel::VertexHandle VertexHandle
Handle for referencing the corresponding item.
std::vector< VHierarchyNodeHandle > VHierarchyNodeHandleContainer
Container for vertex hierarchy node handles.