00001 // -*- Mode: C++; tab-width: 2; -*- 00002 // vi: set ts=2: 00003 // 00004 // $Id: fieldLineCreator.h,v 1.1.4.2 2007/04/11 11:55:51 amoll Exp $ 00005 // 00006 00007 #ifndef BALL_VIEW_MODELS_FIELDLINE_CREATOR_H 00008 #define BALL_VIEW_MODELS_FIELDLINE_CREATOR_H 00009 00010 #ifndef BALL_MATHS_VECTOR3_H 00011 # include <BALL/MATHS/vector3.h> 00012 #endif 00013 00014 #ifndef BALL_VIEW_KERNEL_REPRESENTATION_H 00015 # include <BALL/VIEW/KERNEL/representation.h> 00016 #endif 00017 00018 namespace BALL 00019 { 00020 class AtomContainer; 00021 00022 namespace VIEW 00023 { 00024 00028 class BALL_VIEW_EXPORT FieldLineCreator 00029 { 00030 public: 00031 00032 typedef TRegularData3D<Vector3> VectorGrid; 00033 00034 BALL_CREATE(FieldLineCreator) 00035 00036 00038 FieldLineCreator(); 00039 00042 FieldLineCreator(const FieldLineCreator& fc); 00043 00046 virtual ~FieldLineCreator(); 00047 00048 Representation* createLines(); 00049 00050 void createFieldLine_(const Vector3& point, Representation& rep); 00051 00052 inline void calculateLinePoints_(Vector3 point, vector<Vector3>& points, float factor = 1.); 00053 00056 void setUsePotentialGrid(bool state) { use_potential_grid_ = state;} 00057 00058 float tolerance_; 00059 Size max_steps_; 00060 Size interpolation_steps_; 00061 Size icosaeder_steps_; 00062 float atom_distance_; 00063 Size field_line_errors_; 00064 bool use_atoms_; 00065 Size monte_carlo_nr_lines_; 00066 RegularData3D* potential_grid_; 00067 VectorGrid* vector_grid_; 00068 AtomContainer* ac_; 00069 bool use_potential_grid_; 00070 }; 00071 00072 } // namespace VIEW 00073 } // namspace BALL 00074 00075 #endif // BALL_VIEW_MODELS_FIELDLINE_CREATOR_H