83 lines (60 with data), 1.9 kB
#class_template WidgetMarkerDriver (HumanNode, AnyOperation &Operation, OriginRefFrame){
#var AnyVec3 Origin ; // Variable with obligatory initialization
AnyFixedRefFrame Point={
Origin= .Origin;
AnyDrawSphere drw={RGB={1,0,0};ScaleXYZ={1,1,1}*0.01;};
};
AnyKinEq LinEq ={
AnyKinLinear lin ={
AnyFixedRefFrame &ref1=..Point;
AnyRefFrame &ref2=..HumanNode;
ref2={ AnyDrawSphere drw={RGB={0,0,1};ScaleXYZ={1,1,1}*0.01;}; };
AnyKinPLine line ={
AnyRefFrame &ref1=.ref1;
AnyRefFrame &ref2=.ref2;
AnyDrawPLine drw={Thickness=0.001; RGB={0,0,1};};
};
};
CType={Soft,Soft,Soft};
};
AnyDrawWidgetLin widget= {
Operation = &.Operation;
UpdateEvent = OnMouseRelease;
MaxDrawSize = 0.1;
MinDrawSize = 0.05;
RefFrame =&.OriginRefFrame;
Target = &.Point.Origin;
};
};
#class_template WidgetMarkerDriverRelative (This, HumanNode, AnyOperation &Operation, OriginRefFrame){
#var AnyVec3 Pos;
OriginRefFrame ={
AnyRefNode Point={
sRel= This.Pos;
AnyDrawSphere drw={RGB={1,0,0};ScaleXYZ={1,1,1}*0.01;};
};
};
AnyKinEq LinEq ={
AnyKinLinear lin ={
Ref=0;
AnyRefFrame &ref1=..OriginRefFrame.Point;
AnyRefFrame &ref2=..HumanNode;
ref2={ AnyDrawSphere drw={RGB={0,0,1};ScaleXYZ={1,1,1}*0.01;}; };
AnyKinPLine line ={
AnyRefFrame &ref1=.ref1;
AnyRefFrame &ref2=.ref2;
AnyDrawPLine drw={Thickness=0.001; RGB={0,0,1};};
};
};
CType={Soft,Soft,Soft};
};
AnyDrawWidgetLin widget= {
Operation = &.Operation;
UpdateEvent = OnMouseRelease;
MaxDrawSize = 0.1;
MinDrawSize = 0.05;
RefFrame =&.OriginRefFrame;
Target = &.Pos;
// RelPos=&-.Pos;
};
};