3ds Max C++ API Reference
Screen-Time-Value Macros

These are macros used when working with Track View to scale into and out of screen space. More...

Macros

#define TimeToScreen(t, scale, scroll)   (int(floor((t)*(scale)+0.5)) - (scroll))
 Given a TimeValue t, if you have the time scale and time scroll factors, this macro returns the screen space X for that time. More...
 
#define ScreenToTime(s, scale, scroll)   ((int)floor((s)/(scale) + (scroll)/(scale)+0.5))
 Given a screen coordinate s, if you have the scale and scroll factors, this macro will return a TimeValue for that screen position. More...
 
#define ValueToScreen(v, h, scale, scroll)   (h-int(floor((v)*(scale)+0.5)) - (scroll))
 Given a Value v, if you have the value scale and value scroll factors, this macro returns the screen space Y for that value. More...
 
#define ScreenToValue(s, h, scale, scroll)   ((float(h)-(float(s)+float(scroll)))/(scale))
 Given a screen coordinate s, if you have the scale and scroll factors, this macro will return a value for that screen position. More...
 
#define ScaleAboutOrigin(val, origin, scale)   ((((val)-(origin))*(scale))+(origin))
 

Detailed Description

These are macros used when working with Track View to scale into and out of screen space.

Macro Definition Documentation

◆ TimeToScreen

#define TimeToScreen (   t,
  scale,
  scroll 
)    (int(floor((t)*(scale)+0.5)) - (scroll))

Given a TimeValue t, if you have the time scale and time scroll factors, this macro returns the screen space X for that time.

◆ ScreenToTime

#define ScreenToTime (   s,
  scale,
  scroll 
)    ((int)floor((s)/(scale) + (scroll)/(scale)+0.5))

Given a screen coordinate s, if you have the scale and scroll factors, this macro will return a TimeValue for that screen position.

◆ ValueToScreen

#define ValueToScreen (   v,
  h,
  scale,
  scroll 
)    (h-int(floor((v)*(scale)+0.5)) - (scroll))

Given a Value v, if you have the value scale and value scroll factors, this macro returns the screen space Y for that value.

◆ ScreenToValue

#define ScreenToValue (   s,
  h,
  scale,
  scroll 
)    ((float(h)-(float(s)+float(scroll)))/(scale))

Given a screen coordinate s, if you have the scale and scroll factors, this macro will return a value for that screen position.

◆ ScaleAboutOrigin

#define ScaleAboutOrigin (   val,
  origin,
  scale 
)    ((((val)-(origin))*(scale))+(origin))