00001
00012 #ifndef LATERALLONGRANGEORIENTATIONCONNECTIONPREDICATE_H
00013 #define LATERALLONGRANGEORIENTATIONCONNECTIONPREDICATE_H
00014
00015 #include <ConnectionDecisionPredicateSpecialization.h>
00016 #include "Point2D.h"
00017
00018
00020
00022 class LateralLongRangeOrientationConnectionPredicate : public AugmentedConnectionDecisionPredicate
00023 {
00024 public:
00026 LateralLongRangeOrientationConnectionPredicate(double C,
00027 double sigma21=1000e-6,
00028 double kappa2=1,
00029 double mu2=0,
00030 bool toroid=false,
00031 double toroid_off=0.0,
00032 int src_shape_x=1, int src_shape_y=1,
00033 int dst_shape_x=1, int dst_shape_y=1,
00034 double src_scale=1.0,
00035 double dst_scale=1.0,
00036 double src_center_x=0.0, double src_center_y=0.0,
00037 double dst_center_x=0.0, double dst_center_y=0.0
00038 );
00039
00040 virtual void init(SimObjectPopulation const& src, SimObjectPopulation const& dst, RandomEngine *rnd);
00041
00043
00046 virtual bool decide(size_t src, size_t dst, RandomEngine *rnd);
00047
00048 public:
00049 double m_C;
00050 double m_sigma21;
00051 double m_kappa2;
00052 double m_mu2;
00053
00054 Point2DDistance<double> m_distance;
00055 UniformDistribution m_unirnd;
00056 };
00057
00058 #endif