3 #ifndef __u3d_model_hpp
4 #define __u3d_model_hpp
6 #include "u3d_body.hpp"
7 #include "u3d_bound.hpp"
8 #include "u3d_grid.hpp"
9 #include <u3d_progress.hpp>
24 U3dBoundInfoAr bounds, U3dBodyInfoAr bodies,
U3dProgress* prg=0x0);
94 std::vector<int> getCommonBoundsIds(
int bodyId_0,
int bodyId_1);
126 void getNeighbours(
U3dBox box, U3dGridCellsArray &cell_array, U3dGridCellsArray &neighbour_cells);
151 double &iA0,
double &iAz0,
double &iA1,
double &iAz1);
157 int &p0_ind,
int &p1_ind);
161 double iA0,
double iAz0,
double iA1,
double iAz1,
162 double &iA,
double &iAz);
181 U3dBodiesAr m_bodies;
182 U3dBoundsAr m_bounds;
void defineNearestIntPoints(U3dPoint p, int bodyId, U3dPointsAr intersection_ps, std::vector< int > intersected_bounds_ind, int &p0_ind, int &p1_ind)
U3dModAreaPos getModelAreaPos() const
void addDescription(const char *description)
Definition: u3d_body.hpp:13
void intersectCellTriangles(U3dPoint *p0, U3dPoint *p1, U3dGridCell *goal_cell, std::vector< int > &int_trIds, U3dPointsAr &int_points)
int getBodyIdFromCell(U3dPoint p, U3dGridCell *cell)
void getCommonCells(U3dGridCellsArray *common_cells, U3dBox *surfBox, U3dGridCell *root)
double getVel(U3dPoint p, U3D_WAVE_TYPE wt, int bId=-1)
int getBodiesNum() const
Definition: u3d_model.hpp:62
void getNeighbours(U3dBox box, U3dGridCellsArray &cell_array, U3dGridCellsArray &neighbour_cells)
U3dBox getModelBox() const
Definition: u3d_model.hpp:65
friend bool U3dModelExport(char *, U3dModel *, char *, U3dProgress *)
Definition: u3d_model_defines.hpp:20
int getBoundsNum() const
Definition: u3d_model.hpp:78
Definition: u3d_box.hpp:24
Definition: u3d_bound.hpp:21
void fillGridInfoSimple()
U3dModel(U3dModAreaPos modAreaPos, U3dBox modelBox, U3dBoundInfoAr bounds, U3dBodyInfoAr bodies, U3dProgress *prg=0x0)
bool getFBNormal(U3dPoint p, double &iA, double &iAz)
Definition: geometry.H:16
U3dGridCell * getBodyIdFromGrid(U3dPoint p, int &body_id)
Definition: u3d_point.hpp:16
U3dBound * getBound(int boundId)
U3dBody * getBody(int bodyId)
bool getVelGrad(U3dPoint point, double &v, double &vf, double &vaz, U3D_WAVE_TYPE wt)
Definition: u3d_model.hpp:15
void fillGridInfoComplex()
void recursiveDivideCell(int boundId, std::set< int > &trianglesId_ar, U3dGridCell *cell)
Definition: u3d_progress.hpp:10
bool getReady()
Definition: u3d_model.hpp:89
U3dGrid * getGrid()
Definition: u3d_model.hpp:68
Definition: u3d_grid.hpp:25
Definition: u3d_grid_cell.hpp:32
void fillBoundCellsInfo()
int getBodyIdDummy(U3dPoint p)
void gridCrusher(int boundId)
void recursiveFillCellInfo(U3dGridCell *cell)
void checkInternalData(std::string &errstr)
const U3dGrid * getGrid() const
Definition: u3d_model.hpp:71
bool getNormalLimPoints(U3dPoint p, U3dPoint *&p0, U3dPoint *&p1, double &iA0, double &iAz0, double &iA1, double &iAz1)
const U3dBody * getBody(int bodyId) const
Definition: u3d_model.hpp:59
void interpolateNormals(U3dPoint p, U3dPoint *p0, U3dPoint *p1, double iA0, double iAz0, double iA1, double iAz1, double &iA, double &iAz)
void constructGrid(bool plane_surf_model)