Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Class Members | File Members

NuclearFamily Class Reference

#include <NuclearFamily.h>

List of all members.

Public Member Functions

 NuclearFamily ()
 NuclearFamily (Individual *mother, Individual *father)
void addChild (Individual *child)
bool hasChild (Individual *child)
void calculateWidth (bool classicalOrder)
void drawVerticalDropToIndividual (DrawingCanvas &dc, Individual *pChild, double x, double y)
void draw (Individual *startIndividual, DrawingCanvas &dc, double startX, double startY, bool classicalOrder, bool dashedOrg=false)
void drawSpouseConnectors (Individual *individual, const double horizontalInterval, const double iconInterval, const double iconDiameter, DrawingCanvas &dc)
void sortChildrenInClassicalOrder (bool consanguinousFlag, bool mutipleDT=false)
void sortChildrenBasedOnDataField (const std::string &name, bool dobSortOrder)
void findTwinsByDOB ()
void setTotalWidth (unsigned total)
void setLeftWidth (unsigned left)
void setRightWidth (unsigned right)
void setTwinGroupCount (unsigned twinGroupCount)
void setLeftConnectionShiftFlag (bool value)
Individual * getMother ()
Individual * getFather ()
unsigned getTotalWidth ()
unsigned getLeftWidth ()
unsigned getRightWidth ()
unsigned getNumberOfChildren ()
bool getLeftConnectionShiftFlag ()
Individual * getChildInClassicalOrder (unsigned index)
bool isConsanguinous (void)
bool hasExternalConnection (void)
unsigned getTwinGroupCount (void)
void display ()

Private Member Functions

void _rearrangeIndividualsBasedOnTwins (const bool consanguinousLoop, std::deque< Individual * > &initial, std::deque< Individual * > &leftLoopIndividuals, std::deque< Individual * > &rightLoopIndividuals)
void _orderTwins (Individual *pivotIndividual, std::deque< Individual * > &srcLoopIndividuals, std::deque< Individual * > &dstLoopIndividuals, const std::deque< unsigned > &indices, bool front=false)
void _drawTwinConnectors (DrawingCanvas &dc, bool classicalOrder, double verticalDropY)
bool _isMaleWithLoopFlags (Individual *individual, unsigned nuclearFamilyIndex)
bool _hasIndividualInDeque (Individual *individual, const std::deque< Individual * > &individualQ)

Private Attributes

Individual * _mother
Individual * _father
Width _width
bool _leftConnectionShiftFlag
unsigned _twinGroupCount
std::vector< Individual * > _childrenInClassicalOrder
std::vector< Individual * > _sortedChildren


Constructor & Destructor Documentation

NuclearFamily::NuclearFamily (   )  [inline]
 

NuclearFamily::NuclearFamily (  Individual *  mother,
Individual *  father
)  [inline]
 


Member Function Documentation

void NuclearFamily::_drawTwinConnectors (  DrawingCanvas &  dc,
bool  classicalOrder,
double  verticalDropY
)  [private]
 

bool NuclearFamily::_hasIndividualInDeque (  Individual *  individual,
const std::deque< Individual * > &  individualQ
)  [private]
 

bool NuclearFamily::_isMaleWithLoopFlags (  Individual *  individual,
unsigned  nuclearFamilyIndex
)  [inline, private]
 

void NuclearFamily::_orderTwins (  Individual *  pivotIndividual,
std::deque< Individual * > &  srcLoopIndividuals,
std::deque< Individual * > &  dstLoopIndividuals,
const std::deque< unsigned > &  indices,
bool  front = false
)  [private]
 

void NuclearFamily::_rearrangeIndividualsBasedOnTwins (  const bool  consanguinousLoop,
std::deque< Individual * > &  initial,
std::deque< Individual * > &  leftLoopIndividuals,
std::deque< Individual * > &  rightLoopIndividuals
)  [private]
 

void NuclearFamily::addChild (  Individual *  child  )  [inline]
 

void NuclearFamily::calculateWidth (  bool  classicalOrder  ) 
 

calculateWidth: Calculates the width of a nuclear family. For individuals with multiple mates, the sum of the widths of all the nuclear families is stored on the individual.

void NuclearFamily::display (   ) 
 

void NuclearFamily::draw (  Individual *  startIndividual,
DrawingCanvas &  dc,
double  startX,
double  startY,
bool  classicalOrder,
bool  dashedOriginalFounder = false
) 
 

draw: Draws the NuclearFamily

void NuclearFamily::drawSpouseConnectors (  Individual *  individual,
const double  horizontalInterval,
const double  iconInterval,
const double  iconDiameter,
DrawingCanvas &  dc
) 
 

drawSpouseConnectors: Draws the spouse connections for an individual with more than one spouse.

void NuclearFamily::drawVerticalDropToIndividual (  DrawingCanvas &  dc,
Individual *  pChild,
double  x,
double  y
) 
 

void NuclearFamily::findTwinsByDOB (   ) 
 

Individual * NuclearFamily::getChildInClassicalOrder (  unsigned  index  ) 
 

Individual* NuclearFamily::getFather (  void   )  [inline]
 

bool NuclearFamily::getLeftConnectionShiftFlag (   )  [inline]
 

unsigned NuclearFamily::getLeftWidth (  void   )  [inline]
 

Individual* NuclearFamily::getMother (  void   )  [inline]
 

unsigned NuclearFamily::getNumberOfChildren (  void   )  [inline]
 

unsigned NuclearFamily::getRightWidth (  void   )  [inline]
 

unsigned NuclearFamily::getTotalWidth (  void   )  [inline]
 

unsigned NuclearFamily::getTwinGroupCount (  void   )  [inline]
 

bool NuclearFamily::hasChild (  Individual *  child  )  [inline]
 

bool NuclearFamily::hasExternalConnection (  void   )  [inline]
 

bool NuclearFamily::isConsanguinous (  void   )  [inline]
 

void NuclearFamily::setLeftConnectionShiftFlag (  bool  value  )  [inline]
 

void NuclearFamily::setLeftWidth (  unsigned  left  )  [inline]
 

void NuclearFamily::setRightWidth (  unsigned  right  )  [inline]
 

void NuclearFamily::setTotalWidth (  unsigned  total  )  [inline]
 

void NuclearFamily::setTwinGroupCount (  unsigned  twinGroupCount  )  [inline]
 

void NuclearFamily::sortChildrenBasedOnDataField (  const std::string &  name,
bool  dobSortOrder
) 
 

void NuclearFamily::sortChildrenInClassicalOrder (  bool  consanguinousLoop,
bool  multipleDT = false
) 
 

sortChildrenInClassicalOrder: Sorts the children of a nuclear family based on consanguinous loop flags or external connection flags.


Member Data Documentation

std::vector<Individual*> NuclearFamily::_childrenInClassicalOrder [private]
 

Individual* NuclearFamily::_father [private]
 

bool NuclearFamily::_leftConnectionShiftFlag [private]
 

Individual* NuclearFamily::_mother [private]
 

std::vector<Individual*> NuclearFamily::_sortedChildren [private]
 

unsigned NuclearFamily::_twinGroupCount [private]
 

Width NuclearFamily::_width [private]
 


The documentation for this class was generated from the following files:
Generated on Fri Nov 18 16:24:39 2011 for MADELINE by  doxygen 1.4.4