ug4
|
Projects new vertices onto a sphere during refinement. More...
#include <cylinder_projector.h>
Public Member Functions | |
const vector3 & | axis () const |
const vector3 & | center () const |
CylinderProjector () | |
CylinderProjector (const vector3 ¢er, const vector3 &axis) | |
CylinderProjector (const vector3 ¢er, const vector3 &axis, number radius) | |
CylinderProjector (const vector3 ¢er, const vector3 &axis, number radius, number influenceRadius) | |
CylinderProjector (SPIGeometry3d geometry, const vector3 ¢er, const vector3 &axis, number radius, number influenceRadius) | |
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_axis (const vector3 &axis) |
void | set_center (const vector3 ¢er) |
void | set_influence_radius (number influenceRadius) |
void | set_radius (number radius) |
virtual | ~CylinderProjector () |
![]() | |
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_axis |
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 |
|
inlinevirtual |
|
inline |
References m_axis.
Referenced by set_axis().
|
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 ug::DistancePointToRay(), m_axis, m_center, m_influenceRadius, m_radius, p, ug::RefinementProjector::pos(), ug::ProjectPointToRay(), ug::RefinementProjector::set_pos(), ug::SMALL, 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_axis, m_center, m_influenceRadius, m_radius, and UG_EMPTY_BASE_CLASS_SERIALIZATION.
|
inline |
|
inline |
References m_influenceRadius.
|
friend |
|
private |
Referenced by axis(), perform_projection(), serialize(), and set_axis().
|
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().