Branch data Line data Source code
1 : : //- Class: SurfaceOverlapFacet
2 : : //- Description: Facet definition class for efficient processing
3 : : //- for SurfaceOverlapTool.
4 : : //- Owner: Steve Storm
5 : : //- Created: January 26, 2003
6 : :
7 : : #ifndef SurfaceOverlapFacet_HPP
8 : : #define SurfaceOverlapFacet_HPP
9 : :
10 : : #include "CubitDefines.h"
11 : : #include "AnalyticGeometryTool.hpp"
12 : : #include "GMem.hpp"
13 : : #include "CubitBox.hpp"
14 : : #include "CGMGeomConfigure.h"
15 : :
16 : : #ifndef CUBIT_MIN_3
17 : : #define CUBIT_MIN_3(a,b,c) (( (a) < (b) ? (a) : (b) ) < \
18 : : ( (c) ) ? \
19 : : ( (a) < (b) ? (a) : (b) ) : \
20 : : ( (c) ))
21 : : #endif
22 : : #ifndef CUBIT_MAX_3
23 : : #define CUBIT_MAX_3(a,b,c) (( (a) > (b) ? (a) : (b) ) > \
24 : : ( (c) ) ? \
25 : : ( (a) > (b) ? (a) : (b) ) : \
26 : : ( (c) ))
27 : : #endif
28 : :
29 : : class CUBIT_GEOM_EXPORT SurfaceOverlapFacet
30 : : {
31 : :
32 : : public:
33 : :
34 : : SurfaceOverlapFacet( GPoint pnt[3] );
35 : : ~SurfaceOverlapFacet();
36 : :
37 : : double distance( SurfaceOverlapFacet &other_facet );
38 : : CubitBoolean facing( SurfaceOverlapFacet &other_facet );
39 : : double angle( SurfaceOverlapFacet &other_facet );
40 : : double projected_overlap( SurfaceOverlapFacet &other_facet,
41 : : CubitBoolean draw_overlap = CUBIT_FALSE );
42 : :
43 : : double distance_from_position( CubitVector &position );
44 : :
45 : : bool facet_points_within_tol( SurfaceOverlapFacet *other_face, double tolerance );
46 : :
47 : : double perimeter();
48 : :
49 : 0 : bool bbox_overlap( double tol, SurfaceOverlapFacet &other_facet )
50 : 0 : { return boundingBox.overlap( tol, other_facet.boundingBox ); }
51 : :
52 : 0 : CubitBox bounding_box() { return boundingBox; }
53 : : void draw( int color );
54 : :
55 : : CubitVector centroid();
56 : :
57 : : CubitVector smallest_edge_midpoint();
58 : :
59 : : protected:
60 : :
61 : : private:
62 : :
63 : : Triangle3 t;
64 : : CubitBox boundingBox;
65 : : static AnalyticGeometryTool *agt;
66 : :
67 : : };
68 : :
69 : : #endif
70 : :
71 : :
72 : :
|