12#ifndef BELFEM_CL_CONTROLPOINT_HPP
13#define BELFEM_CL_CONTROLPOINT_HPP
35 uint mElementCounter = 0 ;
41 uint mControlPointCounter = 0 ;
76 x(
const uint aIndex )
const;
201 BELFEM_ASSERT( aIndex < 3,
"Invalid index %u for control point %lu.", (
unsigned int ) aIndex, (
long unsigned int )
id() );
202 return mCoords[ aIndex ];
210 return Vector<real>( { mCoords[0], mCoords[1], mCoords[2] } );
218 return mElementCounter;
226 return mControlPointCounter;
235 "Invalid control point index %u for element %lu. (expect < %u)",
236 (
unsigned int ) aIndex, (
long unsigned int )
id(),
237 (
unsigned int ) mElementCounter );
238 return mElements[ aIndex ];
247 "Invalid control point index %u for element %lu. (expect < %u)",
248 (
unsigned int ) aIndex, (
long unsigned int )
id(), (
unsigned int )
250 return mElements[ aIndex ];
259 "Invalid control point index %u for control point %lu. (expect < %u)",
260 (
unsigned int ) aIndex, (
long unsigned int )
id(),
261 (
unsigned int ) mControlPointCounter );
262 return mControlPoints[ aIndex ];
271 "Invalid control point index %u for control point %lu. (expect < %u)",
272 (
unsigned int ) aIndex, (
long unsigned int )
id(),
273 (
unsigned int ) mControlPointCounter );
274 return mControlPoints[ aIndex ];
289 ++mControlPointCounter;
296 mElements[ mElementCounter++ ] = aElement;
303 mControlPoints[ mControlPointCounter++ ] = aControlPoint;
312 + ( mElementCounter ) *
sizeof(
Element * )
#define BELFEM_ASSERT(aCheck,...)
Definition assert.hpp:244
Column vector.
Definition cl_BZ_Vector.hpp:41
Basis()
Definition cl_Mesh_Basis.cpp:21
Definition cl_ControlPoint.hpp:27
Element * element(const uint aIndex) override
Definition cl_ControlPoint.hpp:232
real y() const
Definition cl_ControlPoint.hpp:183
void allocate_element_container()
Definition cl_ControlPoint.cpp:62
void set_coords(const real aX, const real aY, const real aZ)
Definition cl_ControlPoint.cpp:52
void reset_element_container() override
Definition cl_ControlPoint.cpp:89
uint number_of_elements() const override
Definition cl_ControlPoint.hpp:216
void increment_control_point_counter()
Definition cl_ControlPoint.hpp:287
void allocate_control_point_container()
Definition cl_ControlPoint.cpp:75
ControlPoint * control_point(const uint aIndex)
Definition cl_ControlPoint.hpp:256
size_t memory() const
Definition cl_ControlPoint.hpp:309
real z() const
Definition cl_ControlPoint.hpp:191
Vector< real > coords() const
Definition cl_ControlPoint.hpp:208
real x() const
Definition cl_ControlPoint.hpp:175
ControlPoint(const id_t aID, const real aX=0.0, const real aY=0.0, const real aZ=0.0)
Definition cl_ControlPoint.cpp:21
EntityType entity_type() const override
returns the type of this vertex
Definition cl_ControlPoint.hpp:167
uint number_of_control_points() const
Definition cl_ControlPoint.hpp:224
void add_control_point(ControlPoint *aControlPoint)
Definition cl_ControlPoint.hpp:301
void reset_control_point_container()
Definition cl_ControlPoint.cpp:102
void increment_element_counter()
Definition cl_ControlPoint.hpp:280
void add_element(Element *aElement)
Definition cl_ControlPoint.hpp:294
Lagrange Element baseclass.
Definition cl_Element.hpp:35
Definition cl_EF_EdgeFunction.hpp:17
USER GUIDES:
Definition cl_Capacitor.cpp:16
unsigned int uint
Definition typedefs.hpp:30
unsigned int id_t
Definition typedefs.hpp:41
EntityType
Definition Mesh_Enums.hpp:116
@ CONTROLPOINT
Definition Mesh_Enums.hpp:123
double real
Definition typedefs.hpp:36