forked from pixmeo/osirix
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathPiecewise3D.mm
61 lines (46 loc) · 1.2 KB
/
Piecewise3D.mm
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
/*=========================================================================
Program: OsiriX
Copyright (c) OsiriX Team
All rights reserved.
Distributed under GNU - LGPL
See http://www.osirix-viewer.com/copyright.html for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.
=========================================================================*/
#import "Piecewise3D.h"
@implementation Piecewise3D
- (id) init
{
self = [super init];
xPiecewise = vtkPiecewiseFunction::New();
yPiecewise = vtkPiecewiseFunction::New();
zPiecewise = vtkPiecewiseFunction::New();
return self;
}
- (void) dealloc
{
xPiecewise->Delete();
yPiecewise->Delete();
zPiecewise->Delete();
[super dealloc];
}
- (void) addPoint: (float) t : (Point3D*) p
{
float x, y, z;
x = [p x];
y = [p y];
z = [p z];
xPiecewise->AddPoint(t, x);
yPiecewise->AddPoint(t, y);
zPiecewise->AddPoint(t, z);
}
- (Point3D*) evaluateAt: (float) t
{
float x, y, z;
x = xPiecewise->GetValue(t);
y = yPiecewise->GetValue(t);
z = zPiecewise->GetValue(t);
return [[[Point3D alloc] initWithValues:x :y :z] autorelease];
}
@end