Flow123d
master-3768d5dec
|
Class for 2D-2D intersections. More...
#include <compute_intersection.hh>
Public Types | |
typedef IntersectionPointAux< 1, 2 > | IPAux12 |
typedef IntersectionPointAux< 2, 2 > | IPAux22 |
Public Member Functions | |
ComputeIntersection () | |
Default constructor, creates empty object. Resizes vectors for Plucker coordinates and products. More... | |
ComputeIntersection (ElementAccessor< 3 > triaA, ElementAccessor< 3 > triaB) | |
Constructor, sets both triangle objects. It allocates memory, computes plucker coordinates and products. More... | |
~ComputeIntersection () | |
void | init () |
Initializes lower dimensional objects. Sets correctly the pointers to Plucker coordinates and products. More... | |
unsigned int | compute (IntersectionAux< 2, 2 > &intersection) |
Computes final 2D-2D intersection. Computes CIs (side vs triangle) in following order: [A0_B, A1_B, A2_B, B0_A, B1_A, B2_A]. During cycle determine topology information and set computed flags accordingly. More... | |
Setters and Getters | |
std::vector< Plucker * > | plucker_coordinates_ |
Pointers to plucker coordinates of sides of both triangles [triaA[3], triaB[3]], size 6. More... | |
std::vector< double * > | plucker_products_ |
Pointers to Plucker products of triangles sides [3x[sideA x triaB]]], size 9. More... | |
ComputeIntersection< 1, 2 > | CI12 [6] |
Compute intersection for side x triangle [3x[sideA x tria B],3x[sideB x triaA]]. More... | |
void | set_pc_triaA (Plucker *p, unsigned int side_idx) |
void | set_pc_triaB (Plucker *p, unsigned int side_idx) |
Plucker * | get_pc_triaA (unsigned int side_idx) |
Gets the pointer to Plucker coordinates of the triangle A side of given side_idx . More... | |
Plucker * | get_pc_triaB (unsigned int side_idx) |
Gets the pointer to Plucker coordinates of the triangle B side of given side_idx . More... | |
void | set_plucker_product (double *number, unsigned sideA_idx, unsigned int sideB_idx) |
double * | get_plucker_product (unsigned sideA_idx, unsigned int sideB_idx) |
Gets the pointer to Plucker product of triangle A side sideA_idx and triangle B side sideB_idx . More... | |
void | print_plucker_coordinates (std::ostream &os) |
Prints out the Plucker coordinates of abscissa and tetrahedron edges. More... | |
void | print_plucker_coordinates_tree (std::ostream &os) |
Prints out the Plucker coordinates of tetrahedron edges in a tree of tetrahedron sides (triangles). More... | |
void | clear_all () |
Class for 2D-2D intersections.
Computes the intersection of triangle A and triangle B. Uses 6 ComputeIntersection<1,2>:
It creates a final intersection.
TODO: do not remember, if the function correct_triangle_ip_topology used to have some meaning here..
Definition at line 239 of file compute_intersection.hh.
typedef IntersectionPointAux<1,2> ComputeIntersection< 2, 2 >::IPAux12 |
Definition at line 241 of file compute_intersection.hh.
typedef IntersectionPointAux<2,2> ComputeIntersection< 2, 2 >::IPAux22 |
Definition at line 242 of file compute_intersection.hh.
ComputeIntersection< 2, 2 >::ComputeIntersection | ( | ) |
Default constructor, creates empty object. Resizes vectors for Plucker coordinates and products.
Definition at line 535 of file compute_intersection.cc.
ComputeIntersection< 2, 2 >::ComputeIntersection | ( | ElementAccessor< 3 > | triaA, |
ElementAccessor< 3 > | triaB | ||
) |
Constructor, sets both triangle objects. It allocates memory, computes plucker coordinates and products.
Definition at line 541 of file compute_intersection.cc.
ComputeIntersection< 2, 2 >::~ComputeIntersection | ( | ) |
Definition at line 563 of file compute_intersection.cc.
void ComputeIntersection< 2, 2 >::clear_all | ( | ) |
Resets Plucker products to 'nullptr'. Use this CAREFULLY as it does not destroy the objects. It is intended to be used only from higher dimensions when before destroying.
Definition at line 581 of file compute_intersection.cc.
unsigned int ComputeIntersection< 2, 2 >::compute | ( | IntersectionAux< 2, 2 > & | intersection | ) |
Computes final 2D-2D intersection. Computes CIs (side vs triangle) in following order: [A0_B, A1_B, A2_B, B0_A, B1_A, B2_A]. During cycle determine topology information and set computed flags accordingly.
intersection | final 2D-2D intersection object (output) |
Definition at line 622 of file compute_intersection.cc.
|
inline |
Gets the pointer to Plucker coordinates of the triangle A side of given side_idx
.
Definition at line 287 of file compute_intersection.hh.
|
inline |
Gets the pointer to Plucker coordinates of the triangle B side of given side_idx
.
Definition at line 292 of file compute_intersection.hh.
|
inline |
Gets the pointer to Plucker product of triangle A side sideA_idx
and triangle B side sideB_idx
.
Definition at line 305 of file compute_intersection.hh.
void ComputeIntersection< 2, 2 >::init | ( | ) |
Initializes lower dimensional objects. Sets correctly the pointers to Plucker coordinates and products.
Definition at line 593 of file compute_intersection.cc.
void ComputeIntersection< 2, 2 >::print_plucker_coordinates | ( | std::ostream & | os | ) |
Prints out the Plucker coordinates of abscissa and tetrahedron edges.
Definition at line 721 of file compute_intersection.cc.
void ComputeIntersection< 2, 2 >::print_plucker_coordinates_tree | ( | std::ostream & | os | ) |
Prints out the Plucker coordinates of tetrahedron edges in a tree of tetrahedron sides (triangles).
Definition at line 741 of file compute_intersection.cc.
|
inline |
Sets the pointer to Plucker coordinates of the triangle A side.
p | pointer to Plucker coordinates |
side_idx | local index of a side of triangle A |
Definition at line 274 of file compute_intersection.hh.
|
inline |
Sets the pointer to Plucker coordinates of the triangle B side.
p | pointer to Plucker coordinates |
side_idx | local index of a side of triangle B |
Definition at line 282 of file compute_intersection.hh.
|
inline |
Sets the pointer to Plucker product of triangle A side and triangle B side.
number | pointer to value of Plucker product |
sideA_idx | local index of a side of triangle A |
sideB_idx | local index of a side of triangle B |
Definition at line 301 of file compute_intersection.hh.
|
private |
Compute intersection for side x triangle [3x[sideA x tria B],3x[sideB x triaA]].
Definition at line 326 of file compute_intersection.hh.
|
private |
Pointers to plucker coordinates of sides of both triangles [triaA[3], triaB[3]], size 6.
Definition at line 322 of file compute_intersection.hh.
|
private |
Pointers to Plucker products of triangles sides [3x[sideA x triaB]]], size 9.
Definition at line 324 of file compute_intersection.hh.