ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/outil/src/ot_boite_2d.cpp
Revision: 1019
Committed: Tue Jun 4 21:16:50 2019 UTC (6 years ago) by francois
File size: 2658 byte(s)
Log Message:
restructuration de magic
outil est sorti de lib pour pouvoir etre utiliser en dehors de lib
template est merge avec outil
poly_occ et un sous projet de magic qui utilise le nouveau outil

File Contents

# User Rev Content
1 francois 283 //------------------------------------------------------------
2     //------------------------------------------------------------
3     // MAGiC
4     // Jean Christophe Cuilli�re et Vincent FRANCOIS
5     // D�partement de G�nie M�canique - UQTR
6     //------------------------------------------------------------
7     // Le projet MAGIC est un projet de recherche du d�partement
8     // de g�nie m�canique de l'Universit� du Qu�bec �
9     // Trois Rivi�res
10     // Les librairies ne peuvent �tre utilis�es sans l'accord
11     // des auteurs (contact : francois@uqtr.ca)
12     //------------------------------------------------------------
13     //------------------------------------------------------------
14     //
15     // ot_boite_2D.cpp
16     //
17     //------------------------------------------------------------
18     //------------------------------------------------------------
19     // COPYRIGHT 2000
20     // Version du 02/03/2006 � 11H23
21     //------------------------------------------------------------
22     //------------------------------------------------------------
23    
24    
25 francois 481 #include "ot_boite_2d.h"
26 francois 283 #include <algorithm>
27     #include <math.h>
28    
29    
30    
31    
32     BOITE_2D::BOITE_2D(double xmin,double ymin,double xmax,double ymax):x(xmin),y(ymin),dx(xmax-xmin),dy(ymax-ymin)
33     {
34     }
35     BOITE_2D::BOITE_2D(BOITE_2D& mdd):x(mdd.x),y(mdd.y),dx(mdd.dx),dy(mdd.dy)
36     {
37     }
38     BOITE_2D::BOITE_2D(const BOITE_2D& mdd):x(mdd.x),y(mdd.y),dx(mdd.dx),dy(mdd.dy)
39     {
40     }
41    
42     BOITE_2D::~BOITE_2D()
43     {
44     }
45    
46     double BOITE_2D::get_xmin(void)
47     {
48     return x;
49     }
50    
51     double BOITE_2D::get_xmax(void)
52     {
53     return (x+dx);
54     }
55    
56     double BOITE_2D::get_ymin(void)
57     {
58     return y;
59     }
60    
61     double BOITE_2D::get_ymax(void)
62     {
63     return (y+dy);
64     }
65    
66     BOITE_2D& BOITE_2D::operator=(BOITE_2D& boite)
67     {
68     x=boite.x;
69     y=boite.y;
70     dx=boite.dx;
71     dy=boite.dy;
72     return *this;
73     }
74    
75     BOITE_2D& BOITE_2D::operator+(BOITE_2D& boite)
76     {
77     double xmin=std::min(x,boite.x);
78     double ymin=std::min(y,boite.y);
79     double xmax=std::min(x+dx,boite.x+boite.dx);
80     double ymax=std::min(y+dy,boite.y+boite.dy);
81     x=xmin;
82     y=ymin;
83     dx=xmax-xmin;;
84     dy=ymax-ymin;
85     return *this;
86     }
87     double BOITE_2D::get_rayon(void)
88     {
89     return (0.5*sqrt(dx*dx+dy*dy));
90     }
91    
92     void BOITE_2D::get_centre(double *coo)
93     {
94     coo[0]=x+dx*0.5;
95     coo[1]=y+dy*0.5;
96     }
97    
98    
99    
100     int BOITE_2D::operator*(BOITE_2D& boite)
101     {
102     if ( x+dx>=boite.x)
103     if ( y+dy>=boite.y)
104     if ( x<(boite.x+boite.dx))
105     if ( y<(boite.y+boite.dy))
106     return 1;
107     return 0;
108     }
109 francois 945
110     int BOITE_2D::operator*(const BOITE_2D& boite)
111     {
112     if ( x+dx>=boite.x)
113     if ( y+dy>=boite.y)
114     if ( x<(boite.x+boite.dx))
115     if ( y<(boite.y+boite.dy))
116     return 1;
117     return 0;
118     }