[38ba34]: / Tools / ModelUtilities / Widgets / WidgetMarkerDriver.any

Download this file

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;
  };
  
};