00001 // This is a -*- C++ -*- file 00002 //------------------------------------------------------------------------------------// 00003 // // 00004 // Copyright (c) 2001 // 00005 // INRIA // 00006 // 54600 VILLERS LES NANCY // 00007 // France // 00008 // // 00009 //------------------------------------------------------------------------------------// 00010 // // 00011 // * NOTICE OF PROPRIETARY INFORMATION * // 00012 // // 00013 // The information contained in this file is considered proprietary and the exclusive // 00014 // property of INRIA. This information may not be disclosed, duplicated // 00015 // or used, in whole or in part, for any purpose whatsoever without express written // 00016 // authorization from INRIA // 00017 // // 00018 00019 00020 #ifndef _OC_AA_PARTITION_H_ 00021 #define _OC_AA_PARTITION_H_ 00022 // 00023 #include <algorithm> 00024 // 00025 #include "PartitionBaseT.h" 00026 #include "pdbstruct.h" 00027 00028 class AAPartition : public PartitionBase< PDBstructure >{ 00029 public: 00030 AAPartition() ; 00031 AAPartition(const int size, const double R1, const double R2) ; 00032 ~AAPartition() ; 00033 // 00034 bool partitionate(const bool use_frag) ; 00035 bool valid() ; 00036 bool attachAtoms(PDBstructure * pdb) 00037 { bool retVal =PartitionBase< PDBstructure >::attachAtoms(pdb) ; 00038 _AAtoSD.resize(pdb->numberOfAtoms()) ; return retVal; } 00039 void statistiques() ; 00040 // 00041 private : 00042 bool setAtomsInKernel() ; 00043 void buildLocalNumerotation() ; 00044 void sortInFirstDimension(int* ordre) ; 00045 bool computeAAEquilibrateCharge( const double &R_overlap, const double &R_cut); 00046 void setNeigboors(); 00047 void update_structure() ; 00048 // 00049 protected: 00050 std::vector<int> _AAtoSD ; 00051 }; 00052 #endif