SurfaceMeshGenerator.cpp File Reference

#include <Information.hpp>
#include <SurfaceMeshGenerator.hpp>
#include <MeshOfTetrahedra.hpp>
#include <MeshTetrahedrizor.hpp>
#include <SurfaceMeshOfTriangles.hpp>
#include <Structured3DMesh.hpp>
#include <Scene.hpp>
#include <Union.hpp>
#include <Intersection.hpp>
#include <Difference.hpp>
#include <Not.hpp>
#include <Cube.hpp>
#include <Plane.hpp>
#include <Cylinder.hpp>
#include <InfiniteCylinder.hpp>
#include <Cone.hpp>
#include <InfiniteCone.hpp>
#include <ObjectTransformer.hpp>
#include <Mesh.hpp>
#include <ConnectivityBuilder.hpp>
#include <Connectivity.hpp>
#include <Cell.hpp>
#include <WorkingMesh.hpp>
#include <TinyMatrix.hpp>
#include <triangulation.hpp>
#include <set>
#include <iostream>
#include <fstream>
#include <stack>
#include <algorithm>

Include dependency graph for SurfaceMeshGenerator.cpp:

Go to the source code of this file.

Classes

class  SurfaceMeshGenerator::Internals
class  SurfaceMeshGenerator::Internals::IntersectionPoints
struct  SurfaceMeshGenerator::Internals::IntersectionTest
struct  SurfaceMeshGenerator::Internals::UnionTest
class  SurfaceMeshGenerator::Internals::MeshedObject
class  SurfaceMeshGenerator::Internals::TriangleCut

Functions

double SDet (const Vertex &V1, const Vertex &V2, const Vertex &V3)
bool checkInterbis (const Vertex &P1, const Vertex &P2, const Vertex &Q1, const Vertex &Q2)
void plot (const SurfaceMeshOfTriangles &s, std::set< const Cell * > &hlist, Structured3DMesh &SMesh)
void plot2 (const SurfaceMeshOfTriangles &s, std::set< const Cell * > &hlist, Structured3DMesh &SMesh)
void plotmedit (const size_t &nobject, const SurfaceMeshOfTriangles &s_mesh, std::set< const Cell * > &toTreatHexahedra, size_t n0, size_t n1)
void plothexa (size_t ncase, std::set< const Cell * > &cuttedHexahedra)


Function Documentation

bool checkInterbis ( const Vertex P1,
const Vertex P2,
const Vertex Q1,
const Vertex Q2 
) [inline]

Definition at line 64 of file SurfaceMeshGenerator.cpp.

References ASSERT, and SDet().

Referenced by SurfaceMeshGenerator::Internals::__createTriangle().

00064                                                                                                   {
00065     // retourne true si P1P2 inter Q1Q2 != vide
00066     ASSERT(!(P1 == P2 || P1 == Q1 || P1 == Q2 || P2 == Q1 || P2 == Q2 || Q1 == Q2));
00067     //const double eps = 1e-15;
00068     /*if (std::abs(SDet(Q1,Q2,P1)) <eps||
00069         std::abs(SDet(Q1,Q2,P2)) <eps) {
00070         //ffout(0) << " !!!!! NO !!!!!!!" << std::endl;
00071         return true;
00072     }*/
00073 
00074     return ((SDet(P1,P2,Q1)*SDet(P1,P2,Q2) < 0) && (SDet(Q1,Q2,P1)*SDet(Q1,Q2,P2) < 0)); // version optimisée
00075 }

Here is the call graph for this function:

void plot ( const SurfaceMeshOfTriangles s,
std::set< const Cell * > &  hlist,
Structured3DMesh SMesh 
)

void plot2 ( const SurfaceMeshOfTriangles s,
std::set< const Cell * > &  hlist,
Structured3DMesh SMesh 
)

void plothexa ( size_t  ncase,
std::set< const Cell * > &  cuttedHexahedra 
)

void plotmedit ( const size_t &  nobject,
const SurfaceMeshOfTriangles s_mesh,
std::set< const Cell * > &  toTreatHexahedra,
size_t  n0,
size_t  n1 
)

double SDet ( const Vertex V1,
const Vertex V2,
const Vertex V3 
) [inline]

Definition at line 60 of file SurfaceMeshGenerator.cpp.

Referenced by Triangulation::__checkAll(), Triangulation::__find_P_in_elt(), checkInter(), and checkInterbis().

00060                                                                             {
00061     return (V2[0]-V1[0]) * (V3[1]-V1[1]) -  (V2[1]-V1[1]) * (V3[0]-V1[0]);
00062 }


Generated on Wed Nov 19 00:03:24 2008 for FreeFEM3D (aka ff3d) by  doxygen 1.5.6