summaryrefslogtreecommitdiff
path: root/src/DrawResources/Geometry.tcl
blob: 2a2d1c9e82d50db3defc79aca600273a6e9fc584 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
proc cmp {} {
    dtyp .
    set name [lastrep id x y b]
    global $name
    lastrep id x1 y1 z1 b
    cfindp $name id x y pole
    if {[dval pole] == 0} return
    dset x0 x1 y0 y1 z0 z1 b 0
    draw id 6 $name
    while {[dval b] == 0} {
	pick id x2 y2 z2 b nowait
	dset dx x2-x1 dy y2-y1 dz z2-z1  x1 x2  y1 y2  z1 z2
	draw id 6 $name
	cmovep $name pole dx dy dz
	draw id 6 $name
    }
    draw id 6 $name
    if {[dval b] == 1} return;
    dset dx x0-x2 dy y0-y2 dz z0-z2
    cmovep $name pole dx dy dz
}

proc smp {} {
    dtyp .
    set name [lastrep id x y b]
    global $name
    lastrep id x1 y1 z1 b
    sfindp $name id x y upole vpole
    if {[dval upole] == 0} return
    dset x0 x1 y0 y1 z0 z1 b 0
    draw id 6 $name
    while { [dval b] == 0} {
	pick id x2 y2 z2 b nowait
	dset dx x2-x1  dy y2-y1  dz z2-z1 x1 x2 y1 y2 z1 z2
	draw id 6 $name
	movep $name upole vpole dx dy dz
	draw id 6 $name
    }
    draw id 6 $name
    if {[dval b] == 1} return
    dset dx x0-x2  dy y0-y2  dz z0-z2
    movep $name upole vpole dx dy dz
}

#################################################
# smooth
#################################################
proc smooth {name tol {file ""}} {
    if {$file == ""} {
	uplevel #0 "bsmooth $name $tol"
    } else {
	global Draw_DataDir
	uplevel #0 "bsmooth $name $tol $Draw_DataDir/$file"
    }
    return $name
}

help smooth {smooth  cname tol [filename] } "DRAW Variables management"

#################################################
# beziersmooth
#################################################
proc beziersmooth {name tol deg option {file ""}} {
    if {$file == ""} {
	uplevel #0 "bzsmooth $name $tol $deg $option"
    } else {
	global Draw_DataDir
	uplevel #0 "bzsmooth $name $tol  $deg $option $Draw_DataDir/$file"
    }
    return $name
}

help beziersmooth { beziersmooth  cname tol deg [-GR -VA -PR] [filename] } "DRAW Variables management"