FEBio  1.5.0
FEBio/FENodeNodeList.h
00001 // FENodeNodeList.h: interface for the FENodeNodeList class.
00002 //
00004 
00005 #if !defined(AFX_FENODENODELIST_H__59D213DB_78A1_4318_9E5D_585E70BCB36D__INCLUDED_)
00006 #define AFX_FENODENODELIST_H__59D213DB_78A1_4318_9E5D_585E70BCB36D__INCLUDED_
00007 
00008 #if _MSC_VER > 1000
00009 #pragma once
00010 #endif // _MSC_VER > 1000
00011 
00012 #include "FECore/vector.h"
00013 
00014 class FEMesh;
00015 class FEDomain;
00016 
00017 //-----------------------------------------------------------------------------
00020 
00023 
00024 class FENodeNodeList  
00025 {
00026 public:
00028         FENodeNodeList();
00029 
00031         virtual ~FENodeNodeList();
00032 
00034         void Create(FEMesh& mesh);
00035 
00037         void Create(FEDomain& dom);
00038 
00039         int Size() { return m_nval.size(); }
00040 
00041         int Valence(int i) { return m_nval[i]; }
00042         int* NodeList(int i) { return &m_nref[0] + m_pn[i]; }
00043 
00044         void Sort();
00045 
00046 protected:
00047         vector<int>     m_nval; // nodal valences
00048         vector<int>     m_nref; // adjacent nodes indices
00049         vector<int>     m_pn;   // start index into the nref array
00050 
00051         static FENodeNodeList*  m_pthis;
00052         static int compare(const void* e1, const void* e2);
00053 };
00054 
00055 #endif // !defined(AFX_FENODENODELIST_H__59D213DB_78A1_4318_9E5D_585E70BCB36D__INCLUDED_)