ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/acismesh/m1d_param_straight.cpp
Revision: 1
Committed: Mon Jun 11 22:53:07 2007 UTC (17 years, 11 months ago)
File size: 2578 byte(s)
Log Message:

File Contents

# User Rev Content
1 1 /*****************************************************************
2    
3     m1d_param_straight Type:func
4    
5     Parametrage d'une droite
6    
7     Date de creation : Thu Nov 28 10:27:03 1996
8    
9     Derniere version : Tue Jun 3 11:55:51 1997
10    
11    
12    
13    
14    
15    
16    
17    
18    
19     Vincent FRANCOIS
20    
21     *****************************************************************/
22    
23    
24    
25    
26    
27     /**************************/
28     /* include */
29     #include <stdio.h>
30     #include <string.h>
31     #include <math.h>
32     #include <stdlib.h>
33     #include "const.h"
34     #include "struct.h"
35     #include "memoire.h"
36     #include "prototype.h"
37    
38    
39    
40     /**************************/
41     /* variables globales */
42     extern struct s_acis *acis;
43     extern struct s_param *para;
44    
45    
46     /**************************/
47     /* programme principal */
48    
49     void m1d_param_straight(struct s_edge *edge,struct s_straight *straight)
50     {
51     struct s_point *p1,*p2;
52    
53    
54     NEW_ENTITE(straight->param,par_straight,para->);
55     memcpy(straight->param->root,straight->root,3*sizeof(float));
56     memcpy(straight->param->dir,straight->dir,3*sizeof(float));
57     if (edge->sense==0)
58     {
59     p1=edge->start_vertex->point;
60     p2=edge->end_vertex->point;
61     }
62     else
63     {
64     p2=edge->start_vertex->point;
65     p1=edge->end_vertex->point;
66     }
67     if (!(EGAL(straight->param->dir[0],0.,0.0001)))
68     {
69     edge->t1=(p1->coord[0]-straight->param->root[0])/straight->param->dir[0];
70     edge->t2=(p2->coord[0]-straight->param->root[0])/straight->param->dir[0];
71     }
72     else
73     if (!(EGAL(straight->param->dir[1],0.,0.0001)))
74     {
75     edge->t1=(p1->coord[1]-straight->param->root[1])/straight->param->dir[1];
76     edge->t2=(p2->coord[1]-straight->param->root[1])/straight->param->dir[1];
77     }
78     else
79     {
80     edge->t1=(p1->coord[2]-straight->param->root[2])/straight->param->dir[2];
81     edge->t2=(p2->coord[2]-straight->param->root[2])/straight->param->dir[2];
82     }
83     edge->t2=edge->t2-edge->t1;
84     }