Empirical
Public Member Functions | Protected Types | Protected Attributes | List of all members
emp::CircleBody2D Class Reference

#include <Body2D.h>

Inheritance diagram for emp::CircleBody2D:
emp::Body2D_Base

Public Member Functions

 CircleBody2D (const Circle2D< double > &_p)
 
 ~CircleBody2D ()
 
const Circle2D< double > & GetPerimeter () const
 
const PointGetAnchor () const
 
const PointGetCenter () const
 
double GetRadius () const
 
double GetTargetRadius () const
 
void SetPosition (const Point &p)
 
void SetRadius (double r)
 
void SetTargetRadius (double t)
 
void Translate (const Point &t)
 
bool IsLinkedFrom (const CircleBody2D &link_org) const
 
bool IsLinkedTo (const CircleBody2D &link_org) const
 
bool IsLinked (const CircleBody2D &link_org) const
 
size_t GetLinkCount () const
 
void AddLink (LINK_TYPE type, CircleBody2D &link_org, double cur_dist, double target_dist)
 
void RemoveLink (Ptr< BodyLink< CircleBody2D > > link)
 
const BodyLink< CircleBody2D > & FindLink (const CircleBody2D &link_org) const
 
BodyLink< CircleBody2D > & FindLink (CircleBody2D &link_org)
 
double GetLinkDist (const CircleBody2D &link_org) const
 
double GetTargetLinkDist (const CircleBody2D &link_org) const
 
void ShiftLinkDist (CircleBody2D &link_org, double change)
 
Ptr< CircleBody2DBuildOffspring (Point offset)
 
void BodyUpdate (double change_factor=1)
 
void ProcessStep (double friction=0)
 
void FinalizePosition (const Point &max_coords)
 
bool OK ()
 
double GetBirthTime () const
 
const AngleGetOrientation () const
 
const PointGetVelocity () const
 
double GetMass () const
 
uint32_t GetColorID () const
 
bool IsReproducing () const
 
int GetReproCount () const
 
Point GetShift () const
 
double GetPressure () const
 
bool GetDetachOnDivide () const
 
void SetBirthTime (double in_time)
 
void SetColorID (uint32_t in_id)
 
void TurnLeft (int steps=1)
 
void TurnRight (int steps=1)
 
void IncSpeed (const Point &offset)
 
void IncSpeed ()
 
void DecSpeed ()
 
void SetVelocity (double x, double y)
 
void SetVelocity (const Point &v)
 
void AddShift (const Point &s)
 
void SetDetachOnDivide (bool in=true)
 

Protected Types

enum  LINK_TYPE {
  LINK_TYPE::DEFAULT, LINK_TYPE::REPRODUCTION, LINK_TYPE::ATTACK, LINK_TYPE::PARASITE,
  LINK_TYPE::MULTICELL
}
 

Protected Attributes

double birth_time
 
Angle orientation
 
Point velocity
 
double mass
 
uint32_t color_id
 
int repro_count
 
Point shift
 
Point cum_shift
 
Point total_abs_shift
 
double pressure
 
bool detach_on_divide
 

Member Enumeration Documentation

enum emp::Body2D_Base::LINK_TYPE
strongprotectedinherited
Enumerator
DEFAULT 
REPRODUCTION 
ATTACK 
PARASITE 
MULTICELL 

Constructor & Destructor Documentation

emp::CircleBody2D::CircleBody2D ( const Circle2D< double > &  _p)
inline
emp::CircleBody2D::~CircleBody2D ( )
inline

Member Function Documentation

void emp::CircleBody2D::AddLink ( LINK_TYPE  type,
CircleBody2D link_org,
double  cur_dist,
double  target_dist 
)
inline
void emp::Body2D_Base::AddShift ( const Point s)
inlineinherited
void emp::CircleBody2D::BodyUpdate ( double  change_factor = 1)
inline
Ptr<CircleBody2D> emp::CircleBody2D::BuildOffspring ( Point  offset)
inline
void emp::Body2D_Base::DecSpeed ( )
inlineinherited
void emp::CircleBody2D::FinalizePosition ( const Point max_coords)
inline
const BodyLink<CircleBody2D>& emp::CircleBody2D::FindLink ( const CircleBody2D link_org) const
inline
BodyLink<CircleBody2D>& emp::CircleBody2D::FindLink ( CircleBody2D link_org)
inline
const Point& emp::CircleBody2D::GetAnchor ( ) const
inline
double emp::Body2D_Base::GetBirthTime ( ) const
inlineinherited
const Point& emp::CircleBody2D::GetCenter ( ) const
inline
uint32_t emp::Body2D_Base::GetColorID ( ) const
inlineinherited
bool emp::Body2D_Base::GetDetachOnDivide ( ) const
inlineinherited
size_t emp::CircleBody2D::GetLinkCount ( ) const
inline
double emp::CircleBody2D::GetLinkDist ( const CircleBody2D link_org) const
inline
double emp::Body2D_Base::GetMass ( ) const
inlineinherited
const Angle& emp::Body2D_Base::GetOrientation ( ) const
inlineinherited
const Circle2D<double>& emp::CircleBody2D::GetPerimeter ( ) const
inline
double emp::Body2D_Base::GetPressure ( ) const
inlineinherited
double emp::CircleBody2D::GetRadius ( ) const
inline
int emp::Body2D_Base::GetReproCount ( ) const
inlineinherited
Point emp::Body2D_Base::GetShift ( ) const
inlineinherited
double emp::CircleBody2D::GetTargetLinkDist ( const CircleBody2D link_org) const
inline
double emp::CircleBody2D::GetTargetRadius ( ) const
inline
const Point& emp::Body2D_Base::GetVelocity ( ) const
inlineinherited
void emp::Body2D_Base::IncSpeed ( const Point offset)
inlineinherited
void emp::Body2D_Base::IncSpeed ( )
inlineinherited
bool emp::CircleBody2D::IsLinked ( const CircleBody2D link_org) const
inline
bool emp::CircleBody2D::IsLinkedFrom ( const CircleBody2D link_org) const
inline
bool emp::CircleBody2D::IsLinkedTo ( const CircleBody2D link_org) const
inline
bool emp::Body2D_Base::IsReproducing ( ) const
inlineinherited
bool emp::CircleBody2D::OK ( )
inline
void emp::CircleBody2D::ProcessStep ( double  friction = 0)
inline
void emp::CircleBody2D::RemoveLink ( Ptr< BodyLink< CircleBody2D > >  link)
inline
void emp::Body2D_Base::SetBirthTime ( double  in_time)
inlineinherited
void emp::Body2D_Base::SetColorID ( uint32_t  in_id)
inlineinherited
void emp::Body2D_Base::SetDetachOnDivide ( bool  in = true)
inlineinherited
void emp::CircleBody2D::SetPosition ( const Point p)
inline
void emp::CircleBody2D::SetRadius ( double  r)
inline
void emp::CircleBody2D::SetTargetRadius ( double  t)
inline
void emp::Body2D_Base::SetVelocity ( double  x,
double  y 
)
inlineinherited
void emp::Body2D_Base::SetVelocity ( const Point v)
inlineinherited
void emp::CircleBody2D::ShiftLinkDist ( CircleBody2D link_org,
double  change 
)
inline
void emp::CircleBody2D::Translate ( const Point t)
inline
void emp::Body2D_Base::TurnLeft ( int  steps = 1)
inlineinherited
void emp::Body2D_Base::TurnRight ( int  steps = 1)
inlineinherited

Member Data Documentation

double emp::Body2D_Base::birth_time
protectedinherited
uint32_t emp::Body2D_Base::color_id
protectedinherited
Point emp::Body2D_Base::cum_shift
protectedinherited
bool emp::Body2D_Base::detach_on_divide
protectedinherited
double emp::Body2D_Base::mass
protectedinherited
Angle emp::Body2D_Base::orientation
protectedinherited
double emp::Body2D_Base::pressure
protectedinherited
int emp::Body2D_Base::repro_count
protectedinherited
Point emp::Body2D_Base::shift
protectedinherited
Point emp::Body2D_Base::total_abs_shift
protectedinherited
Point emp::Body2D_Base::velocity
protectedinherited

The documentation for this class was generated from the following file: