source: cpp/frams/genetics/fF/conv_fF.h @ 426

Last change on this file since 426 was 286, checked in by Maciej Komosinski, 10 years ago

Updated headers

  • Property svn:eol-style set to native
File size: 1.7 KB
RevLine 
[286]1// This file is a part of Framsticks SDK.  http://www.framsticks.com/
2// Copyright (C) 1999-2015  Maciej Komosinski and Szymon Ulatowski.
3// See LICENSE.txt for details.
[140]4
5#ifndef _CONV_FF_H_
6#define _CONV_FF_H_
7
[176]8#define fF_TOO_MUCH 0.75
9#define fF_TOO_LITTLE 0.10
[174]10
[176]11#define fF_HOLE_RADIUS 0.05f
12#define fF_LONGITUDE_NUM 69
[174]13
[176]14#define fF_LATITUDE_NUM ((fF_LONGITUDE_NUM - 1)*2)
15#define fF_AMOUNT ((fF_LATITUDE_NUM)*(fF_LONGITUDE_NUM))
[174]16
[176]17#define fF_THICK_RATIO 0.95
[174]18
[176]19#define fF_SIZE fF_LONGITUDE_NUM * fF_LATITUDE_NUM + fF_LATITUDE_NUM
[174]20
[140]21#include <frams/util/multimap.h>
22#include <frams/util/sstring.h>
23#include <frams/genetics/genoconv.h>
[256]24#include <frams/model/model.h>
[174]25#include "fF_chamber3d.h"
[140]26
[178]27
28//A point on the surface of a chamber
29struct fF_point
30{
31        double x, y, z;
32        bool inside; //helper field used when computing whether this point is inside some chamber
33};
34
35
[174]36// The f9->f0 converter
37class GenoConv_fF0 : public GenoConverter {
[140]38public:
[176]39        GenoConv_fF0();
40        ~GenoConv_fF0();
41        //implementation of the GenoConverter method
42        SString convert(SString &in, MultiMap *map);
[140]43
44protected:
[176]45        void createSphere(int ktora, fF_chamber3d **chambers, double radius, double div_radius_length, double div_vector_length,
46                double alpha, double gamma, double kx, double ky, double kz);
[178]47        fF_point* generate_points(fF_chamber3d *chamber, int which, double kx, double ky, double kz);
[176]48        double dist(double x1, double y1, double z1, double x2, double y2, double z2);
49        void search_hid(int nr, fF_chamber3d **spheres, double kx_, double ky_, double kz_);
50        int find_hole(int which, double x, double y, double z, fF_chamber3d **chambers, double kx_, double ky_, double kz_);
[178]51
52private:
53        double* cosines;
54        double* sines;
55        void precompute_cos_and_sin();
[256]56        Part *addNewPart(Model *m, const fF_chamber3d* c);
[140]57};
58
59#endif
Note: See TracBrowser for help on using the repository browser.