ug4
|
Smoothes vertices during refinement. More...
#include <smooth_projector.h>
Public Member Functions | |
number | change_rate () const |
int | iterations () const |
virtual number | new_vertex (Vertex *vrt, Edge *parent) |
called when a new vertex was created from an old edge. More... | |
virtual number | new_vertex (Vertex *vrt, Face *parent) |
called when a new vertex was created from an old face. More... | |
virtual number | new_vertex (Vertex *vrt, Volume *parent) |
called when a new vertex was created from an old volume. More... | |
virtual void | refinement_begins (const ISubGrid *sg) |
called before refinement begins More... | |
virtual void | refinement_ends () |
called when refinement is done. More... | |
void | set_change_rate (number changeRate) |
void | set_iterations (int iterations) |
SmoothProjector () | |
SmoothProjector (int iterations, number changeRate) | |
SmoothProjector (SPIGeometry3d geometry, int iterations, number changeRate) | |
Public Member Functions inherited from ug::RefinementProjector | |
virtual SPIGeometry3d | geometry () const |
virtual number | new_vertex (Vertex *vrt, Vertex *parent) |
called when a new vertex was created from an old vertex. More... | |
virtual bool | refinement_begins_requires_subgrid () const |
RefinementProjector () | |
RefinementProjector (SPElementCallback cb) | |
RefinementProjector (SPIGeometry3d geometry) | |
RefinementProjector (SPIGeometry3d geometry, SPElementCallback concernedElems) | |
virtual void | set_concerned_elements (SPElementCallback cb) |
virtual void | set_geometry (SPIGeometry3d geometry) |
virtual | ~RefinementProjector () |
Private Member Functions | |
template<class Archive > | |
void | serialize (Archive &ar, const unsigned int version) |
Private Attributes | |
number | m_changeRate |
int | m_iterations |
std::vector< Vertex * > | m_newVrts |
Friends | |
class | boost::serialization::access |
Additional Inherited Members | |
Protected Member Functions inherited from ug::RefinementProjector | |
IGeometry3d & | geom () |
const IGeometry3d & | geom () const |
template<class TElem > | |
bool | is_concerned (TElem *e) |
vector3 | pos (Vertex *v) const |
void | set_pos (Vertex *v, const vector3 &p) |
Smoothes vertices during refinement.
|
inline |
|
inline |
|
inline |
|
inline |
References m_changeRate.
|
inline |
References m_iterations.
Referenced by set_iterations().
called when a new vertex was created from an old edge.
Reimplemented from ug::RefinementProjector.
References m_newVrts, and ug::RefinementProjector::new_vertex().
called when a new vertex was created from an old face.
Reimplemented from ug::RefinementProjector.
References m_newVrts, and ug::RefinementProjector::new_vertex().
called when a new vertex was created from an old volume.
Reimplemented from ug::RefinementProjector.
References m_newVrts, and ug::RefinementProjector::new_vertex().
|
inlinevirtual |
called before refinement begins
Reimplemented from ug::RefinementProjector.
References m_newVrts, and ug::RefinementProjector::refinement_begins().
|
virtual |
called when refinement is done.
The actual smoothing is performed here
Reimplemented from ug::RefinementProjector.
References ug::Grid::associated_elements(), ug::Grid::begin_marking(), end_for, ug::Grid::end_marking(), for_each_in_vec, ug::RefinementProjector::geom(), ug::IGeometry< dim >::grid(), ug::Grid::is_marked(), m_changeRate, m_iterations, m_newVrts, ug::Grid::mark(), ug::EdgeVertices::num_vertices(), ug::FaceVertices::num_vertices(), ug::VolumeVertices::num_vertices(), ug::RefinementProjector::pos(), ug::RefinementProjector::set_pos(), ug::PointerConstArray< TPtr >::size(), ug::EdgeVertices::vertex(), ug::FaceVertices::vertex(), and ug::VolumeVertices::vertex().
|
inlineprivate |
References m_changeRate, m_iterations, and UG_EMPTY_BASE_CLASS_SERIALIZATION.
|
inline |
References m_changeRate.
|
inline |
References iterations(), and m_iterations.
|
friend |
|
private |
Referenced by change_rate(), refinement_ends(), serialize(), and set_change_rate().
|
private |
Referenced by iterations(), refinement_ends(), serialize(), and set_iterations().
|
private |
Referenced by new_vertex(), refinement_begins(), and refinement_ends().