summaryrefslogtreecommitdiff
path: root/sim/src/jigs.h
blob: aae138eebb462a519bc83bb52d507337cdd56f55 (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
// Copyright 2005-2006 Nanorex, Inc.  See LICENSE file for details. 
#ifndef JIGS_H_INCLUDED
#define JIGS_H_INCLUDED

#define RCSID_JIGS_H  "$Id$"

extern struct xyz gxyz(double v);

extern void jigMotorPreforce(struct jig *jig,
                             struct xyz *position,
                             struct xyz *force,
                             double deltaTframe);

extern void jigGround(struct jig *jig,
                      double deltaTframe,
                      struct xyz *position,
                      struct xyz *new_position,
                      struct xyz *force);

extern void jigMotor(struct jig *jig,
                     double deltaTframe,
                     struct xyz *position,
                     struct xyz *new_position,
                     struct xyz *force);

extern double jigMinimizePotentialRotaryMotor(struct part *p, struct jig *jig,
                                              struct xyz *positions,
                                              double *pTheta);


extern void jigMinimizeGradientRotaryMotor(struct part *p, struct jig *jig,
                                           struct xyz *positions,
                                           struct xyz *force,
                                           double *pTheta,
                                           double *pGradient);


extern void jigLinearMotor(struct jig *jig,
                           struct xyz *position,
                           struct xyz *new_position,
                           struct xyz *force,
                           double deltaTframe);

extern double jigMinimizePotentialLinearMotor(struct part *p, struct jig *jig,
                                              struct xyz *positions,
                                              double *pDistance);

extern void jigMinimizeGradientLinearMotor(struct part *p, struct jig *jig,
                                           struct xyz *positions,
                                           struct xyz *force,
                                           double *pDistance,
                                           double *pGradient);

extern void jigThermometer(struct jig *jig,
                           double deltaTframe,
                           struct xyz *position,
                           struct xyz *new_position);

extern void jigThermostat(struct jig *jig,
                          double deltaTframe,
                          struct xyz *position,
                          struct xyz *new_position);

extern double angleBetween(struct xyz xyz1, struct xyz xyz2);

extern void jigDihedral(struct jig *jig, struct xyz *new_position);

extern void jigAngle(struct jig *jig, struct xyz *new_position);

extern void jigRadius(struct jig *jig, struct xyz *new_position);

#endif