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)
IndividualgetMother ()
IndividualgetFather ()
unsigned getTotalWidth ()
unsigned getLeftWidth ()
unsigned getRightWidth ()
unsigned getNumberOfChildren ()
bool getLeftConnectionShiftFlag ()
IndividualgetChildInClassicalOrder (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