54#ifndef OPENMESH_SUBDIVIDER_UNIFORM_COMPOSITETRAITS_HH
55#define OPENMESH_SUBDIVIDER_UNIFORM_COMPOSITETRAITS_HH
91 typedef typename Refs::HalfedgeHandle HalfedgeHandle;
92 typedef typename Refs::Scalar Scalar;
93 typedef typename Refs::Point
Point;
94 HalfedgeHandle red_halfedge_handle_;
95 unsigned int generation_;
102 const unsigned int& generation() {
return generation_; }
103 void set_generation(
const unsigned int& _g) { generation_ = _g; }
104 void inc_generation() { ++generation_; }
105 void set_red() { red_ = 1; }
106 void set_green() {red_ = 0; }
107 bool is_red() {
return red_; }
108 bool is_green() {
return !red_; }
109 void set_red_halfedge_handle(
const HalfedgeHandle& _heh)
110 { red_halfedge_handle_ = _heh; }
111 HalfedgeHandle& red_halfedge_handle() {
return red_halfedge_handle_; }
112 void set_quality(
const Scalar& _q) { quality_ = _q; }
113 Scalar& quality() {
return quality_; }
114 const Point& midpoint()
const {
return midpoint_; }
115 void set_midpoint(
const Point& _p) { midpoint_ = _p; }
116 const Point& position()
const {
return position_; }
117 void set_position(
const Point& _p) { position_ = _p; }
123 typedef typename Refs::Point
Point;
124 typedef typename Refs::Scalar Scalar;
129 const Point& midpoint()
const {
return midpoint_; }
130 void set_midpoint(
const Point& _vh) { midpoint_ = _vh; }
131 const Scalar& length()
const {
return length_; }
132 void set_length(
const Scalar& _s) { length_ = _s; }
133 const Point& position()
const {
return position_; }
134 void set_position(
const Point& _p) { position_ = _p; }
140 typedef typename Refs::Point
Point;
144 unsigned int generation_;
146 const Point& new_pos()
const {
return new_pos_; }
147 void set_new_pos(
const Point& _p) { new_pos_ = _p; }
148 const unsigned int& generation()
const {
return generation_; }
149 void set_generation(
const unsigned int& _i) { generation_ = _i; }
150 const Point& orig_pos()
const {
return orig_pos_; }
151 void set_orig_pos(
const Point& _p) { orig_pos_ = _p; }
152 const Point& position()
const {
return position_; }
153 void set_position(
const Point& _p) { position_ = _p; }
This file provides some macros containing attribute usage.
Contains all the mesh ingredients like the polygonal mesh, the triangle mesh, different mesh kernels ...
Definition: MeshItems.hh:59
@ Normal
Add normals to mesh item (vertices/faces)
Definition: Attributes.hh:82
Base class for all traits.
Definition: Traits.hh:122
Vec3f Point
The default coordinate type is OpenMesh::Vec3f.
Definition: Traits.hh:124
Uniform Composite Subdivision framework.
Definition: CompositeTraits.hh:80
This file defines the default traits and some convenience macros.
#define FaceTraits
Macro for defining the face traits. See Specifying your MyMesh.
Definition: Traits.hh:103
#define VertexTraits
Macro for defining the vertex traits. See Specifying your MyMesh.
Definition: Traits.hh:91
#define EdgeTraits
Macro for defining the edge traits. See Specifying your MyMesh.
Definition: Traits.hh:99