MAGiC  V5.0
Mailleurs Automatiques de Géometries intégrés à la Cao
ot_boite_2d.cpp
Aller à la documentation de ce fichier.
1 //####//------------------------------------------------------------
2 //####//------------------------------------------------------------
3 //####// MAGiC
4 //####// Jean Christophe Cuilliere et Vincent FRANCOIS
5 //####// Departement de Genie Mecanique - UQTR
6 //####//------------------------------------------------------------
7 //####// MAGIC est un projet de recherche de l equipe ERICCA
8 //####// du departement de genie mecanique de l Universite du Quebec a Trois Rivieres
9 //####// http://www.uqtr.ca/ericca
10 //####// http://www.uqtr.ca/
11 //####//------------------------------------------------------------
12 //####//------------------------------------------------------------
13 //####//
14 //####// ot_boite_2d.cpp
15 //####//
16 //####//------------------------------------------------------------
17 //####//------------------------------------------------------------
18 //####// COPYRIGHT 2000-2024
19 //####// jeu 13 jun 2024 11:54:00 EDT
20 //####//------------------------------------------------------------
21 //####//------------------------------------------------------------
22 
23 
24 #include "ot_boite_2d.h"
25 #include <algorithm>
26 #include <math.h>
27 
28 
29 
30 
31 BOITE_2D::BOITE_2D(double xmin,double ymin,double xmax,double ymax):x(xmin),y(ymin),dx(xmax-xmin),dy(ymax-ymin)
32 {
33 }
34 BOITE_2D::BOITE_2D(BOITE_2D& mdd):x(mdd.x),y(mdd.y),dx(mdd.dx),dy(mdd.dy)
35 {
36 }
37 BOITE_2D::BOITE_2D(const BOITE_2D& mdd):x(mdd.x),y(mdd.y),dx(mdd.dx),dy(mdd.dy)
38 {
39 }
40 
42 {
43 }
44 
45 double BOITE_2D::get_xmin(void)
46 {
47  return x;
48 }
49 
50 double BOITE_2D::get_xmax(void)
51 {
52  return (x+dx);
53 }
54 
55 double BOITE_2D::get_ymin(void)
56 {
57  return y;
58 }
59 
60 double BOITE_2D::get_ymax(void)
61 {
62  return (y+dy);
63 }
64 
66 {
67  x=boite.x;
68  y=boite.y;
69  dx=boite.dx;
70  dy=boite.dy;
71  return *this;
72 }
73 
75 {
76  double xmin=std::min(x,boite.x);
77  double ymin=std::min(y,boite.y);
78  double xmax=std::min(x+dx,boite.x+boite.dx);
79  double ymax=std::min(y+dy,boite.y+boite.dy);
80  x=xmin;
81  y=ymin;
82  dx=xmax-xmin;;
83  dy=ymax-ymin;
84  return *this;
85 }
86 double BOITE_2D::get_rayon(void)
87 {
88  return (0.5*sqrt(dx*dx+dy*dy));
89 }
90 
91 void BOITE_2D::get_centre(double *coo)
92 {
93  coo[0]=x+dx*0.5;
94  coo[1]=y+dy*0.5;
95 }
96 
97 
98 
100 {
101  if ( x+dx>=boite.x)
102  if ( y+dy>=boite.y)
103  if ( x<(boite.x+boite.dx))
104  if ( y<(boite.y+boite.dy))
105  return 1;
106  return 0;
107 }
108 
109 int BOITE_2D::operator*(const BOITE_2D& boite)
110 {
111  if ( x+dx>=boite.x)
112  if ( y+dy>=boite.y)
113  if ( x<(boite.x+boite.dx))
114  if ( y<(boite.y+boite.dy))
115  return 1;
116  return 0;
117 }
BOITE_2D::x
double x
Definition: ot_boite_2d.h:49
BOITE_2D::operator*
int operator*(BOITE_2D &boite)
Definition: ot_boite_2d.cpp:99
BOITE_2D::BOITE_2D
BOITE_2D(double xmin, double ymin, double xmax, double ymax)
Definition: ot_boite_2d.cpp:31
BOITE_2D::get_ymax
double get_ymax(void)
Definition: ot_boite_2d.cpp:60
BOITE_2D::operator+
BOITE_2D & operator+(BOITE_2D &boite)
Definition: ot_boite_2d.cpp:74
ot_boite_2d.h
BOITE_2D::get_rayon
double get_rayon(void)
Definition: ot_boite_2d.cpp:86
BOITE_2D::y
double y
Definition: ot_boite_2d.h:50
BOITE_2D::get_ymin
double get_ymin(void)
Definition: ot_boite_2d.cpp:55
BOITE_2D::dy
double dy
Definition: ot_boite_2d.h:52
BOITE_2D::get_xmax
double get_xmax(void)
Definition: ot_boite_2d.cpp:50
BOITE_2D::get_xmin
double get_xmin(void)
Definition: ot_boite_2d.cpp:45
BOITE_2D
Definition: ot_boite_2d.h:28
BOITE_2D::operator=
BOITE_2D & operator=(BOITE_2D &boite)
Definition: ot_boite_2d.cpp:65
sqrt
double2 sqrt(double2 &val)
Definition: ot_doubleprecision.cpp:345
BOITE_2D::~BOITE_2D
virtual ~BOITE_2D()
Definition: ot_boite_2d.cpp:41
BOITE_2D::get_centre
void get_centre(double *coo)
Definition: ot_boite_2d.cpp:91
BOITE_2D::dx
double dx
Definition: ot_boite_2d.h:51