43 |
|
#include "applications/hydrodynamics/HydrodynamicsModel.hpp" |
44 |
|
namespace oopse { |
45 |
|
|
46 |
< |
Ellipsoid::Ellipsoid(Vector3d origin, double radius, double ratio, Mat3x3d rotMat) |
47 |
< |
: origin_(origin), a_(radius), b_(radius*ratio), rotMat_(rotMat) { |
46 |
> |
Ellipsoid::Ellipsoid(Vector3d origin, double rMajor, double rMinor,Mat3x3d rotMat) |
47 |
> |
: origin_(origin), rMajor_(rMajor), rMinor_(rMinor), rotMat_(rotMat) { |
48 |
|
|
49 |
|
} |
50 |
|
bool Ellipsoid::isInterior(Vector3d pos) { |
51 |
|
Vector3d r = pos - origin_; |
52 |
|
Vector3d rbody = rotMat_ * r; |
53 |
< |
double xovera = rbody[0]/a_; |
54 |
< |
double yovera = rbody[1]/a_; |
55 |
< |
double zoverb = rbody[2]/b_; |
53 |
> |
double xovera = rbody[0]/rMajor_; |
54 |
> |
double yovera = rbody[1]/rMajor_; |
55 |
> |
double zoverb = rbody[2]/rMinor_; |
56 |
|
|
57 |
|
bool result; |
58 |
|
if (xovera*xovera + yovera*yovera + zoverb*zoverb < 1) |
68 |
|
|
69 |
|
std::pair<Vector3d, Vector3d> boundary; |
70 |
|
//make a cubic box |
71 |
< |
double rad = a_ > b_ ? a_ : b_; |
71 |
> |
double rad = rMajor_ > rMinor_ ? rMajor_ : rMinor_; |
72 |
|
Vector3d r(rad, rad, rad); |
73 |
|
boundary.first = origin_ - r; |
74 |
|
boundary.second = origin_ + r; |