#include <ProbMultiRegCam3DStr.h>
Public Member Functions | |
PolFusion () | |
Default constructor. | |
PolFusion (Triangle *tria) | |
Constructor with only one triangle. | |
~PolFusion () | |
Default destructor. | |
Triangle * | getTriangle (int pos) |
Return a tringle in position pos. | |
void | setTriangle (int pos, Triangle *tria) |
Set a triangle in position pos. | |
void | deleteTriangle (int pos) |
Delete a triangle in the list. | |
void | deleteLastTriangle () |
void | deleteBifConflicts (int pos, int posAt, int idNew) |
Delete all the triangles that conflicts with that stored in position pos. | |
int | getSize () |
Return the actual number of the triangle stored in this polymorph. | |
void | insertVertex (PosId3D vertex) |
Insert a new vertex of the polymorph. | |
PosId3D | getVertex (int pos) |
Get the vertex of the polymorph at position pos. | |
void | setVertex (int pos, PosId3D vertex) |
Set the vertex in position pos. | |
void | setQueue (Triangle *queue) |
Insert a triangle in the queue in order of the number of intersection by three. | |
int | queueSize () |
Return the number of triangles in queue. | |
void | deleteQueueTriangle (int pos) |
Delete a item in the queue list. | |
void | deleteQueueLastTriangle () |
Delete the last triangle in the list. | |
void | setScale (int i, Decimal scale) |
Set the scale factor of the (i+1)-th triangle in list. | |
void | setScale (Decimal scale) |
Add a new item in the scale vector. | |
Decimal | getScale (int i) |
Get the (i+1)-th scale factor. | |
void | deleteScaleF (int pos) |
Delete an item of scale factor. | |
void | deleteLastScaleF () |
Delete the last scale factor in the list. | |
void | setRotoTrasl (int pos, MIPMatrix rt) |
Set a rototranslation. | |
void | deleteRotoTrasl (int pos) |
Delete an item in the rototranslation list. | |
void | deleteLastRotoTrasl () |
Delete the rototranslation in the list. | |
void | insertOri (Decimal ori) |
Insert an orientation in the polimorph. | |
Decimal | getOri (int pos) |
Get an orientation from the polimorph. | |
void | setOri (int pos, Angle ori) |
Set a ori in the list of orientation. | |
void | deleteOri (int pos) |
Delete an item in the list of orientation. | |
void | deleteLastOri () |
Delete the last orientation in the list. | |
void | insertTriangle (Triangle *tria, int myId, int id1, int id2) |
Insert a new triangle in the polimorph. | |
PosId3D * | searchVertex (int id) |
Search a vertex in the list. | |
PosId3D * | searchVertex (int id, int &posAt) |
Search a vertex in the list and return the index position. | |
void | deleteVertex (int pos) |
Delete a vertex in the list. | |
void | deleteLastVertex () |
Delete the last vertex in the list. | |
int | searchBif (PosId3D vertex, int &posAt, Decimal thr) |
Check if there is a bifurcation. | |
void | insertPoints (Triangle *tria) |
Insert intersection by three points. | |
int | getNInThree (int pos) |
Returns the number of intersection by three until the pos-th triangle in list. | |
Position3D | getIntThree (int pos) |
Returns the pos-th item of the list of intersection by three. | |
Position3D | getLastIntThree () |
Returns the last item in the list of intersection by three. | |
void | deleteIntThree (int pos) |
Deletes an item in the intersection by three list. | |
void | deleteLastIntThree () |
Deletes the last triple intersection in the list. | |
void | insertPointIntThree (Position3D ip, int pos) |
Insert a point in the list of intersection by three points. | |
bool | expandPol (int myId, vector< PolFusion * > actualSol, vector< PolFusion * > &bifPolFusion, Decimal linThr) |
Expansion step function. | |
bool | checkBif (PosId3D vertex, Decimal thr, int myId) |
Verify if there is a bifurcation. | |
string | print (int opt=0) |
Print all the solutions. | |
PolFusion & | operator= (PolFusion &A) |
Operator assignment =. |
Probabilistic polimorph.
Each polimorph is composed by: a set of triangle, its verteces and orientation, triple intersections, rototranslation between triangles, scaling factor between triangles, all in first triangle reference frame
Each polimorph is composed by: a set of triangle, its verteces and orientation, triple intersections, rototranslation between triangles, scaling factor between triangles, all in first triangle reference frame and also its ratingkybalg::PolFusion::PolFusion | ( | ) |
Default constructor.
kybalg::PolFusion::PolFusion | ( | Triangle * | tria | ) |
Constructor with only one triangle.
kybalg::PolFusion::~PolFusion | ( | ) |
Default destructor.
Triangle * kybalg::PolFusion::getTriangle | ( | int | pos | ) |
Return a tringle in position pos.
void kybalg::PolFusion::setTriangle | ( | int | pos, | |
Triangle * | tria | |||
) |
Set a triangle in position pos.
void kybalg::PolFusion::deleteTriangle | ( | int | pos | ) |
Delete a triangle in the list.
void kybalg::PolFusion::deleteLastTriangle | ( | ) |
void kybalg::PolFusion::deleteBifConflicts | ( | int | pos, | |
int | posAt, | |||
int | idNew | |||
) |
Delete all the triangles that conflicts with that stored in position pos.
int kybalg::PolFusion::getSize | ( | ) |
Return the actual number of the triangle stored in this polymorph.
void kybalg::PolFusion::insertVertex | ( | PosId3D | vertex | ) |
Insert a new vertex of the polymorph.
PosId3D kybalg::PolFusion::getVertex | ( | int | pos | ) |
Get the vertex of the polymorph at position pos.
void kybalg::PolFusion::setVertex | ( | int | pos, | |
PosId3D | vertex | |||
) |
Set the vertex in position pos.
void kybalg::PolFusion::setQueue | ( | Triangle * | queue | ) |
Insert a triangle in the queue in order of the number of intersection by three.
int kybalg::PolFusion::queueSize | ( | ) |
Return the number of triangles in queue.
void kybalg::PolFusion::deleteQueueTriangle | ( | int | pos | ) |
Delete a item in the queue list.
void kybalg::PolFusion::deleteQueueLastTriangle | ( | ) |
Delete the last triangle in the list.
void kybalg::PolFusion::setScale | ( | int | i, | |
Decimal | scale | |||
) |
Set the scale factor of the (i+1)-th triangle in list.
void kybalg::PolFusion::setScale | ( | Decimal | scale | ) |
Add a new item in the scale vector.
Decimal kybalg::PolFusion::getScale | ( | int | i | ) |
Get the (i+1)-th scale factor.
void kybalg::PolFusion::deleteScaleF | ( | int | pos | ) |
Delete an item of scale factor.
void kybalg::PolFusion::deleteLastScaleF | ( | ) |
Delete the last scale factor in the list.
void kybalg::PolFusion::setRotoTrasl | ( | int | pos, | |
MIPMatrix | rt | |||
) |
Set a rototranslation.
void kybalg::PolFusion::deleteRotoTrasl | ( | int | pos | ) |
Delete an item in the rototranslation list.
void kybalg::PolFusion::deleteLastRotoTrasl | ( | ) |
Delete the rototranslation in the list.
void kybalg::PolFusion::insertOri | ( | Decimal | ori | ) |
Insert an orientation in the polimorph.
Decimal kybalg::PolFusion::getOri | ( | int | pos | ) |
Get an orientation from the polimorph.
void kybalg::PolFusion::setOri | ( | int | pos, | |
Angle | ori | |||
) |
Set a ori in the list of orientation.
void kybalg::PolFusion::deleteOri | ( | int | pos | ) |
Delete an item in the list of orientation.
void kybalg::PolFusion::deleteLastOri | ( | ) |
Delete the last orientation in the list.
void kybalg::PolFusion::insertTriangle | ( | Triangle * | tria, | |
int | myId, | |||
int | id1, | |||
int | id2 | |||
) |
Insert a new triangle in the polimorph.
PosId3D * kybalg::PolFusion::searchVertex | ( | int | id | ) |
Search a vertex in the list.
PosId3D * kybalg::PolFusion::searchVertex | ( | int | id, | |
int & | posAt | |||
) |
Search a vertex in the list and return the index position.
void kybalg::PolFusion::deleteVertex | ( | int | pos | ) |
Delete a vertex in the list.
void kybalg::PolFusion::deleteLastVertex | ( | ) |
Delete the last vertex in the list.
Check if there is a bifurcation.
void kybalg::PolFusion::insertPoints | ( | Triangle * | tria | ) |
Insert intersection by three points.
int kybalg::PolFusion::getNInThree | ( | int | pos | ) |
Returns the number of intersection by three until the pos-th triangle in list.
Position3D kybalg::PolFusion::getIntThree | ( | int | pos | ) |
Returns the pos-th item of the list of intersection by three.
Position3D kybalg::PolFusion::getLastIntThree | ( | ) |
Returns the last item in the list of intersection by three.
void kybalg::PolFusion::deleteIntThree | ( | int | pos | ) |
Deletes an item in the intersection by three list.
void kybalg::PolFusion::deleteLastIntThree | ( | ) |
Deletes the last triple intersection in the list.
void kybalg::PolFusion::insertPointIntThree | ( | Position3D | ip, | |
int | pos | |||
) |
Insert a point in the list of intersection by three points.
bool kybalg::PolFusion::expandPol | ( | int | myId, | |
vector< PolFusion * > | actualSol, | |||
vector< PolFusion * > & | bifPolFusion, | |||
Decimal | linThr | |||
) |
Expansion step function.
Verify if there is a bifurcation.
string kybalg::PolFusion::print | ( | int | opt = 0 |
) |
Print all the solutions.