1 /**********
2 *
3 * Copyright (c) 2003, Division of Imaging Science and Biomedical Engineering,
4 * University of Manchester, UK. All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without modification,
7 * are permitted provided that the following conditions are met:
8 *
9 * . Redistributions of source code must retain the above copyright notice,
10 * this list of conditions and the following disclaimer.
11 *
12 * . Redistributions in binary form must reproduce the above copyright notice,
13 * this list of conditions and the following disclaimer in the documentation
14 * and/or other materials provided with the distribution.
15 *
16 * . Neither the name of the University of Manchester nor the names of its
17 * contributors may be used to endorse or promote products derived from this
18 * software without specific prior written permission.
19 *
20 *
21 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
22 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
25 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
28 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
29 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
30 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31 * POSSIBILITY OF SUCH DAMAGE.
32 *
33 **********
34 *
35 * Program : TINA
36 * File : $Source: /home/tina/cvs/tina-tools/tinatool/draw/drawPaint_str2.c,v $
37 * Date : $Date: 2003/10/01 16:02:47 $
38 * Version : $Revision: 1.2 $
39 * CVS Id : $Id: drawPaint_str2.c,v 1.2 2003/10/01 16:02:47 tony Exp $
40 *
41 * Author : Legacy TINA
42 *
43 * Notes :
44 *
45 *********
46 */
47
48 #include "drawPaint_str2.h"
49
50 #if HAVE_CONFIG_H
51 #include <config.h>
52 #endif
53
54 #include <tina/sys/sysDef.h>
55 #include <tina/sys/sysPro.h>
56 #include <tina/math/mathDef.h>
57 #include <tina/math/mathPro.h>
58 #include <tina/geometry/geomDef.h>
59 #include <tina/geometry/geomPro.h>
60 #include <tinatool/draw/draw_TvDef.h>
61 #include <tinatool/draw/draw_TvPro.h>
62
63 void str2_draw(Tv * tv, Tstring * str)
64 {
65 List *ptr;
66
67 if (str == NULL)
68 return;
69 for (ptr = str->start; ptr->next != NULL; ptr = ptr->next)
70 {
71 Vec2 p1, p2;
72
73 DD_GET_POS2(ptr, p1);
74 DD_GET_POS2(ptr->next, p2);
75 tv_line2(tv, p1, p2);
76 if (ptr == str->end)
77 break;
78 }
79 }
80
81 void draw3_str2(Tv * tv, Tstring * str, Vec3(*map) (), void *data)
82 {
83 List *ptr;
84
85 if (str == NULL)
86 return;
87
88 for (ptr = str->start; ptr->next != NULL; ptr = ptr->next)
89 {
90 Vec2 p1, p2;
91
92 DD_GET_POS2(ptr, p1);
93 DD_GET_POS2(ptr->next, p2);
94 tv_line3(tv, map(p1, data), map(p2, data));
95 if (ptr == str->end)
96 break;
97 }
98 }
99
100 void skeldraw3_str2(Tv * tv, Tstring * str, Vec3(*map) (), void *data, int space)
101 {
102 List *ptr;
103
104 if (str == NULL)
105 return;
106
107 if (str->end->next != str->start)
108 format("loop error\n");
109 for (ptr = str->start; ptr->next != NULL;)
110 {
111 Vec2 p1, p2;
112 int k = 0;
113
114 DD_GET_POS2(ptr, p1);
115 while (k++ < space && ptr != str->end)
116 ptr = ptr->next;
117 DD_GET_POS2(ptr->next, p2);
118 tv_line3(tv, map(p1, data), map(p2, data));
119 if (ptr == str->end)
120 break;
121 }
122 }
123
This page was automatically generated by the
LXR engine.
Visit the LXR main site for more
information.