ug4
|
Projects new vertices onto a sphere during refinement. More...
#include <soma_projector.h>
Public Member Functions | |
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... | |
SomaProjector () | |
SomaProjector (const vector3 ¢er, const vector3 &axis, const vector3 &soma, const number &rad) | |
SomaProjector (SPIGeometry3d geometry, const vector3 ¢er, const vector3 &axis, const vector3 &soma, const number &rad) | |
virtual | ~SomaProjector () |
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 void | refinement_begins (const ISubGrid *sg) |
called before refinement begins More... | |
virtual bool | refinement_begins_requires_subgrid () const |
virtual void | refinement_ends () |
called when refinement is done More... | |
RefinementProjector () | |
RefinementProjector (SPElementCallback cb) | |
RefinementProjector (SPIGeometry3d geometry) | |
RefinementProjector (SPIGeometry3d geometry, SPElementCallback concernedElems) | |
virtual void | set_concerned_elements (SPElementCallback cb) |
virtual | ~RefinementProjector () |
Protected Member Functions | |
virtual void | set_geometry (SPIGeometry3d geometry) |
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) |
Private Member Functions | |
void | attach_surf_params () |
helper method to attach surface parameters and do a consistency check More... | |
void | check_attachment () |
check if global attachment was declared More... | |
template<class TElem > | |
number | perform_projection (Vertex *vrt, TElem *parent) |
template<class TElem > | |
void | project_to_soma_surface (Vertex *vrt, TElem *parent) |
template<class Archive > | |
void | serialize (Archive &ar, const unsigned int version) |
template<class TElem > | |
bool | vertex_at_soma_surf (Vertex *vrt, TElem *parent) |
Friends | |
class | boost::serialization::access |
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.
Only vertices which are at the soma (axial parameter: -1) are projected on the surface. This works well for good natured connecting neurites.
|
inline |
References ug::GlobalAttachments::is_declared().
|
inline |
References ug::GlobalAttachments::is_declared().
|
inline |
References attach_surf_params().
|
inlinevirtual |
|
inlineprivate |
helper method to attach surface parameters and do a consistency check
References check_attachment(), ug::RefinementProjector::geometry(), ug::Grid::has_vertex_attachment(), ug::GlobalAttachments::is_declared(), m_aaSurfParams, m_aSurfParams, m_cah, SmartPtr< T, FreePolicy >::refcount_ptr(), and UG_COND_THROW.
Referenced by set_geometry(), and SomaProjector().
|
inlineprivate |
check if global attachment was declared
References ug::GlobalAttachments::is_declared().
Referenced by attach_surf_params().
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 |
old vertex position
References m_aaSurfParams, m_soma, m_somaRad, ug::RefinementProjector::pos(), ug::RefinementProjector::set_pos(), ug::VecAdd(), ug::VecLength(), ug::VecScale(), and ug::VecSubtract().
Referenced by perform_projection().
|
inlineprivate |
References m_axis, m_center, m_soma, m_somaRad, and UG_EMPTY_BASE_CLASS_SERIALIZATION.
|
inlineprotectedvirtual |
Reimplemented from ug::RefinementProjector.
References attach_surf_params(), ug::RefinementProjector::geometry(), and ug::RefinementProjector::set_geometry().
|
inlineprivate |
References m_aaSurfParams.
Referenced by perform_projection().
|
friend |
|
private |
Referenced by attach_surf_params(), project_to_soma_surface(), and vertex_at_soma_surf().
|
private |
Referenced by attach_surf_params().
|
private |
Referenced by perform_projection(), and serialize().
|
private |
Referenced by attach_surf_params().
|
private |
Referenced by perform_projection(), and serialize().
|
private |
Referenced by project_to_soma_surface(), and serialize().
|
private |
Referenced by project_to_soma_surface(), and serialize().