ug4
|
Projects new vertices onto a sphere during refinement. More...
#include <sphere_projector.h>
Public Member Functions | |
const vector3 & | center () const |
number | influence_radius () const |
virtual number | new_vertex (Vertex *vrt, Edge *parent) |
called when a new vertex was created from an old edge. | |
virtual number | new_vertex (Vertex *vrt, Face *parent) |
called when a new vertex was created from an old face. | |
virtual number | new_vertex (Vertex *vrt, Volume *parent) |
called when a new vertex was created from an old volume. | |
number | radius () const |
void | set_center (const vector3 ¢er) |
void | set_influence_radius (number influenceRadius) |
void | set_radius (number radius) |
SphereProjector () | |
template<class TGeomProvider > | |
SphereProjector (const TGeomProvider &geometry, const vector3 ¢er, number radius, number influenceRadius) | |
SphereProjector (const vector3 ¢er) | |
SphereProjector (const vector3 ¢er, number radius) | |
SphereProjector (const vector3 ¢er, number radius, number influenceRadius) | |
SphereProjector (SPIGeometry3d geometry, const vector3 ¢er) | |
SphereProjector (SPIGeometry3d geometry, const vector3 ¢er, number radius) | |
virtual | ~SphereProjector () |
![]() | |
virtual SPIGeometry3d | geometry () const |
virtual number | new_vertex (Vertex *vrt, Vertex *parent) |
called when a new vertex was created from an old vertex. | |
virtual void | refinement_begins (const ISubGrid *sg) |
called before refinement begins | |
virtual bool | refinement_begins_requires_subgrid () const |
virtual void | refinement_ends () |
called when refinement is done | |
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 TElem > | |
number | perform_projection (Vertex *vrt, TElem *parent) |
template<class Archive > | |
void | serialize (Archive &ar, const unsigned int version) |
Private Attributes | |
vector3 | m_center |
number | m_influenceRadius |
number | m_radius |
Friends | |
class | boost::serialization::access |
Additional Inherited Members | |
![]() | |
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) |
Projects new vertices onto a sphere during refinement.
For projection during refinement the radius property is ignored. Instead the distance to the center of a newly inserted vertex is calculated as the average distance of the vertices of the parent element to the center. The radius property thus defaults to -1.
You may still specify a radius. This radius can be used for auto-fitting of the center and for reprojecting a set of vertices onto the sphere.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inlinevirtual |
|
inline |
References m_center.
Referenced by set_center().
|
inline |
References m_influenceRadius.
called when a new vertex was created from an old edge.
Reimplemented from ug::RefinementProjector.
References perform_projection().
called when a new vertex was created from an old face.
Reimplemented from ug::RefinementProjector.
References perform_projection().
called when a new vertex was created from an old volume.
Reimplemented from ug::RefinementProjector.
References perform_projection().
|
inlineprivate |
References m_center, m_influenceRadius, m_radius, p, ug::RefinementProjector::pos(), ug::RefinementProjector::set_pos(), ug::SMALL, ug::VecDistance(), ug::VecLength(), ug::VecScale(), and ug::VecSubtract().
Referenced by new_vertex(), new_vertex(), and new_vertex().
|
inline |
References m_radius.
Referenced by set_radius().
|
inlineprivate |
References m_center, m_influenceRadius, m_radius, and UG_EMPTY_BASE_CLASS_SERIALIZATION.
|
inline |
|
inline |
References m_influenceRadius.
|
friend |
|
private |
Referenced by center(), perform_projection(), serialize(), and set_center().
|
private |
Referenced by influence_radius(), perform_projection(), serialize(), and set_influence_radius().
|
private |
Referenced by perform_projection(), radius(), serialize(), and set_radius().