fieldLineCreator.h

Go to the documentation of this file.
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