Switch to unified view

a b/Tools/GRFPrediction/CreateFootNodes.any
1
#ifdef  __CREATE_CC_NODE__
2
#undef __CREATE_CC_NODE__
3
#endif
4
5
#define __CREATE_CC_NODE__(IDX) NodesBaseFrame = { AnyRefNode Node##IDX = {sRel = ..Targets[IDX]; AnyDrawNode Drw = { Visible=...NodesVisible; RGB = ...NodesRGB; ScaleXYZ= ...NodesScale; Opacity = ...NodesOpacity; }; };}; AnyRefNode &Node##IDX = NodesBaseFrame.Node##IDX
6
7
8
9
10
#class_template CreateFootContactNodes25 (AnySeg &foot_ref, 
11
                                        NAME = "",
12
                                        CONTACT_POINT_OFFSET_DIST = 0)
13
{
14
    #var AnySwitchVar NodesVisible = On;
15
    #var AnyInt NodesRGB = {1, 0, 1};
16
    #var AnyVec3 NodesScale =  0.005*{1, 1, 1};
17
    #var AnyVar NodesOpacity = 1;
18
  
19
    AnyVec3 NewCoordSys_sRel = foot_ref.HeelContactNodeLow.sRel;
20
    AnyMat33 NewCoordSys_ARel = RotMat(foot_ref.HeelContactNodeLow.sRel,
21
                                       foot_ref.ToeMedialContactNode.sRel,
22
                                       foot_ref.ToeLateralContactNode.sRel)
23
                                * RotMat(-pi/2*foot_ref.Sign, x);
24
    AnyMat33 ProjectionMat = {{1, 0, 0}, {0, 0, 0}, {0, 0, 1}}; // Projection to XZ plane!
25
    AnyVar Offset_Dist = CONTACT_POINT_OFFSET_DIST;
26
    AnyVec3 Offset_Vec = {0, -1, 0};
27
  
28
    AnyFloat Sources = 
29
    {
30
      foot_ref.HeelContactNodeLow.sRel, 
31
      foot_ref.ToeMedialContactNode.sRel, 
32
      foot_ref.ToeLateralContactNode.sRel, 
33
      foot_ref.BigToeNode.sRel,
34
      foot_ref.MedialMalleolus.sRel, 
35
      foot_ref.LateralMalleolus.sRel,
36
      foot_ref.SubTalarJoint.sRel, 
37
      foot_ref.MetatarsalJoint1Node.sRel, 
38
      foot_ref.MetatarsalJoint2Node.sRel, 
39
      foot_ref.MetatarsalJoint3Node.sRel, 
40
      foot_ref.MetatarsalJoint4Node.sRel, 
41
      foot_ref.MetatarsalJoint5Node.sRel, 
42
      foot_ref.Scale((5*foot_ref.StdPar.ToeMedialContactNode+5*foot_ref.StdPar.BigToeNode)/10), 
43
      foot_ref.Scale((5*foot_ref.StdPar.ToeLateralContactNode+5*foot_ref.StdPar.BigToeNode)/10),
44
      foot_ref.Scale((5*foot_ref.StdPar.HeelContactNodeLow+5*foot_ref.StdPar.ToeMedialContactNode)/10), 
45
      foot_ref.Scale((2.5*foot_ref.StdPar.HeelContactNodeLow+7.5*foot_ref.StdPar.ToeMedialContactNode)/10), 
46
      foot_ref.Scale((5*foot_ref.StdPar.HeelContactNodeLow+5*foot_ref.StdPar.ToeLateralContactNode)/10), 
47
      foot_ref.Scale((2.5*foot_ref.StdPar.HeelContactNodeLow+7.5*foot_ref.StdPar.ToeLateralContactNode)/10), 
48
      foot_ref.Scale((7.5*foot_ref.StdPar.HeelContactNodeLow+2.5*foot_ref.StdPar.ToeLateralContactNode)/10), 
49
      foot_ref.Scale((8.5*foot_ref.StdPar.HeelContactNodeLow+1.5*foot_ref.StdPar.ToeLateralContactNode)/10), 
50
      foot_ref.Scale((-1.5*foot_ref.StdPar.HeelContactNodeLow+11.5*foot_ref.StdPar.ToeLateralContactNode)/10), 
51
      foot_ref.Scale((4*foot_ref.StdPar.HeelContactNodeLow+6*foot_ref.StdPar.BigToeNode)/10),
52
      foot_ref.FlexorHallucisLongusViaNode7.sRel, 
53
      foot_ref.FlexorDigitorumLongusViaNode8.sRel, 
54
      foot_ref.ExtensorDigitorumLongus1Node.sRel    
55
    };
56
    AnyInt Sources_Sizes = SizesOf(Sources);
57
    AnyFloat Unit_Array = iarr(1, Sources_Sizes[0])*0 + 1 ;
58
59
    AnyFloat Targets = 
60
    ( Sources - (NewCoordSys_sRel'*{Unit_Array})')* NewCoordSys_ARel * ProjectionMat 
61
    + (Offset_Dist*Offset_Vec'*{Unit_Array})';
62
  
63
  foot_ref = {
64
    AnyRefNode ConditionalContact_Nodes##NAME =
65
    {
66
      sRel = ..NewCoordSys_sRel ;
67
      ARel = ..NewCoordSys_ARel ;  
68
    };
69
  };
70
  
71
  
72
  
73
  AnyFolder &NodesBaseFrame = foot_ref.ConditionalContact_Nodes##NAME;
74
  
75
      __CREATE_CC_NODE__(0 );
76
      __CREATE_CC_NODE__(1 );
77
      __CREATE_CC_NODE__(2 );
78
      __CREATE_CC_NODE__(3 );
79
      __CREATE_CC_NODE__(4 );
80
      __CREATE_CC_NODE__(5 );
81
      __CREATE_CC_NODE__(6 );
82
      __CREATE_CC_NODE__(7 );
83
      __CREATE_CC_NODE__(8 );
84
      __CREATE_CC_NODE__(9 );
85
      __CREATE_CC_NODE__(10);
86
      __CREATE_CC_NODE__(11);
87
      __CREATE_CC_NODE__(12);
88
      __CREATE_CC_NODE__(13);
89
      __CREATE_CC_NODE__(14);
90
      __CREATE_CC_NODE__(15);
91
      __CREATE_CC_NODE__(16);
92
      __CREATE_CC_NODE__(17);
93
      __CREATE_CC_NODE__(18);
94
      __CREATE_CC_NODE__(19);
95
      __CREATE_CC_NODE__(20);
96
      __CREATE_CC_NODE__(21);
97
      __CREATE_CC_NODE__(22);
98
      __CREATE_CC_NODE__(23);
99
      __CREATE_CC_NODE__(24);
100
  
101
  
102
};
103
104
105
106
107
108