LightscapeLight Class Reference

#include <lslights.h>

Class Description

Common Photometric light.

LightscapeLight is the base class for all Photometric lights. You can safely cast an Animatble* to LightscapeLight* if IsSubClass(LIGHTSCAPE_LIGHT_CLASS) returns true.

+ Inheritance diagram for LightscapeLight:

Classes

class  AreaLightCustAttrib
 Area Lights sampling custom attribute. More...
 

Public Types

enum  LightTypes {
  TYPE_BASE = 532, TARGET_POINT_TYPE = TYPE_BASE + 0, POINT_TYPE = TYPE_BASE + 1, TARGET_LINEAR_TYPE = TYPE_BASE + 2,
  LINEAR_TYPE = TYPE_BASE + 3, TARGET_AREA_TYPE = TYPE_BASE + 4, AREA_TYPE = TYPE_BASE + 5, TARGET_DISC_TYPE = TYPE_BASE + 6,
  DISC_TYPE = TYPE_BASE + 7, TARGET_SPHERE_TYPE = TYPE_BASE + 8, SPHERE_TYPE = TYPE_BASE + 9, TARGET_CYLINDER_TYPE = TYPE_BASE + 10,
  CYLINDER_TYPE = TYPE_BASE + 11, LAST_TYPE = CYLINDER_TYPE
}
 Types for the lights. More...
 
enum  DistTypes {
  ISOTROPIC_DIST = 0, SPOTLIGHT_DIST = 1, DIFFUSE_DIST = 2, WEB_DIST = 3,
  LAST_DIST = WEB_DIST
}
 Types for the distributions. More...
 
enum  ReferenceIDs {
  REF_PARAMS = 0, REF_SHADOW_PARAMS = 1, REF_SPOT_PARAMS = 2, REF_WEB_PARAMS = 3,
  REF_SHADOWGEN = 4, REF_EXT_PARAMS = 5, LAST_REF = REF_EXT_PARAMS
}
 IDs for the references kept by this object. More...
 
enum  ParameterBlockID {
  PB_GENERAL = 0, PB_SHADOW = 1, PB_SPOT = 2, PB_WEB = 3,
  PB_EXT = 4, LAST_PB = PB_EXT
}
 IDs for the parameters blocks for Lightscape lights. More...
 
enum  ParameterIDs {
  PB_DIST_TYPE = 1, PB_USE_LIGHT = 2, PB_CAST_SHADOWS = 3, PB_LIGHT_COLOR = 4,
  PB_FILTER_COLOR = 5, PB_INTENSITY = 6, PB_KELVIN = 8, PB_USE_KELVIN = 10,
  PB_INTENSITY_AT = 13, PB_INTENSITY_TYPE = 14, PB_FLUX = 15, PB_ORIGINAL_INTENSITY = 16,
  PB_ORIGINAL_FLUX = 17, PB_USE_DIMMER = 18, PB_DIMMER = 19, PB_COLORSHIFT_DIMMING = 20,
  PB_USE_FARATTENUATION = 21, PB_SHOW_FARATTENUATION_GIZMO = 22, PB_START_FARATTENUATION = 23, PB_END_FARATTENUATION = 24,
  LAST_GEN_PB = PB_END_FARATTENUATION
}
 This enum is used to hold the General parameter IDs. More...
 
enum  ExtParamIDs {
  PB_CONTRAST = 0, PB_DIFFSOFT = 1, PB_PROJECTOR = 2, PB_PROJECTOR_MAP = 3,
  PB_AFFECT_DIFFUSE = 4, PB_AFFECT_SPECULAR = 5, PB_AMBIENT_ONLY = 6, PB_TDIST = 7,
  PB_LINELIGHT_LENGTH = 11, PB_AREALIGHT_LENGTH = 11, PB_AREALIGHT_WIDTH = 12, PB_DISCLIGHT_RADIUS = 13,
  PB_SPHERELIGHT_RADIUS_OLD = 14, PB_SPHERELIGHT_RADIUS = PB_DISCLIGHT_RADIUS, PB_CYLINDERLIGHT_RADIUS_OLD = 15, PB_CYLINDERLIGHT_RADIUS = PB_DISCLIGHT_RADIUS,
  PB_CYLINDERLIGHT_LENGTH_OLD = 16, PB_CYLINDERLIGHT_LENGTH = PB_LINELIGHT_LENGTH, LAST_EXT_PB = PB_CYLINDERLIGHT_LENGTH_OLD
}
 This enum is used to hold the Extended parameter IDs. More...
 
enum  ShadowIDs {
  PB_ATMOS_SHAD = 0, PB_ATMOS_OPACITY = 1, PB_ATMOS_COLAMT = 2, PB_SHADMULT = 3,
  PB_SHAD_COLMAP = 4, PB_SHADCOLOR = 5, PB_LIGHT_AFFECTS_SHADOW = 6, PB_USE_GLOBAL_PARAMS = 7,
  PB_SHAD_PROJ_MAP = 8, LAST_SHAD_PB = PB_SHAD_PROJ_MAP
}
 This enum is used to hold the Shadow parameter IDs. More...
 
enum  SpotlightIDs { PB_BEAM_ANGLE = 0, PB_FIELD_ANGLE = 1, PB_CONE_DISPLAY = 2, LAST_SPOT_PB = PB_CONE_DISPLAY }
 This enum is used to hold the Spotlight parameter IDs. More...
 
enum  DistributionIDs {
  PB_WEB_FILE_NAME = 0, PB_WEB_ROTATE_X = 1, PB_WEB_ROTATE_Y = 2, PB_WEB_ROTATE_Z = 3,
  LAST_WEB_PB = PB_WEB_ROTATE_Z
}
 This enum is used to hold the Photometric Web parameter IDs. More...
 
enum  IntensityType { LUMENS = 0, CANDELAS = 1, LUX_AT =2 }
 This enum is used to hold the intensity types. More...
 
enum  MaxShadowType { NO_SHADOW_GENERATOR = -1, BITMAP_SHADOWS = 0, RAYTRACE_SHADOWS = 1, OTHER_SHADOWS = 0xffff }
 Shadow types for MAX. More...
 
enum  PresetLightColor {
  HALOGEN_WARM = 0, HALOGEN_BASIC, HALOGEN_COOL, INCANDESCENT_FILAMENT_LAMP,
  FLUORESCENT_WARM_WHITE, FLUORESCENT_COOL_WHITE, FLUORESCENT_WHITE, FLUORESCENT_DAYLIGHT,
  FLUORESCENT_LITE_WHITE, HID_CERAMIC_METAL_HALIDE_WARM, HID_CERAMIC_METAL_HALIDE_COOL, HID_QUARTZ_METAL_HALIDE_WARM,
  HID_QUARTZ_METAL_HALIDE, HID_QUARTZ_METAL_HALIDE_COOL, HID_MERCURY, HID_PHOSPHOR_MERCURY,
  HID_XENON, HID_HIGH_PRESSURE_SODIUM, HID_LOW_PRESSURE_SODIUM, D65_ILLUMINANT_REFERENCE_WHITE,
  D50_ILLUMINANT_REFERENCE_WHITE
}
 Preset light colors. More...
 

Public Member Functions

virtual void SetInclude (BOOL onOff)=0
 Sets whether the Include/Exclude list should include or exclude objects. More...
 
virtual void UpdateTargDistance (TimeValue t, INode *inode)=0
 Update the target distance parameter of the light to the distance between the light target and the light. More...
 
virtual Point3 GetCenter () const =0
 Returns the location of the center of the light. More...
 
virtual void SetType (int type)=0
 Sets the light type. More...
 
virtual void SetType (const MCHAR *name)=0
 Sets the light type. More...
 
virtual int Type ()=0
 Returns the current light type. More...
 
virtual const MCHARTypeName ()=0
 Returns the light type. More...
 
virtual void SetDistribution (DistTypes dist)=0
 Sets the distribution of the light. More...
 
virtual DistTypes GetDistribution () const =0
 Returns the distribution of the light. More...
 
virtual void SetIntensityAt (float f)=0
 Sets the distance at which the light intensity is measured. More...
 
virtual float GetIntensityAt ()=0
 Returns the distance at which the light intensity is measured. More...
 
virtual void SetIntensityType (IntensityType t)=0
 Sets the intensity type of the light. More...
 
virtual IntensityType GetIntensityType ()=0
 Returns the intensity type of the light. More...
 
virtual void SetFlux (TimeValue t, float flux)=0
 Sets the flux of the light. More...
 
virtual float GetFlux (TimeValue t, Interval &valid=Interval(0, 0)) const =0
 Returns the flux of the light. More...
 
virtual void SetRGBFilter (TimeValue t, Point3 &rgb)=0
 Sets the color of the light filter. More...
 
virtual Point3 GetRGBFilter (TimeValue t, Interval &valid=Interval(0, 0))=0
 Returns the color of the light filter. More...
 
virtual void SetHSVFilter (TimeValue t, Point3 &hsv)=0
 Sets the color of the light filter. More...
 
virtual Point3 GetHSVFilter (TimeValue t, Interval &valid=Interval(0, 0))=0
 Returns the color of the light filter. More...
 
virtual ShadowTypeActiveShadowType ()=0
 Returns the plug-in shadow generator. More...
 
virtual ShadowTypeGetShadowGenerator ()=0
 Returns the plug-in shadow generator. More...
 
virtual const MCHARGetShadowGeneratorName ()=0
 Returns the plug-in shadow generator name. More...
 
virtual void SetShadowGenerator (ShadowType *s)=0
 Sets the plug-in shadow generator. More...
 
virtual void SetShadowGenerator (const MCHAR *name)=0
 Sets the plug-in shadow generator. More...
 
virtual void SetUseShadowColorMap (TimeValue t, int onOff)=0
 Sets whether a shadow color map is used by the light. More...
 
virtual int GetUseShadowColorMap (TimeValue t)=0
 Returns whether a shadow color map is used by the light. More...
 
virtual BOOL SetKelvinControl (Control *kelvin)=0
 Sets the controller for the Kelvin temperature. More...
 
virtual BOOL SetFilterControl (Control *filter)=0
 Sets the controller for the filter color. More...
 
virtual ControlGetKelvinControl ()=0
 Returns the controller for the Kelvin temperature. More...
 
virtual ControlGetFilterControl ()=0
 Returns the controller for the filter color. More...
 
virtual float GetKelvin (TimeValue t, Interval &v=Interval(0, 0))=0
 Returns the Kelvin temperature of the light. More...
 
virtual void SetKelvin (TimeValue t, float kelvin)=0
 Sets the Kelvin temperature of the light. More...
 
virtual BOOL GetUseKelvin ()=0
 Returns whether the kelvin temperature or light color is to be used. More...
 
virtual void SetUseKelvin (BOOL useKelvin)=0
 Sets whether the kelvin temperature or light color is to be used. More...
 
virtual MaxSDK::AssetManagement::AssetUser GetWebFile () const =0
 Returns the web distribution file for the light as an AssetUser. More...
 
virtual const MCHARGetFullWebFileName () const =0
 Returns the filename of the web distribution file for the light. More...
 
virtual void SetWebFile (const MaxSDK::AssetManagement::AssetUser &file)=0
 Sets the web distribution file for the light. More...
 
virtual float GetWebRotateX () const =0
 Returns the rotation along the X axis of the web distribution in the light. More...
 
virtual void SetWebRotateX (float degrees)=0
 Sets the rotation along the X axis for the web distribution in the light. More...
 
virtual float GetWebRotateY () const =0
 Returns the rotation along the Y axis of the web distribution in the light. More...
 
virtual void SetWebRotateY (float degrees)=0
 Sets the rotation along the Y axis for the web distribution in the light. More...
 
virtual float GetWebRotateZ () const =0
 Returns the rotation along the Z axis of the web distribution in the light. More...
 
virtual void SetWebRotateZ (float degrees)=0
 Sets the rotation along the Z axis for the web distribution in the light. More...
 
virtual float GetDimmerValue (TimeValue t, Interval &valid=Interval(0, 0)) const =0
 Returns the dimmer value for the light. More...
 
virtual void SetDimmerValue (TimeValue t, float dimmer)=0
 Sets the dimmer value for the light. More...
 
virtual BOOL GetUseMultiplier () const =0
 Returns whether the dimmer is used. More...
 
virtual void SetUseMultiplier (BOOL on)=0
 Sets whether the dimmer is used. More...
 
virtual BOOL IsColorShiftEnabled () const =0
 Returns whether the light's intensity shifts (affects) its color. More...
 
virtual void EnableColorShift (BOOL on)=0
 Sets whether the color of the light shifts when its intensity changes Note that this parameter is really activated only if GetUseMultiplier() is true. More...
 
virtual float GetResultingIntensity (TimeValue t, Interval &valid=Interval(0, 0)) const =0
 Returns the intensity including the dimmer multiplier if it is used. More...
 
virtual float GetResultingFlux (TimeValue t, Interval &valid=Interval(0, 0)) const =0
 Returns the flux including the dimmer multiplier if it is used. More...
 
virtual float GetRadius (TimeValue t, Interval &valid=Interval(0, 0)) const =0
 Returns the radius of a disc, sphere, cylinder light. More...
 
virtual void SetRadius (TimeValue t, float radius)=0
 Sets the radius of a disc, sphere, cylinder light. More...
 
virtual float GetLength (TimeValue t, Interval &valid=Interval(0, 0)) const =0
 Returns the length of a linear, area, cylinder light. More...
 
virtual void SetLength (TimeValue t, float length)=0
 Sets the length of a linear, area, cylinder light. More...
 
virtual float GetWidth (TimeValue t, Interval &valid=Interval(0, 0)) const =0
 Returns the width of an area light. More...
 
virtual void SetWidth (TimeValue t, float width)=0
 Sets the width of an area light. More...
 
virtual void SetShape (int count, const Point3 *pointsIn)=0
 Sets the coordinates of the light. More...
 
virtual int GetShape (Point3 *pointsOut, int bufSize) const =0
 Returns the coordinates of the light. More...
 
virtual float GetOriginalFlux () const =0
 Returns the original flux for a light. More...
 
virtual void SetOriginalFlux (float flux)=0
 Sets the original flux for a light. More...
 
virtual float GetOriginalIntensity () const =0
 Returns the original intensity for a light. More...
 
virtual void SetOriginalIntensity (float candelas)=0
 Sets the original intensity for a light. More...
 
virtual PresetLightColor GetColorPreset () const =0
 Returns the color preset of the light. More...
 
virtual void SetColorPreset (PresetLightColor presetID)=0
 Sets the preset color of the light to be used. More...
 
- Public Member Functions inherited from GenLight
virtual GenLightNewLight (int type)=0
 
virtual RefResult EvalLightState (TimeValue t, Interval &valid, LightState *cs)=0
 This method is called to update the passed LightState and validity interval of the light. More...
 
virtual BOOL IsSpot ()=0
 
virtual BOOL IsDir ()=0
 
virtual void SetUseLight (int onOff)=0
 
virtual BOOL GetUseLight (void)=0
 
virtual void SetSpotShape (int s)=0
 
virtual int GetSpotShape (void)=0
 
virtual void SetHotspot (TimeValue time, float f)=0
 
virtual float GetHotspot (TimeValue t, Interval &valid=Interval(0, 0))=0
 
virtual void SetFallsize (TimeValue time, float f)=0
 
virtual float GetFallsize (TimeValue t, Interval &valid=Interval(0, 0))=0
 
virtual void SetAtten (TimeValue time, int which, float f)=0
 
virtual float GetAtten (TimeValue t, int which, Interval &valid=Interval(0, 0))=0
 
virtual void SetTDist (TimeValue time, float f)=0
 
virtual float GetTDist (TimeValue t, Interval &valid=Interval(0, 0))=0
 
virtual ObjLightDescCreateLightDesc (INode *inode, BOOL forceShadowBuf=FALSE)=0
 
virtual ObjLightDescCreateLightDesc (RenderGlobalContext *rgc, INode *inode, BOOL forceShadowBuf=FALSE)
 
virtual void SetRGBColor (TimeValue t, Point3 &rgb)=0
 
virtual Point3 GetRGBColor (TimeValue t, Interval &valid=Interval(0, 0))=0
 
virtual void SetHSVColor (TimeValue t, Point3 &hsv)=0
 
virtual Point3 GetHSVColor (TimeValue t, Interval &valid=Interval(0, 0))=0
 
virtual void SetIntensity (TimeValue time, float f)=0
 
virtual float GetIntensity (TimeValue t, Interval &valid=Interval(0, 0))=0
 
virtual void SetContrast (TimeValue time, float f)=0
 
virtual float GetContrast (TimeValue t, Interval &valid=Interval(0, 0))=0
 
virtual void SetAspect (TimeValue t, float f)=0
 
virtual float GetAspect (TimeValue t, Interval &valid=Interval(0, 0))=0
 
virtual void SetConeDisplay (int s, int notify=TRUE)=0
 
virtual BOOL GetConeDisplay (void)=0
 
virtual void SetUseAtten (int s)=0
 
virtual BOOL GetUseAtten (void)=0
 
virtual void SetAttenDisplay (int s)=0
 
virtual BOOL GetAttenDisplay (void)=0
 
virtual void SetUseAttenNear (int s)=0
 
virtual BOOL GetUseAttenNear (void)=0
 
virtual void SetAttenNearDisplay (int s)=0
 
virtual BOOL GetAttenNearDisplay (void)=0
 
virtual void Enable (int enab)=0
 
virtual void SetMapBias (TimeValue t, float f)=0
 
virtual float GetMapBias (TimeValue t, Interval &valid=Interval(0, 0))=0
 
virtual void SetMapRange (TimeValue t, float f)=0
 
virtual float GetMapRange (TimeValue t, Interval &valid=Interval(0, 0))=0
 
virtual void SetMapSize (TimeValue t, int f)=0
 
virtual int GetMapSize (TimeValue t, Interval &valid=Interval(0, 0))=0
 
virtual void SetRayBias (TimeValue t, float f)=0
 
virtual float GetRayBias (TimeValue t, Interval &valid=Interval(0, 0))=0
 
virtual int GetUseGlobal ()=0
 
virtual void SetUseGlobal (int a)=0
 
virtual int GetShadow ()=0
 
virtual void SetShadow (int a)=0
 
virtual int GetShadowType ()=0
 
virtual void SetShadowType (int a)=0
 
virtual int GetAbsMapBias ()=0
 Returns the lights Absolute Map Bias setting. More...
 
virtual void SetAbsMapBias (int a)=0
 Sets the lights Absolute Map Bias setting. More...
 
virtual void SetAtmosShadows (TimeValue t, int onOff)
 
virtual int GetAtmosShadows (TimeValue t)
 
virtual void SetAtmosOpacity (TimeValue t, float f)
 
virtual float GetAtmosOpacity (TimeValue t, Interval &valid=FOREVER)
 
virtual void SetAtmosColAmt (TimeValue t, float f)
 
virtual float GetAtmosColAmt (TimeValue t, Interval &valid=FOREVER)
 
virtual int GetOvershoot ()=0
 
virtual void SetOvershoot (int a)=0
 
virtual ExclListGetExclusionList ()=0
 
virtual void SetExclusionList (ExclList &list)=0
 
virtual BOOL SetHotSpotControl (Control *c)=0
 
virtual BOOL SetFalloffControl (Control *c)=0
 
virtual BOOL SetColorControl (Control *c)=0
 
virtual ControlGetHotSpotControl ()=0
 
virtual ControlGetFalloffControl ()=0
 
virtual ControlGetColorControl ()=0
 
virtual void SetAffectDiffuse (BOOL onOff)
 
virtual BOOL GetAffectDiffuse ()
 
virtual void SetAffectSpecular (BOOL onOff)
 
virtual BOOL GetAffectSpecular ()
 
virtual void SetDecayType (BOOL onOff)
 
virtual BOOL GetDecayType ()
 
virtual void SetDecayRadius (TimeValue time, float f)
 
virtual float GetDecayRadius (TimeValue t, Interval &valid=Interval(0, 0))
 
virtual void SetDiffuseSoft (TimeValue time, float f)
 
virtual float GetDiffuseSoft (TimeValue t, Interval &valid=Interval(0, 0))
 
virtual void SetShadColor (TimeValue t, Point3 &rgb)
 
virtual Point3 GetShadColor (TimeValue t, Interval &valid=Interval(0, 0))
 
virtual BOOL GetLightAffectsShadow ()
 
virtual void SetLightAffectsShadow (BOOL b)
 
virtual void SetShadMult (TimeValue t, float m)
 
virtual float GetShadMult (TimeValue t, Interval &valid=Interval(0, 0))
 
virtual TexmapGetProjMap ()
 
virtual void SetProjMap (Texmap *pmap)
 
virtual TexmapGetShadowProjMap ()
 
virtual void SetShadowProjMap (Texmap *pmap)
 
virtual void SetAmbientOnly (BOOL onOff)
 
virtual BOOL GetAmbientOnly ()
 
- Public Member Functions inherited from LightObject
SClass_ID SuperClassID ()
 Retrieves a constant representing the type of the plugin. More...
 
int IsRenderable ()
 Indicates whether the object may be rendered. More...
 
virtual void InitNodeName (MSTR &s)
 This is the default name of the node when it is created. More...
 
virtual CoreExport voidGetInterface (ULONG id)
 Inherited from Animatable. More...
 
virtual CoreExport BaseInterfaceGetInterface (Interface_ID id)
 Inherited from Animatable. More...
 
virtual int GetShadowMethod ()
 Returns the type of shadows used by the light. More...
 
virtual int GetProjector ()
 Returns the lights Projector on / off setting. More...
 
virtual void SetProjector (int a)
 Sets the lights projector on / off setting. More...
 
virtual ExclListGetExclList ()
 Returns the list of names of items included or excluded by this light. More...
 
virtual BOOL Include ()
 Returns TRUE if the light's name list is of items to be included by the light. More...
 
- Public Member Functions inherited from Object
CoreExport Object ()
 
CoreExport ~Object ()
 
virtual int UsesWireColor ()
 This method determines if the object color is used for display. More...
 
virtual int DoOwnSelectHilite ()
 If an object wants to draw itself in the 3D viewports in its selected state in some custom manner this method should return nonzero. More...
 
virtual int IntersectRay (TimeValue t, Ray &r, float &at, Point3 &norm)
 This method is called to compute the intersection point and surface normal at this intersection point of the ray passed and the object. More...
 
virtual BOOL NormalAlignVector (TimeValue t, Point3 &pt, Point3 &norm)
 Objects that don't support the IntersectRay() method (such as helper objects) can implement this method to provide a default vector for use with the normal align command in 3ds Max. More...
 
void LockObject ()
 Implemented by the System. More...
 
void UnlockObject ()
 Implemented by the System. More...
 
int IsObjectLocked ()
 Implemented by the System. More...
 
virtual ObjectState Eval (TimeValue t)=0
 This method is called to evaluate the object and return the result as an ObjectState. More...
 
void LockChannels (ChannelMask channels)
 Implemented by the System. More...
 
void UnlockChannels (ChannelMask channels)
 Implemented by the System. More...
 
ChannelMask GetChannelLocks ()
 Implemented by the System. More...
 
void SetChannelLocks (ChannelMask channels)
 Implemented by the System. More...
 
ChannelMask GetChannelLocks (ChannelMask m)
 Implemented by the System. More...
 
virtual BOOL CanCacheObject ()
 This method determines if this object can have channels cached. More...
 
virtual void WSStateInvalidate ()
 This is called by a node when the node's world space state has become invalid. More...
 
virtual BOOL IsWorldSpaceObject ()
 Returns TRUE if the object as a world space object; otherwise FALSE. More...
 
CoreExport INodeGetWorldSpaceObjectNode ()
 
virtual BOOL IsParticleSystem ()
 
CoreExport void CopyChannelLocks (Object *obj, ChannelMask needChannels)
 Implemented by the System. More...
 
virtual void TopologyChanged ()
 
virtual int IsDeformable ()
 Indicates whether this object is deformable. More...
 
virtual int NumPoints ()
 The points of a deformable object are accessed through a virtual array interface. More...
 
virtual Point3 GetPoint (int i)
 The points of a deformable object are accessed through a virtual array interface. More...
 
virtual void SetPoint (int i, const Point3 &p)
 The points of a deformable object are accessed through a virtual array interface. More...
 
virtual BOOL IsPointSelected (int i)
 Returns TRUE if the 'i-th' point is selected; otherwise FALSE. More...
 
virtual float PointSelection (int i)
 Returns a floating point weighted point selection if the object supports it. More...
 
virtual BOOL HasWeights ()
 Returns TRUE if the object has weights for its points that can be set; otherwise FALSE. More...
 
virtual double GetWeight (int i)
 Returns the weight of the specified point of the object. More...
 
virtual void SetWeight (int i, const double w)
 Sets the weight of the specified point. More...
 
virtual BOOL PolygonCount (TimeValue t, int &numFaces, int &numVerts)
 Retreives the number of faces and vertices of the polyginal mesh representation of this object. More...
 
virtual void PointsWereChanged ()
 Informs the object that its points have been deformed, so it can invalidate its cache. More...
 
virtual CoreExport void Deform (Deformer *defProc, int useSel=0)
 This is the method used to deform the object with a deformer. More...
 
virtual CoreExport void GetDeformBBox (TimeValue t, Box3 &box, Matrix3 *tm=NULL, BOOL useSel=FALSE)
 This method computes the bounding box in the objects local coordinates or the optional space defined by tm. More...
 
virtual int IsMappable ()
 This method lets you know if the ApplyUVWMap() method is available for this object. More...
 
virtual int NumMapChannels ()
 Returns the maximum number of channels supported by this type of object. More...
 
virtual int NumMapsUsed ()
 Returns the number of maps currently used by this object. More...
 
virtual void ApplyUVWMap (int type, float utile, float vtile, float wtile, int uflip, int vflip, int wflip, int cap, const Matrix3 &tm, int channel=1)
 This method may be called to map the object with UVW mapping coordinates. More...
 
virtual CoreExport int CanConvertToType (Class_ID obtype)
 Indicates whether the object can be converted to the specified type. More...
 
virtual CoreExport ObjectConvertToType (TimeValue t, Class_ID obtype)
 This method converts this object to the type specified and returns a pointer it. More...
 
virtual Class_ID PreferredCollapseType ()
 This method allows objects to specify the class that is the best class to convert to when the user collapses the stack. More...
 
virtual CoreExport void GetCollapseTypes (Tab< Class_ID > &clist, Tab< MSTR * > &nlist)
 When the user clicks on the Edit Stack button in the modify branch a list of 'Convert To:' types is presented. More...
 
virtual ObjectCollapseObject ()
 This method is called on the world space cache object when the stack gets collapsed, that lets the pipeline object decide, if it wants to return a different object than itself. More...
 
virtual DWORD GetSubselState ()
 For objects that have sub selection levels, this method returns the current selection level of the object. More...
 
virtual void SetSubSelState (DWORD s)
 
CoreExport void ReadyChannelsForMod (ChannelMask channels)
 Implemented by the System. More...
 
virtual CoreExport Interval ChannelValidity (TimeValue t, int nchan)
 Retrieve the current validity interval for the nchan channel of the object. More...
 
virtual CoreExport void SetChannelValidity (int nchan, Interval v)
 Sets the validity interval of the specified channel. More...
 
virtual CoreExport void InvalidateChannels (ChannelMask channels)
 This method invalidates the intervals for the given channel mask. More...
 
virtual CoreExport Interval ObjectValidity (TimeValue t)
 This method returns the validity interval of the object as a whole at the specified time. More...
 
virtual ObjectMakeShallowCopy (ChannelMask channels)
 This method must make a copy of its "shell" and then shallow copy (see below) only the specified channels. More...
 
virtual CoreExport void ShallowCopy (Object *fromOb, ChannelMask channels)
 This method copies the specified channels from the fromOb to this and copies the validity intervals. More...
 
virtual CoreExport void FreeChannels (ChannelMask channels)
 This method deletes the memory associated with the specified channels and set the intervals associated with the channels to invalid (empty). More...
 
virtual CoreExport void NewAndCopyChannels (ChannelMask channels)
 This method replaces the locked channels with newly allocated copies. More...
 
virtual CoreExport void MaybeEnlargeViewportRect (GraphicsWindow *gw, Rect &rect)
 This method allows the object to enlarge its viewport rectangle, if it wants to. More...
 
CoreExport bool IsBaseClassOwnedChannel (int nchan)
 
CoreExport void UpdateValidity (int nchan, Interval v)
 When a modifier is applied to an object, it needs to include its own validity interval in the interval of the object. More...
 
Interval GetNoEvalInterval ()
 
void SetNoEvalInterval (Interval iv)
 
virtual CoreExport void ReduceCaches (TimeValue t)
 This method give the object the chance to reduce its caches. More...
 
virtual int IsConstObject ()
 This is called to determine if this is a construction object or not. More...
 
virtual int NumPipeBranches (bool selected=true)
 This method returns the number of pipeline branches combined by the object. More...
 
virtual ObjectGetPipeBranch (int i, bool selected=true)
 Retrieves sub-object branches from an object that supports branching. More...
 
virtual INodeGetBranchINode (TimeValue t, INode *node, int i, bool selected=true)
 When an object has sub-object branches, it is likely that the sub-objects are transformed relative to the object. More...
 
virtual int NumberOfContainedShapes ()
 Returns the number of shapes contained inside this object. More...
 
virtual ShapeObjectGetContainedShape (TimeValue t, int index)
 This method returns the ShapeObject specified by the index passed at the time specified. More...
 
virtual void GetContainedShapeMatrix (TimeValue t, int index, Matrix3 &mat)
 Returns the matrix associated with the shape whose index is passed. More...
 
virtual BitArray ContainedShapeSelectionArray ()
 This is used by the lofter. More...
 
virtual BOOL IsShapeObject ()
 
virtual BOOL CheckObjectIntegrity ()
 This method is used for debugging only. More...
 
virtual BOOL HasUVW ()
 Call this method to find out if the object has UVW coordinates. More...
 
virtual BOOL HasUVW (int mapChannel)
 Call this method to find out if the object is has UVW coordinates for the specified mapping channel. More...
 
virtual ObjectFindBaseObject ()
 It is called to return a pointer to the base object (an object that is not a derived object). More...
 
virtual BOOL IsParamSurface ()
 There are several methods used to access a parametric position on the surface of the object. More...
 
virtual int NumSurfaces (TimeValue t)
 Returns the number of parametric surfaces within the object. More...
 
virtual Point3 GetSurfacePoint (TimeValue t, float u, float v, Interval &iv)
 This method needs to be implemented if Object::IsParamSurface() returns TRUE. More...
 
virtual Point3 GetSurfacePoint (TimeValue t, int surface, float u, float v, Interval &iv)
 This method is used to retrieve a point on the specified surface of the object based on two parameters of the surface, u and v. More...
 
virtual void SurfaceClosed (TimeValue t, int surface, BOOL &uClosed, BOOL &vClosed)
 This method allows the object to return flags that indicate whether the parametric surface is closed in the U and V dimensions. More...
 
virtual BOOL GetExtendedProperties (TimeValue t, MSTR &prop1Label, MSTR &prop1Data, MSTR &prop2Label, MSTR &prop2Data)
 This method allows an object to return extended Properties fields. More...
 
CoreExport SvGraphNodeReference SvTraverseAnimGraph (IGraphObjectManager *gom, Animatable *owner, int id, DWORD flags)
 
CoreExport bool SvHandleDoubleClick (IGraphObjectManager *gom, IGraphNode *gNode)
 
CoreExport MSTR SvGetName (IGraphObjectManager *gom, IGraphNode *gNode, bool isBeingEdited)
 
CoreExport COLORREF SvHighlightColor (IGraphObjectManager *gom, IGraphNode *gNode)
 
CoreExport bool SvIsSelected (IGraphObjectManager *gom, IGraphNode *gNode)
 Returns true if the object is selected in its schematic view. More...
 
CoreExport MultiSelectCallbackSvGetMultiSelectCallback (IGraphObjectManager *gom, IGraphNode *gNode)
 
CoreExport bool SvCanSelect (IGraphObjectManager *gom, IGraphNode *gNode)
 
CoreExport void AddXTCObject (XTCObject *pObj, int priority=0, int branchID=-1)
 This method adds an extension object into the pipeline. More...
 
CoreExport int NumXTCObjects ()
 Returns the number of extension objects maintained by this Object. More...
 
CoreExport XTCObjectGetXTCObject (int index)
 Returns a pointer to the specified extension object. More...
 
CoreExport void RemoveXTCObject (int index)
 Removes the extension object as indicated by the index. More...
 
CoreExport void SetXTCObjectPriority (int index, int priority)
 Sets the priority for the extension object whose index is passed. More...
 
CoreExport int GetXTCObjectPriority (int index)
 Returns the integer priority number of the extension object whose index is passed. More...
 
CoreExport void SetXTCObjectBranchID (int index, int branchID)
 Sets the branch ID of the extension object whose index is passed. More...
 
CoreExport int GetXTCObjectBranchID (int index)
 Returns the integer branch ID of the extension object whose index is passed. More...
 
CoreExport void MergeAdditionalChannels (Object *from, int branchID)
 This method has to be called whenever the CompoundObject updates a branch (calling Eval() on it). More...
 
CoreExport void BranchDeleted (int branchID, bool reorderChannels)
 This method has to be called on the CompoundObject so it can delete the XTCObjects for the specified branch. More...
 
CoreExport void CopyAdditionalChannels (Object *from, bool deleteOld=true, bool bShallowCopy=false)
 This method copies all extension objects from the "from" object into the current object. More...
 
CoreExport void DeleteAllAdditionalChannels ()
 Implemented by the System. More...
 
virtual BOOL UseSelectionBrackets ()
 This method allows an object to choose whether or not it will display selection brackets in shaded viewports. More...
 
virtual BOOL IsManipulator ()
 
virtual void ReduceDisplayCaches ()
 Should reduce any derived display data to save memory, since the node wont be drawn until the user undhides it. More...
 
virtual bool NeedGWCacheRebuilt (GraphicsWindow *gw, Material *ma, int numMat)
 This returns whether the Graphics Cache for this object needs to be rebuilt. More...
 
virtual void BuildGWCache (GraphicsWindow *gw, Material *ma, int numMat, BOOL threaded)
 This builds the graphics window cached mesh. More...
 
- Public Member Functions inherited from BaseObject
virtual CoreExport unsigned long GetObjectDisplayRequirement () const
 
virtual CoreExport bool PrepareDisplay (const MaxSDK::Graphics::UpdateDisplayContext &prepareDisplayContext)
 
virtual CoreExport bool UpdatePerNodeItems (const MaxSDK::Graphics::UpdateDisplayContext &updateDisplayContext, MaxSDK::Graphics::UpdateNodeContext &nodeContext, MaxSDK::Graphics::IRenderItemContainer &targetRenderItemContainer)
 
virtual CoreExport bool UpdatePerViewItems (const MaxSDK::Graphics::UpdateDisplayContext &updateDisplayContext, MaxSDK::Graphics::UpdateNodeContext &nodeContext, MaxSDK::Graphics::UpdateViewContext &viewContext, MaxSDK::Graphics::IRenderItemContainer &targetRenderItemContainer)
 
virtual CoreExport const MaxSDK::Graphics::RenderItemHandleArrayGetRenderItems () const
 
CoreExport BaseObject ()
 
virtual CoreExport ~BaseObject ()
 
virtual BOOL HasViewDependentBoundingBox ()
 This method return true if GetWorldBoundBox returns different boxes for different viewports. More...
 
virtual int HitTest (TimeValue t, INode *inode, int type, int crossing, int flags, IPoint2 *p, ViewExp *vpt)
 This method is called to determine if the specified screen point intersects the item. More...
 
virtual void SetExtendedDisplay (int flags)
 This method is used for storing mode-dependent display attributes. More...
 
virtual int Display (TimeValue t, INode *inode, ViewExp *vpt, int flags)
 This is called by the system to have the item display itself (perform a quick render in viewport, using the current TM). More...
 
virtual void Snap (TimeValue t, INode *inode, SnapInfo *snap, IPoint2 *p, ViewExp *vpt)
 Checks the point passed for a snap and updates the SnapInfo structure. More...
 
virtual void GetWorldBoundBox (TimeValue t, INode *inode, ViewExp *vp, Box3 &box)
 This method returns the world space bounding box for Objects (see below for the Sub-object gizmo or Modifiers gizmo version). More...
 
virtual void GetLocalBoundBox (TimeValue t, INode *inode, ViewExp *vp, Box3 &box)
 This is the object space bounding box, the box in the object's local coordinates. More...
 
virtual CreateMouseCallBackGetCreateMouseCallBack ()=0
 This method allows the system to retrieve a callback object used in creating an object in the 3D viewports. More...
 
virtual const MCHARGetObjectName ()
 
virtual CoreExport BOOL OKToChangeTopology (MSTR &modName)
 Implemented by the System. More...
 
virtual BOOL ChangeTopology ()
 This method asks the question of an object or modifier "Do you change topology"? An object or modifier returns TRUE if it is capable of changing topology when its parameters are being edited; otherwise FALSE. More...
 
virtual void ForceNotify (Interval &i)
 Notifies dependents of a change. More...
 
virtual IParamArrayGetParamBlock ()
 An object or modifier should implement this method if it wishes to make its parameter block available for other plug-ins to access it. More...
 
virtual int GetParamBlockIndex (int id)
 If a plug-in makes its parameter block available (using GetParamBlock()) then it will need to provide #defines for indices into the parameter block. More...
 
virtual void Move (TimeValue t, Matrix3 &partm, Matrix3 &tmAxis, Point3 &val, BOOL localOrigin=FALSE)
 When this method is called the plug-in should respond by moving its selected sub-object components. More...
 
virtual void Rotate (TimeValue t, Matrix3 &partm, Matrix3 &tmAxis, Quat &val, BOOL localOrigin=FALSE)
 When this method is called the plug-in should respond by rotating its selected sub-object components. More...
 
virtual void Scale (TimeValue t, Matrix3 &partm, Matrix3 &tmAxis, Point3 &val, BOOL localOrigin=FALSE)
 When this method is called the plug-in should respond by scaling its selected sub-object components. More...
 
virtual void TransformStart (TimeValue t)
 This method is called before the first Move(), Rotate() or Scale() call and before a hold is in effect. More...
 
virtual void TransformHoldingStart (TimeValue t)
 This method is called before the first Move(), Rotate() or Scale() call and after a hold is in effect. More...
 
virtual void TransformHoldingFinish (TimeValue t)
 This method is called after the user has completed the Move(), Rotate() or Scale() operation and before the undo object has been accepted. More...
 
virtual void TransformFinish (TimeValue t)
 This method is called after the user has completed the Move(), Rotate() or Scale() operation and the undo object has been accepted. More...
 
virtual void TransformCancel (TimeValue t)
 This method is called when the transform operation is canceled by a right-click and the undo has been canceled. More...
 
virtual int HitTest (TimeValue t, INode *inode, int type, int crossing, int flags, IPoint2 *p, ViewExp *vpt, ModContext *mc)
 This method is used in modifier gizmo hit testing. More...
 
virtual int Display (TimeValue t, INode *inode, ViewExp *vpt, int flags, ModContext *mc)
 When this method is called the plug-in should respond by performing a quick render of the modifier gizmo in viewport using the current TM. More...
 
virtual void GetWorldBoundBox (TimeValue t, INode *inode, ViewExp *vpt, Box3 &box, ModContext *mc)
 This method computes the world space bounding box of the modifier gizmo (or any object that when in sub-object mode has a gizmo). More...
 
virtual void CloneSelSubComponents (TimeValue t)
 This method is called to make a copy of the selected sub-object components of the item. More...
 
virtual void AcceptCloneSelSubComponents (TimeValue t)
 This method is called when the user mouses up after shift-cloning a sub-object selection. More...
 
virtual void SelectSubComponent (HitRecord *hitRec, BOOL selected, BOOL all, BOOL invert=FALSE)
 This method is called to change the selection state of the component identified by hitRec. More...
 
virtual void ClearSelection (int selLevel)
 This method is called to clear the selection for the given sub-object level. More...
 
virtual void SelectAll (int selLevel)
 This method is called to select every element of the given sub-object level. More...
 
virtual void InvertSelection (int selLevel)
 This method is called to invert the specified sub-object level. More...
 
virtual int SubObjectIndex (HitRecord *hitRec)
 Returns the index of the sub-object element identified by the HitRecord hitRec. More...
 
virtual void ActivateSubobjSel (int level, XFormModes &modes)
 When the user changes the selection of the sub-object drop down, this method is called to notify the plug-in. More...
 
virtual BOOL SupportsNamedSubSels ()
 An object that supports sub-object selection can choose to support named sub object selection sets. More...
 
virtual void ActivateSubSelSet (MSTR &setName)
 When the user chooses a name from the drop down list this method is called. More...
 
virtual void NewSetFromCurSel (MSTR &setName)
 If the user types a new name into the named selection set drop down then this method is called. More...
 
virtual void RemoveSubSelSet (MSTR &setName)
 If the user selects a set from the drop down and then chooses Remove Named Selections from the Edit menu this method is called. More...
 
virtual void SetupNamedSelDropDown ()
 To support the Edit Named Selections dialog, plug-ins must implement this method. More...
 
virtual int NumNamedSelSets ()
 To support the Edit Named Selections dialog, plug-ins must implement this method. More...
 
virtual MSTR GetNamedSelSetName (int i)
 To support the Edit Named Selections dialog, plug-ins must implement this method. More...
 
virtual void SetNamedSelSetName (int i, MSTR &newName)
 To support the Edit Named Selections dialog, plug-ins must implement this method. More...
 
virtual void NewSetByOperator (MSTR &newName, Tab< int > &sets, int op)
 To support the Edit Named Selections dialog, plug-ins must implement this method. More...
 
virtual void GetSubObjectCenters (SubObjAxisCallback *cb, TimeValue t, INode *node, ModContext *mc)
 When the user is in a sub-object selection level, the system needs to get the reference coordinate system definition from the current modifier being edited so that it can display the axis. More...
 
virtual void GetSubObjectTMs (SubObjAxisCallback *cb, TimeValue t, INode *node, ModContext *mc)
 When the user is in a sub-object selection level, the system needs to get the reference coordinate system definition from the current modifier being edited so that it can display the axis. More...
 
virtual void NotifyPreCollapse (INode *node, IDerivedObject *derObj, int index)
 This method is called before a modifier or object is collapsed. More...
 
virtual void NotifyPostCollapse (INode *node, Object *obj, IDerivedObject *derObj, int index)
 This method is called after a modifier or object is collapsed. More...
 
virtual int NumSubObjTypes ()
 Objects and modifiers that support subobjects have to overwrite this method - as well as GetSubObjType() - and return a class derived from ISubObjType in GetSubObjType(). More...
 
virtual ISubObjTypeGetSubObjType (int i)
 Returns a pointer to the sub-object type for the sub-object whose index is passed. More...
 
virtual CoreExport int GetSubObjectLevel ()
 This method returns an integer which indicates the current sub-object level of the modifier or base object. More...
 
virtual void SetGenUVW (BOOL sw)
 This method is called to change the state of its Generate UVW boolean. More...
 
virtual void SetGenUVW (int mapChannel, BOOL sw)
 This method is called to change the state of its Generate UVW boolean for the specified mapping channel. More...
 
virtual void ShowEndResultChanged (BOOL showEndResult)
 This method notifies the BaseObject that the end result display has been switched (the "Show End Result" button has been toggled). More...
 
- Public Member Functions inherited from ReferenceTarget
virtual CoreExport void GetClassName (MSTR &s)
 Retrieves the (localizable) name of the plugin class. More...
 
virtual BOOL IsRefTarget ()
 Checks if this is a ReferenceTarget. More...
 
CoreExport RefResult TestForLoop (const Interval &refInterval, RefMakerHandle hmaker)
 Tests for a cyclical reference. More...
 
CoreExport BOOL HasDependents ()
 Checks if a ReferenceTarget has references. More...
 
CoreExport BOOL HasRealDependents ()
 Checks if this has Real (Strong) Dependents. More...
 
void BeginDependencyTest ()
 Starts Dependency Test. More...
 
BOOL EndDependencyTest ()
 Ends Dependency Test. More...
 
virtual void RefAdded (RefMakerHandle rm)
 Called after a reference is made to a target. More...
 
virtual void RefAddedUndoRedo (RefMakerHandle rm)
 Called after a reference is made to a target because of undo or redo. More...
 
virtual void RefDeleted ()
 Called after a references to this is deleted. More...
 
virtual void RefDeletedUndoRedo ()
 Called after a references to this is deleted because of undo or redo. More...
 
CoreExport RefResult DeleteAllRefsToMe ()
 Deletes all references to this ReferenceTarget. More...
 
CoreExport RefResult TransferReferences (RefTargetHandle oldTarget, BOOL delOld=FALSE)
 Transfers all the references from oldTarget to this. More...
 
CoreExport int DoEnumDependents (DependentEnumProc *dep)
 Begins an enumeration that searches back in the dependency network. More...
 
virtual CoreExport RefTargetHandle Clone (RemapDir &remap)
 This method is used by 3ds Max to clone an object. More...
 
virtual CoreExport void BaseClone (ReferenceTarget *from, ReferenceTarget *to, RemapDir &remap)
 This method copies base class data from an object to its clone. More...
 
virtual CoreExport RefResult NotifyDependents (const Interval &changeInt, PartID partID, RefMessage message, SClass_ID sclass=NOTIFY_ALL, BOOL propagate=TRUE, RefTargetHandle hTarg=NULL, NotifyDependentsOption notifyDependentsOption=REFNOTIFY_ALLOW_OPTIMIZATIONS)
 Notify all dependent RefMakers concerned with the message. More...
 
void FlagDependents (TimeValue t, PartID which=PART_PUT_IN_FG)
 This sends the REFMSG_FLAGDEPENDENTS message up the pipeline. More...
 
virtual void NotifyForeground (TimeValue t)
 This method is called to flag dependents into the FG. More...
 
virtual void NotifyTarget (int message, ReferenceMaker *hMaker)
 Sends messages to ReferenceTargets. More...
 
CoreExport ReferenceTarget ()
 Constructor. More...
 
virtual CoreExport RefResult AutoDelete ()
 Deletes the object when it has no more real dependents. More...
 
CoreExport RefResult MaybeAutoDelete ()
 Deletes the object when it has no more real dependents. More...
 
- Public Member Functions inherited from ReferenceMaker
CoreExport RefResult ReplaceReference (int which, RefTargetHandle newtarg, BOOL delOld=TRUE)
 Used when cloning reference makers. More...
 
CoreExport RefResult DeleteAllRefsFromMe ()
 Deletes all references from this ReferenceMaker. More...
 
CoreExport RefResult DeleteAllRefs ()
 Deletes all references both to and from this item. More...
 
CoreExport RefResult DeleteReference (int i)
 Deletes the specified reference. More...
 
virtual BOOL CanTransferReference (int i)
 Tells whether this reference can be transfered. More...
 
CoreExport ReferenceSaveManagerGetReferenceSaveManager ()
 Access the ReferenceSaveManager of this ReferenceMaker. More...
 
virtual CoreExport IOResult Save (ISave *isave)
 Called for saving data. More...
 
virtual CoreExport IOResult Load (ILoad *iload)
 Called for loading data. More...
 
virtual int RemapRefOnLoad (int iref)
 Used to load old files with references. More...
 
virtual CoreExport void RescaleWorldUnits (float f)
 Rescale size of all world units in reference hierarchy. More...
 
virtual CoreExport void EnumAuxFiles (AssetEnumCallback &assetEnum, DWORD flags)
 Enumerate auxiliary files (e.g. bitmaps) More...
 
virtual CoreExport void SaveEnum (SaveEnumProc &sep, BOOL isNodeCall=0)
 The default save enumeration. More...
 
virtual CoreExport bool SpecifySaveReferences (ReferenceSaveManager &referenceSaveManager)
 Used to specify reference slot remapping during scene file save. More...
 
CoreExport int DoEnumDependents (DependentEnumProc *dep)
 Begins an enumeration that searches back in the dependency network. More...
 
CoreExport bool EnumRefHierarchy (RefEnumProc &proc, bool includeCustAttribs=true, bool includeIndirectRefs=true, bool includeNonPersistentRefs=true, bool preventDuplicatesViaFlag=true)
 This method provides a general purpose reference enumerator. More...
 
CoreExport int FindRef (RefTargetHandle rtarg)
 Get the index of the ReferenceTarget. More...
 
virtual BOOL IsRefMaker ()
 Tells whether it is a ReferenceMaker. More...
 
virtual BOOL IsRealDependency (ReferenceTarget *rtarg)
 Returns whether this is a "real" (strong) dependency or not. More...
 
virtual BOOL ShouldPersistWeakRef (RefTargetHandle rtarg)
 Specifies whether a weak reference is to be persisted on a partial load or save. More...
 
CoreExport ReferenceMaker ()
 Constructor. More...
 
CoreExport void DeleteMe ()
 Deletes an instance of this class. More...
 
virtual CoreExport int NumRefs ()
 Returns the total number of references this ReferenceMaker can hold. More...
 
virtual CoreExport RefTargetHandle GetReference (int i)
 Returns the 'i-th' reference. More...
 
- Public Member Functions inherited from Animatable
virtual void FreeCaches ()
 
virtual int NumChildren ()
 
virtual AnimatableChildAnim (int i)
 
virtual CoreExport MSTR NodeName ()
 
virtual void EditTrack ()
 
virtual CoreExport BOOL SubAnimSetKeyBufferPresent (int subNum)
 returns true if the sub-anim has a "Set Key" buffer present More...
 
virtual BOOL SetKeyBufferPresent ()
 returns true if there is a "Set Key" buffer present More...
 
virtual CoreExport void SubAnimCommitSetKeyBuffer (TimeValue t, int subNum)
 Commit any "Set Key" buffers on the given sub-anim. More...
 
virtual void CommitSetKeyBuffer (TimeValue t)
 Commit any "Set Key" buffers. More...
 
virtual CoreExport void SubAnimRevertSetKeyBuffer (int subNum)
 Revert any "Set Key" buffers on the given sub-anim. More...
 
virtual void RevertSetKeyBuffer ()
 Revert any "Set Key" buffers. More...
 
virtual LRESULT CALLBACK TrackViewWinProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
 This function is obsolete. More...
 
virtual bool IsParamBlockDesc2Used (ParamBlockDesc2 *desc)
 Returns true if the passed description is being used. More...
 
virtual bool GetMacroRecorderName (bool used_as_rhs_value, MSTR &objectSpecifiedName)
 This method is called to access the object specified name to use for the Maxscript macrorecorder. More...
 
CoreExport Animatable ()
 Constructor. More...
 
virtual CoreExport void DeleteThis ()
 Deletes an instance of this class. More...
 
MSTR ClassName () const
 Returns the name of the plugin class. More...
 
virtual CoreExport Class_ID ClassID ()
 Retrieves a constant that uniquely identifies the plugin class. More...
 
virtual void BeginEditParams (IObjParam *ip, ULONG flags, Animatable *prev=NULL)
 
virtual void EndEditParams (IObjParam *ip, ULONG flags, Animatable *next=NULL)
 
virtual CoreExport void ReleaseInterface (ULONG id, void *i)
 
virtual CoreExport int SetProperty (ULONG id, void *data)
 
virtual CoreExport voidGetProperty (ULONG id)
 
CoreExport void AppendProperty (AnimProperty *prop)
 A function to directly add arbitrary properties to this object developers should ensure that the properties ID does not conflict with any Max-specific IDs. More...
 
CoreExport AnimPropertyFindProperty (DWORD id)
 Find any property. More...
 
CoreExport void AddAppDataChunk (const Class_ID &cid, SClass_ID sid, DWORD sbid, DWORD len, void *data)
 Adds application/plugin specific (custom) data to an Animatable. More...
 
CoreExport AppDataChunkGetAppDataChunk (const Class_ID &cid, SClass_ID sid, DWORD sbid)
 Retrieves the application/plugin specific (custom) data stored with an Animatable. More...
 
CoreExport BOOL RemoveAppDataChunk (const Class_ID &cid, SClass_ID sid, DWORD sbid)
 Deletes the application/plugin specific (custom) data stored with an Animatable. More...
 
CoreExport void ClearAllAppData ()
 Deletes all application/plugin specific (custom) data stored with an Animatable. More...
 
virtual int NumSubs ()
 
virtual AnimatableSubAnim (int i)
 
virtual CoreExport MSTR SubAnimName (int i)
 
virtual BOOL CanDeleteSubAnim (int i)
 
virtual void DeleteSubAnim (int i)
 
virtual DWORD GetSubAnimCurveColor (int subNum)
 
virtual int SubNumToRefNum (int subNum)
 
virtual BOOL CanCopyAnim ()
 
CoreExport int HasSubElements (int type=0)
 
virtual int GetSubFCurveExtents (int subNum, ParamDimensionBase *dim, float &min, float &max, DWORD flags)
 The values max and min should be initialized before calling this function. More...
 
virtual ParamDimensionGetParamDimension (int i)
 
virtual BOOL SelectSubAnim (int subNum)
 
virtual BOOL BypassTreeView ()
 
virtual BOOL BypassTrackBar ()
 
virtual BOOL BypassPropertyLevel ()
 
virtual BOOL InvisibleProperty ()
 
virtual int NumKeys ()
 
virtual TimeValue GetKeyTime (int index)
 
virtual int GetKeyIndex (TimeValue t)
 
virtual BOOL GetNextKeyTime (TimeValue t, DWORD flags, TimeValue &nt)
 
virtual void CopyKeysFromTime (TimeValue src, TimeValue dst, DWORD flags)
 
virtual void DeleteKeyAtTime (TimeValue t)
 
virtual BOOL IsKeyAtTime (TimeValue t, DWORD flags)
 
virtual int GetKeyTimes (Tab< TimeValue > &times, Interval range, DWORD flags)
 
virtual int GetKeySelState (BitArray &sel, Interval range, DWORD flags)
 
CoreExport void OpenTreeEntry (int type, DWORD tv)
 
CoreExport void CloseTreeEntry (int type, DWORD tv)
 
CoreExport int IsTreeEntryOpen (int type, DWORD tv)
 
CoreExport BOOL GetSelInTrackView (DWORD tv)
 
CoreExport void SetSelInTrackView (DWORD tv, BOOL sel)
 
CoreExport BOOL InTrackViewSelSet (int which)
 
CoreExport void SetTrackViewSelSet (int which, BOOL inOut)
 
virtual BOOL AssignController (Animatable *control, int subAnim)
 
virtual BOOL CanAssignController (int subAnim)
 Return true if we can reassign the subanim specified. More...
 
virtual BOOL CanMakeUnique ()
 
CoreExport int EnumAnimTree (AnimEnum *animEnum, Animatable *client, int subNum)
 
virtual int RenderBegin (TimeValue t, ULONG flags=0)
 
virtual int RenderEnd (TimeValue t)
 
virtual CoreExport Interval GetTimeRange (DWORD flags)
 
virtual void EditTimeRange (Interval range, DWORD flags)
 
virtual void DeleteTime (Interval iv, DWORD flags)
 
virtual void ReverseTime (Interval iv, DWORD flags)
 
virtual void ScaleTime (Interval iv, float s)
 
virtual void InsertTime (TimeValue ins, TimeValue amount)
 
virtual BOOL SupportTimeOperations ()
 
virtual CoreExport void MapKeys (TimeMap *map, DWORD flags)
 
virtual void DeleteKeys (DWORD flags)
 
virtual void DeleteKeyByIndex (int index)
 
virtual void SelectKeys (TrackHitTab &sel, DWORD flags)
 
virtual void SelectSubKeys (int subNum, TrackHitTab &sel, DWORD flags)
 
virtual void SelectSubCurve (int subNum, BOOL sel)
 
virtual void SelectKeyByIndex (int i, BOOL sel)
 
virtual BOOL IsKeySelected (int i)
 
virtual void FlagKey (TrackHitRecord hit)
 
virtual int GetFlagKeyIndex ()
 
virtual int NumSelKeys ()
 
virtual void CloneSelectedKeys (BOOL offset=FALSE)
 
virtual void AddNewKey (TimeValue t, DWORD flags)
 
virtual void MoveKeys (ParamDimensionBase *dim, float delta, DWORD flags)
 
virtual void ScaleKeyValues (ParamDimensionBase *dim, float origin, float scale, DWORD flags)
 
virtual void SelectCurve (BOOL sel)
 
virtual BOOL IsCurveSelected ()
 Returns TRUE if the function curve is selected; otherwise returns FALSE. More...
 
virtual BOOL IsSubCurveSelected (int subNum)
 Returns the selected state of the sub-curve whose index is passed. More...
 
virtual int GetSelKeyCoords (TimeValue &t, float &val, DWORD flags)
 
virtual void SetSelKeyCoords (TimeValue t, float val, DWORD flags)
 
virtual int SetSelKeyCoordsExpr (ParamDimension *dim, const MCHAR *timeExpr, const MCHAR *valExpr, DWORD flags)
 
virtual void AdjustTangents (TrackHitRecord hit, ParamDimensionBase *dim, Rect &rcGraph, float tzoom, int tscroll, float vzoom, int vscroll, int dx, int dy, DWORD flags)
 
virtual void AdjustTangents (TrackHitRecord hit, ParamDimensionBase *dim, float angle, float length, DWORD flags)
 
virtual CoreExport BOOL IsAnimated ()
 
virtual BOOL CanCopyTrack (Interval iv, DWORD flags)
 
virtual BOOL CanPasteTrack (TrackClipObject *cobj, Interval iv, DWORD flags)
 
virtual TrackClipObjectCopyTrack (Interval iv, DWORD flags)
 
virtual void PasteTrack (TrackClipObject *cobj, Interval iv, DWORD flags)
 
virtual BOOL CanCopySubTrack (int subNum, Interval iv, DWORD flags)
 
virtual BOOL CanPasteSubTrack (int subNum, TrackClipObject *cobj, Interval iv, DWORD flags)
 
virtual TrackClipObjectCopySubTrack (int subNum, Interval iv, DWORD flags)
 
virtual void PasteSubTrack (int subNum, TrackClipObject *cobj, Interval iv, DWORD flags)
 
virtual int GetTrackVSpace (int lineHeight)
 
virtual int HitTestTrack (TrackHitTab &hits, Rect &rcHit, Rect &rcTrack, float zoom, int scroll, DWORD flags)
 
virtual int PaintTrack (ParamDimensionBase *dim, HDC hdc, Rect &rcTrack, Rect &rcPaint, float zoom, int scroll, DWORD flags)
 
virtual int PaintSubTrack (int subNum, ParamDimensionBase *dim, HDC hdc, Rect &rcTrack, Rect &rcPaint, float zoom, int scroll, DWORD flags)
 
virtual int PaintFCurves (ParamDimensionBase *dim, HDC hdc, Rect &rcGraph, Rect &rcPaint, float tzoom, int tscroll, float vzoom, int vscroll, DWORD flags)
 
virtual int HitTestFCurves (ParamDimensionBase *dim, TrackHitTab &hits, Rect &rcHit, Rect &rcGraph, float tzoom, int tscroll, float vzoom, int vscroll, DWORD flags)
 
virtual int PaintSubFCurves (int subNum, ParamDimensionBase *dim, HDC hdc, Rect &rcGraph, Rect &rcPaint, float tzoom, int tscroll, float vzoom, int vscroll, DWORD flags)
 
virtual int HitTestSubFCurves (int subNum, ParamDimensionBase *dim, TrackHitTab &hits, Rect &rcHit, Rect &rcGraph, float tzoom, int tscroll, float vzoom, int vscroll, DWORD flags)
 
virtual void EditTrackParams (TimeValue t, ParamDimensionBase *dim, const MCHAR *pname, HWND hParent, IObjParam *ip, DWORD flags)
 
virtual int TrackParamsType ()
 
virtual int GetFCurveExtents (ParamDimensionBase *dim, float &min, float &max, DWORD flags)
 This method is called to calculate the largest and smallest values of the anim. More...
 
CoreExport void AddNoteTrack (NoteTrack *note)
 
CoreExport void DeleteNoteTrack (NoteTrack *note, BOOL delNote=TRUE)
 
CoreExport BOOL HasNoteTracks ()
 
CoreExport int NumNoteTracks ()
 
CoreExport NoteTrackGetNoteTrack (int i)
 
virtual void FreeAllBitmaps ()
 
virtual void GetSystemNodes (INodeTab &nodes, SysNodeContext Context)
 
virtual BOOL IsSubClassOf (Class_ID classID)
 returns true if the animatable has sub-classed off the given class More...
 
virtual CoreExport void MouseCycleCompleted (TimeValue t)
 
virtual CoreExport void MouseCycleStarted (TimeValue t)
 
virtual int NumParamBlocks ()
 
virtual IParamBlock2GetParamBlock (int i)
 
virtual IParamBlock2GetParamBlockByID (short id)
 
CoreExport bool SvSaveData (ISave *isave, USHORT id)
 
CoreExport bool SvLoadData (ILoad *iLoad)
 
CoreExport DWORD SvGetRefIndex ()
 
CoreExport void SvSetRefIndex (DWORD i)
 
CoreExport bool SvDeleteRefIndex ()
 
CoreExport SvGraphNodeReference SvStdTraverseAnimGraph (IGraphObjectManager *gom, Animatable *owner, int id, DWORD flags)
 
virtual CoreExport bool SvCanInitiateLink (IGraphObjectManager *gom, IGraphNode *gNode)
 
virtual CoreExport bool SvCanConcludeLink (IGraphObjectManager *gom, IGraphNode *gNode, IGraphNode *gNodeChild)
 
virtual CoreExport bool SvCanSetName (IGraphObjectManager *gom, IGraphNode *gNode)
 
virtual CoreExport bool SvSetName (IGraphObjectManager *gom, IGraphNode *gNode, const MSTR &name)
 
virtual CoreExport bool SvCanRemoveThis (IGraphObjectManager *gom, IGraphNode *gNode)
 
virtual CoreExport bool SvRemoveThis (IGraphObjectManager *gom, IGraphNode *gNode)
 Called when the user deletes this object in the schematic view... More...
 
virtual CoreExport bool SvIsHighlighted (IGraphObjectManager *gom, IGraphNode *gNode)
 
virtual CoreExport COLORREF SvGetSwatchColor (IGraphObjectManager *gom, IGraphNode *gNode)
 
virtual CoreExport bool SvIsInactive (IGraphObjectManager *gom, IGraphNode *gNode)
 
virtual CoreExport bool SvLinkChild (IGraphObjectManager *gom, IGraphNode *gNodeThis, IGraphNode *gNodeChild)
 
virtual CoreExport bool SvEditProperties (IGraphObjectManager *gom, IGraphNode *gNode)
 
virtual CoreExport MSTR SvGetTip (IGraphObjectManager *gom, IGraphNode *gNode)
 
virtual CoreExport MSTR SvGetRefTip (IGraphObjectManager *gom, IGraphNode *gNode, IGraphNode *gNodeMaker)
 
virtual CoreExport bool SvCanDetach (IGraphObjectManager *gom, IGraphNode *gNode)
 
virtual CoreExport bool SvDetach (IGraphObjectManager *gom, IGraphNode *gNode)
 
virtual CoreExport MSTR SvGetRelTip (IGraphObjectManager *gom, IGraphNode *gNodeTarget, int id, IGraphNode *gNodeMaker)
 Returns a string to be displayed in the tip window in the schematic view for a relationship from "gNodeMaker" to "gNodeTarget"... More...
 
virtual CoreExport bool SvCanDetachRel (IGraphObjectManager *gom, IGraphNode *gNodeTarget, int id, IGraphNode *gNodeMaker)
 Returns true if this object can respond to the SvDetachRel(...) method... More...
 
virtual CoreExport bool SvDetachRel (IGraphObjectManager *gom, IGraphNode *gNodeTarget, int id, IGraphNode *gNodeMaker)
 Detach this relationship. More...
 
virtual CoreExport bool SvHandleRelDoubleClick (IGraphObjectManager *gom, IGraphNode *gNodeTarget, int id, IGraphNode *gNodeMaker)
 Called when this relationship is double-clicked in the schematic view... More...
 
CoreExport ICustAttribContainerGetCustAttribContainer ()
 This method returns a pointer to the custom attributes container interface class. More...
 
CoreExport void AllocCustAttribContainer ()
 This method allocates space for a custom attributes container. More...
 
CoreExport void DeleteCustAttribContainer ()
 This method deletes space used by a custom attributes container. More...
 
void SetAFlag (DWORD mask)
 
void ClearAFlag (DWORD mask)
 Clears one or more bits in the Animatable flags. More...
 
bool TestAFlag (DWORD mask) const
 Tests one or more bits in the Animatable flags. More...
 
void SetAFlagEx (DWORD mask)
 Sets one or more bits in the Animatable extended flags. More...
 
void ClearAFlagEx (DWORD mask)
 Clears one or more bits in the Animatable extended flags. More...
 
bool TestAFlagEx (DWORD mask) const
 Tests one or more bits in the Animatable extended flags. More...
 
CoreExport bool TestFlagBit (int index)
 Tests the specified flag bit. More...
 
CoreExport void SetFlagBit (int index, bool newValue=true)
 Sets the specified flag bit. More...
 
CoreExport void ClearFlagBit (int index)
 Clears the specified flag bit. More...
 
- Public Member Functions inherited from InterfaceServer
virtual UtilExport ~InterfaceServer ()
 Destructor. More...
 

Static Public Member Functions

static AreaLightCustAttribGetAreaLightCustAttrib (CustAttrib *attrib)
 Returns the AreaLightCustAttrib interface for a custom attribute. More...
 
- Static Public Member Functions inherited from Animatable
static CoreExport BOOL IsDeleted (Animatable *anim)
 Debug method to determine whether an object has been deleted. More...
 
static CoreExport AnimHandle GetHandleByAnim (Animatable *anim)
 Get the unique handle for an Animatable object. More...
 
static CoreExport AnimatableGetAnimByHandle (AnimHandle handle)
 Get an Animatable object from its unique handle. More...
 
static CoreExport void EnumerateAllAnimatables (EnumAnimList &enumProcObject)
 Enumerator to enumerate across all animatables. More...
 
static CoreExport bool RegisterAppDataLoadCallback (const Class_ID &cid, SClass_ID sid, APPDATALOADPROC proc)
 Registers a callback proc that is called when an AppDataChunk is read from a scene file. More...
 
static CoreExport bool UnRegisterAppDataLoadCallback (const Class_ID &cid, SClass_ID sid, APPDATALOADPROC proc)
 Unregisters a callback proc that is called when an AppDataChunk is read from a scene file. More...
 
static CoreExport bool RegisterAppDataLoadCallback (DWORD sbid, APPDATALOADPROC proc)
 Registers a callback proc that is called when an AppDataChunk is read from a scene file. More...
 
static CoreExport bool UnRegisterAppDataLoadCallback (DWORD sbid, APPDATALOADPROC proc)
 Unregisters a callback proc that is called when an AppDataChunk is read from a scene file. More...
 
static CoreExport int RequestFlagBit ()
 Requests an unique flag bit index. More...
 
static CoreExport void ReleaseFlagBit (int index)
 Releases the flag bit index. More...
 
static CoreExport void ClearFlagBitInAllAnimatables (int index)
 Clears the specified flag bit in all Animatables. More...
 
- Static Public Member Functions inherited from MaxHeapOperators
static UtilExport voidoperator new (size_t size)
 Standard new operator used to allocate objects If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new (size_t size, const std::nothrow_t &e)
 Standard new operator used to allocate objects if there is insufficient memory, NULL will be returned. More...
 
static UtilExport voidoperator new (size_t size, const char *filename, int line)
 New operator used to allocate objects that takes the filename and line number where the new was called If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new (size_t size, int block_type, const char *filename, int line)
 New operator used to allocate objects that takes the type of memory, filename and line number where the new was called If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new (size_t size, const std::nothrow_t &e, const char *filename, int line)
 New operator used to allocate objects that takes the filename and line number where the new was called If there is insufficient memory, NULL will be returned. More...
 
static UtilExport voidoperator new (size_t size, unsigned long flags)
 New operator used to allocate objects that takes extra flags to specify special operations If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new (size_t size, const std::nothrow_t &e, unsigned long flags)
 New operator used to allocate objects that takes extra flags to specify special operations If there is insufficient memory, NULL will be returned. More...
 
static UtilExport voidoperator new[] (size_t size)
 New operator used to allocate arrays of objects If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new[] (size_t size, const std::nothrow_t &e)
 New operator used to allocate arrays of objects If there is insufficient memory, NULL will be returned. More...
 
static UtilExport voidoperator new[] (size_t size, const char *filename, int line)
 New operator used to allocate arrays of objects If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new[] (size_t size, int block_type, const char *filename, int line)
 New operator used to allocate arrays of objects. More...
 
static UtilExport voidoperator new[] (size_t size, const std::nothrow_t &e, const char *filename, int line)
 New operator used to allocate arrays of objects If there is insufficient memory, NULL will be returned. More...
 
static UtilExport voidoperator new[] (size_t size, unsigned long flags)
 New operator used to allocate arrays of objects If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new[] (size_t size, const std::nothrow_t &e, unsigned long flags)
 New operator used to allocate arrays of objects If there is insufficient memory, NULL will be returned. More...
 
static UtilExport void operator delete (void *ptr)
 Standard delete operator used to deallocate an object If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete (void *ptr, const std::nothrow_t &e)
 Standard delete operator used to deallocate an object If the pointer is invalid, nothing will happen. More...
 
static UtilExport void operator delete (void *ptr, const char *filename, int line)
 Delete operator used to deallocate an object that takes the filename and line number where the delete was called If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete (void *ptr, int block_type, const char *filename, int line)
 Delete operator used to deallocate an object that takes the type of memory, filename and line number where the delete was called If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete (void *ptr, const std::nothrow_t &e, const char *filename, int line)
 Delete operator used to deallocate an object that takes the filename and line number where the delete was called If the pointer is invalid, nothing will happen. More...
 
static UtilExport void operator delete (void *ptr, unsigned long flags)
 Delete operator used to deallocate an object that takes extra flags to specify special operations If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete (void *ptr, const std::nothrow_t &e, unsigned long flags)
 Delete operator used to deallocate an object that takes extra flags to specify special operations If the pointer is invalid, nothing will happen. More...
 
static UtilExport void operator delete[] (void *ptr)
 Standard delete operator used to deallocate an array of objects If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete[] (void *ptr, const std::nothrow_t &e)
 Standard delete operator used to deallocate an array of objects If the pointer is invalid, nothing will happen. More...
 
static UtilExport void operator delete[] (void *ptr, const char *filename, int line)
 Delete operator used to deallocate an array of objects that takes the filename and line number where the delete was called If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete[] (void *ptr, int block_type, const char *filename, int line)
 Delete operator used to deallocate an array of objects that takes the type of memory, filename and line number where the delete was called If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete[] (void *ptr, const std::nothrow_t &e, const char *filename, int line)
 Delete operator used to deallocate an array of objects that takes the filename and line number where the delete was called If the pointer is invalid, nothing will happen. More...
 
static UtilExport void operator delete[] (void *ptr, unsigned long flags)
 Delete operator used to deallocate an array of objects that takes extra flags to specify special operations If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete[] (void *ptr, const std::nothrow_t &e, unsigned long flags)
 Delete operator used to deallocate an array of objects that takes extra flags to specify special operations If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport voidoperator new (size_t size, void *placement_ptr)
 Placement new operator. More...
 
static UtilExport void operator delete (void *ptr, void *placement_ptr)
 Placement delete operator. More...
 

Additional Inherited Members

- Static Public Attributes inherited from Animatable
static const AnimHandle kInvalidAnimHandle = 0
 
- Protected Member Functions inherited from ReferenceTarget
virtual CoreExport int DoEnumDependentsImpl (DependentEnumProc *dep)
 Method to perform an enumeration on a ReferenceTarget. More...
 
virtual CoreExport ~ReferenceTarget ()=0
 Destructor. More...
 
- Protected Member Functions inherited from ReferenceMaker
virtual RefResult NotifyRefChanged (const Interval &changeInt, RefTargetHandle hTarget, PartID &partID, RefMessage message, BOOL propagate)=0
 Receives and responds to messages. More...
 
virtual CoreExport ~ReferenceMaker ()=0
 Destructor. More...
 
virtual CoreExport void SetReference (int i, RefTargetHandle rtarg)
 Stores a ReferenceTarget as its 'i-th' reference`. More...
 
void BlockEval ()
 
void UnblockEval ()
 
int Evaluating ()
 
CoreExport RefResult StdNotifyRefChanged (const Interval &changeInt, RefTargetHandle hTarget, PartID partID, RefMessage message, BOOL propagate, NotifyDependentsOption notifyDependentsOption)
 
- Protected Member Functions inherited from Animatable
virtual CoreExport ~Animatable ()=0
 Destructor. More...
 
- Protected Member Functions inherited from Noncopyable
 Noncopyable ()
 
 ~Noncopyable ()
 
- Protected Attributes inherited from BaseObject
MaxSDK::Graphics::RenderItemHandleArray mRenderItemHandles
 
- Protected Attributes inherited from Animatable
DWORD aflag
 
AnimPropertyList aprops
 

Member Enumeration Documentation

enum LightTypes

Types for the lights.

These values are used in SetType and returned by Type.

Enumerator
TYPE_BASE 
TARGET_POINT_TYPE 

Target point light type.

POINT_TYPE 

Free point light type.

TARGET_LINEAR_TYPE 

Target linear light type.

LINEAR_TYPE 

Free linear light type.

TARGET_AREA_TYPE 

Target area light type.

AREA_TYPE 

Free area light type.

TARGET_DISC_TYPE 

Target disc light type.

DISC_TYPE 

Free disc light type.

TARGET_SPHERE_TYPE 

Target sphere light type.

SPHERE_TYPE 

Free sphere light type.

TARGET_CYLINDER_TYPE 

Target cylinder light type.

CYLINDER_TYPE 

Free cylinder light type.

LAST_TYPE 

Last valid type.

87  {
88  TYPE_BASE = 532,
90  POINT_TYPE = TYPE_BASE + 1,
92  LINEAR_TYPE = TYPE_BASE + 3,
94  AREA_TYPE = TYPE_BASE + 5,
96  DISC_TYPE = TYPE_BASE + 7,
98  SPHERE_TYPE = TYPE_BASE + 9,
100  CYLINDER_TYPE = TYPE_BASE + 11,
101  LAST_TYPE = CYLINDER_TYPE
102  };
Free point light type.
Definition: lslights.h:90
Free area light type.
Definition: lslights.h:94
Target sphere light type.
Definition: lslights.h:97
Free disc light type.
Definition: lslights.h:96
Target linear light type.
Definition: lslights.h:91
Free sphere light type.
Definition: lslights.h:98
Target cylinder light type.
Definition: lslights.h:99
Target disc light type.
Definition: lslights.h:95
Definition: lslights.h:88
Free cylinder light type.
Definition: lslights.h:100
Last valid type.
Definition: lslights.h:101
Target point light type.
Definition: lslights.h:89
Target area light type.
Definition: lslights.h:93
Free linear light type.
Definition: lslights.h:92
enum DistTypes

Types for the distributions.

These values are used in SetDistribution and returned by GetDistribution.

Enumerator
ISOTROPIC_DIST 

Isotropic distribution type.

SPOTLIGHT_DIST 

Spolight distribution type.

DIFFUSE_DIST 

Diffuse distribution type.

WEB_DIST 

Web distribution type.

LAST_DIST 

Last valid distribution type.

106  {
107  ISOTROPIC_DIST = 0,
108  SPOTLIGHT_DIST = 1,
109  DIFFUSE_DIST = 2,
110  WEB_DIST = 3,
112  };
Diffuse distribution type.
Definition: lslights.h:109
Last valid distribution type.
Definition: lslights.h:111
Web distribution type.
Definition: lslights.h:110
Isotropic distribution type.
Definition: lslights.h:107
Spolight distribution type.
Definition: lslights.h:108

IDs for the references kept by this object.

Enumerator
REF_PARAMS 

Reference to the common parameters.

REF_SHADOW_PARAMS 

Reference to the shadow parameters.

REF_SPOT_PARAMS 

Reference to the spotlight distribution parameters.

REF_WEB_PARAMS 

Reference to the web distribution parameters.

REF_SHADOWGEN 

Reference to the shadow generator.

REF_EXT_PARAMS 

Reference to the extended parameters.

LAST_REF 

The last reference ID.

115  {
117  REF_PARAMS = 0,
119  REF_SHADOW_PARAMS = 1,
121  REF_SPOT_PARAMS = 2,
123  REF_WEB_PARAMS = 3,
125  REF_SHADOWGEN = 4,
127  REF_EXT_PARAMS = 5,
130  };
Reference to the spotlight distribution parameters.
Definition: lslights.h:121
Reference to the web distribution parameters.
Definition: lslights.h:123
Reference to the shadow parameters.
Definition: lslights.h:119
Reference to the common parameters.
Definition: lslights.h:117
Reference to the extended parameters.
Definition: lslights.h:127
Reference to the shadow generator.
Definition: lslights.h:125
The last reference ID.
Definition: lslights.h:129

IDs for the parameters blocks for Lightscape lights.

Enumerator
PB_GENERAL 

Parameter block ID for the common parameters.

PB_SHADOW 

Parameter block ID for the shadow parameters.

PB_SPOT 

Parameter block ID for the spotlight distribution parameters.

PB_WEB 

Parameter block ID for the web distribution parameters.

PB_EXT 

Parameter block ID for the extended parameters.

LAST_PB 

Last parameter block ID.

133  {
135  PB_GENERAL = 0,
137  PB_SHADOW = 1,
139  PB_SPOT = 2,
141  PB_WEB = 3,
143  PB_EXT = 4,
145  LAST_PB = PB_EXT
146  };
Parameter block ID for the web distribution parameters.
Definition: lslights.h:141
Last parameter block ID.
Definition: lslights.h:145
Parameter block ID for the extended parameters.
Definition: lslights.h:143
Parameter block ID for the shadow parameters.
Definition: lslights.h:137
Parameter block ID for the common parameters.
Definition: lslights.h:135
Parameter block ID for the spotlight distribution parameters.
Definition: lslights.h:139

This enum is used to hold the General parameter IDs.

Enumerator
PB_DIST_TYPE 

The light distribution type.

PB_USE_LIGHT 

Use the light.

PB_CAST_SHADOWS 

Cast shadows.

PB_LIGHT_COLOR 

Light Color.

PB_FILTER_COLOR 

Filter Color.

PB_INTENSITY 

Intensity.

PB_KELVIN 

Light color in degrees kelvin.

PB_USE_KELVIN 

Flag to use Kelvin or RGB.

PB_INTENSITY_AT 

Intensity At.

PB_INTENSITY_TYPE 

Intensity Type.

PB_FLUX 

Flux.

PB_ORIGINAL_INTENSITY 

Original Intensity.

PB_ORIGINAL_FLUX 

Original Flux.

PB_USE_DIMMER 

use the dimmer slider/spinner

PB_DIMMER 

Dimmer/Multiplier.

PB_COLORSHIFT_DIMMING 

Lamp color shift on dimming.

PB_USE_FARATTENUATION 

use the far attenuation

PB_SHOW_FARATTENUATION_GIZMO 

display the far attenuation when unselected

PB_START_FARATTENUATION 

start far attenuation value

PB_END_FARATTENUATION 

end far attenuation value

LAST_GEN_PB 

Last id in list.

149  {
151  PB_DIST_TYPE = 1,
153  PB_USE_LIGHT = 2,
155  PB_CAST_SHADOWS = 3,
157  PB_LIGHT_COLOR = 4,
159  PB_FILTER_COLOR = 5,
161  PB_INTENSITY = 6,
163  PB_KELVIN = 8,
165  PB_USE_KELVIN = 10,
167  PB_INTENSITY_AT = 13,
169  PB_INTENSITY_TYPE = 14,
171  PB_FLUX = 15,
175  PB_ORIGINAL_FLUX = 17,
177  PB_USE_DIMMER = 18,
179  PB_DIMMER = 19,
192  };
Dimmer/Multiplier.
Definition: lslights.h:179
start far attenuation value
Definition: lslights.h:187
end far attenuation value
Definition: lslights.h:189
use the dimmer slider/spinner
Definition: lslights.h:177
Last id in list.
Definition: lslights.h:191
Original Flux.
Definition: lslights.h:175
use the far attenuation
Definition: lslights.h:183
Flux.
Definition: lslights.h:171
Use the light.
Definition: lslights.h:153
The light distribution type.
Definition: lslights.h:151
Intensity Type.
Definition: lslights.h:169
Light color in degrees kelvin.
Definition: lslights.h:163
Light Color.
Definition: lslights.h:157
Intensity At.
Definition: lslights.h:167
display the far attenuation when unselected
Definition: lslights.h:185
Filter Color.
Definition: lslights.h:159
Original Intensity.
Definition: lslights.h:173
Intensity.
Definition: lslights.h:161
Cast shadows.
Definition: lslights.h:155
Lamp color shift on dimming.
Definition: lslights.h:181
Flag to use Kelvin or RGB.
Definition: lslights.h:165

This enum is used to hold the Extended parameter IDs.

Enumerator
PB_CONTRAST 

Contrast between diffuse and ambient.

PB_DIFFSOFT 

Softening between diffuse and ambient.

PB_PROJECTOR 

Use projector map.

PB_PROJECTOR_MAP 

The projector map.

PB_AFFECT_DIFFUSE 

Affect diffuse channel.

PB_AFFECT_SPECULAR 

Affect specular channel.

PB_AMBIENT_ONLY 

Ambient only.

PB_TDIST 

Target distance.

PB_LINELIGHT_LENGTH 

Line Light length.

PB_AREALIGHT_LENGTH 

Area Light length (Rectangle)

PB_AREALIGHT_WIDTH 

Area light height (Rectangle)

PB_DISCLIGHT_RADIUS 

Disc light radius.

PB_SPHERELIGHT_RADIUS_OLD 

Sphere light radius.

PB_SPHERELIGHT_RADIUS 
PB_CYLINDERLIGHT_RADIUS_OLD 

Cylinder light radius.

PB_CYLINDERLIGHT_RADIUS 
PB_CYLINDERLIGHT_LENGTH_OLD 

Cylinder light length.

PB_CYLINDERLIGHT_LENGTH 
LAST_EXT_PB 

Last id in list.

195  {
197  PB_CONTRAST = 0,
199  PB_DIFFSOFT = 1,
201  PB_PROJECTOR = 2,
203  PB_PROJECTOR_MAP = 3,
205  PB_AFFECT_DIFFUSE = 4,
207  PB_AFFECT_SPECULAR = 5,
209  PB_AMBIENT_ONLY = 6,
211  PB_TDIST = 7,
212 // PB_LENGTH = 8,
213 // PB_WIDTH = 9,
214 // PB_GARBAGE = 10,
215 // WARNING: DO NOT REDEFINE ABOVE IDs. THIS MAY CAUSE A CRASH WHEN LOADING OLD
216 // FILES
217 // Change made August 27, 2001 David Cunningham
218 // for B24 of VIZ R4
220  PB_LINELIGHT_LENGTH = 11,
222  PB_AREALIGHT_LENGTH = 11,
224  PB_AREALIGHT_WIDTH = 12,
226  PB_DISCLIGHT_RADIUS = 13,
228  PB_SPHERELIGHT_RADIUS_OLD = 14, // obsolete, use PB_SPHERELIGHT_RADIUS instead
231  PB_CYLINDERLIGHT_RADIUS_OLD = 15, // obsolete, use PB_CYLINDERLIGHT_RADIUS instead
234  PB_CYLINDERLIGHT_LENGTH_OLD = 16, // obsolete, use PB_CYLINDERLIGHT_LENGTH instead
237  LAST_EXT_PB = PB_CYLINDERLIGHT_LENGTH_OLD
238  };
Sphere light radius.
Definition: lslights.h:228
Ambient only.
Definition: lslights.h:209
Contrast between diffuse and ambient.
Definition: lslights.h:197
Affect specular channel.
Definition: lslights.h:207
Target distance.
Definition: lslights.h:211
Cylinder light radius.
Definition: lslights.h:231
Definition: lslights.h:229
Affect diffuse channel.
Definition: lslights.h:205
Disc light radius.
Definition: lslights.h:226
The projector map.
Definition: lslights.h:203
Use projector map.
Definition: lslights.h:201
Area Light length (Rectangle)
Definition: lslights.h:222
Cylinder light length.
Definition: lslights.h:234
Line Light length.
Definition: lslights.h:220
Area light height (Rectangle)
Definition: lslights.h:224
Last id in list.
Definition: lslights.h:237
Softening between diffuse and ambient.
Definition: lslights.h:199
enum ShadowIDs

This enum is used to hold the Shadow parameter IDs.

Enumerator
PB_ATMOS_SHAD 

Atmospheric shadows.

PB_ATMOS_OPACITY 

Atmosphere opacity.

PB_ATMOS_COLAMT 

Atmosphere color influence.

PB_SHADMULT 

Shadow Density.

PB_SHAD_COLMAP 

Shadow Color Map Enabled.

PB_SHADCOLOR 

Shadow color.

PB_LIGHT_AFFECTS_SHADOW 

Light affects shadow color.

PB_USE_GLOBAL_PARAMS 

Use global shadow generator.

PB_SHAD_PROJ_MAP 

Shadow Projection map.

LAST_SHAD_PB 

Last shadow id.

241  {
243  PB_ATMOS_SHAD = 0,
245  PB_ATMOS_OPACITY = 1,
247  PB_ATMOS_COLAMT = 2,
249  PB_SHADMULT = 3,
251  PB_SHAD_COLMAP = 4,
253  PB_SHADCOLOR = 5,
259  PB_SHAD_PROJ_MAP = 8,
262  };
Shadow Projection map.
Definition: lslights.h:259
Use global shadow generator.
Definition: lslights.h:257
Atmosphere color influence.
Definition: lslights.h:247
Shadow color.
Definition: lslights.h:253
Light affects shadow color.
Definition: lslights.h:255
Last shadow id.
Definition: lslights.h:261
Shadow Color Map Enabled.
Definition: lslights.h:251
Atmosphere opacity.
Definition: lslights.h:245
Atmospheric shadows.
Definition: lslights.h:243
Shadow Density.
Definition: lslights.h:249

This enum is used to hold the Spotlight parameter IDs.

Enumerator
PB_BEAM_ANGLE 

Beam angle.

PB_FIELD_ANGLE 

Field angle.

PB_CONE_DISPLAY 

Display the spot light cone.

LAST_SPOT_PB 

Last spotlight distribution id.

265  {
267  PB_BEAM_ANGLE = 0,
269  PB_FIELD_ANGLE = 1,
271  PB_CONE_DISPLAY = 2,
274  };
Last spotlight distribution id.
Definition: lslights.h:273
Field angle.
Definition: lslights.h:269
Beam angle.
Definition: lslights.h:267
Display the spot light cone.
Definition: lslights.h:271

This enum is used to hold the Photometric Web parameter IDs.

Enumerator
PB_WEB_FILE_NAME 

The name of the webfile.

PB_WEB_ROTATE_X 

Rotate X.

PB_WEB_ROTATE_Y 

Rotate Y.

PB_WEB_ROTATE_Z 

Rotate Z.

LAST_WEB_PB 

Last web distribution id.

277  {
279  PB_WEB_FILE_NAME = 0,
281  PB_WEB_ROTATE_X = 1,
283  PB_WEB_ROTATE_Y = 2,
285  PB_WEB_ROTATE_Z = 3,
288  };
Rotate Z.
Definition: lslights.h:285
Rotate Y.
Definition: lslights.h:283
Rotate X.
Definition: lslights.h:281
The name of the webfile.
Definition: lslights.h:279
Last web distribution id.
Definition: lslights.h:287

This enum is used to hold the intensity types.

These are valid values for the Intensity Type parameter.

Enumerator
LUMENS 

Intensity is in lumens.

CANDELAS 

Intensity is in candelas.

LUX_AT 

Intensity is in Lux at distance.

292  {
294  LUMENS = 0,
296  CANDELAS = 1,
298  LUX_AT =2,
299  };
Intensity is in candelas.
Definition: lslights.h:296
Intensity is in Lux at distance.
Definition: lslights.h:298
Intensity is in lumens.
Definition: lslights.h:294

Shadow types for MAX.

Enumerator
NO_SHADOW_GENERATOR 

No Shadow Generator.

BITMAP_SHADOWS 

Bitmap Shadows.

RAYTRACE_SHADOWS 

RayTraceShadows.

OTHER_SHADOWS 

Other shadow generator.

302  {
304  NO_SHADOW_GENERATOR = -1,
306  BITMAP_SHADOWS = 0,
308  RAYTRACE_SHADOWS = 1,
310  OTHER_SHADOWS = 0xffff
311  };
RayTraceShadows.
Definition: lslights.h:308
Other shadow generator.
Definition: lslights.h:310
Bitmap Shadows.
Definition: lslights.h:306
No Shadow Generator.
Definition: lslights.h:304

Preset light colors.

Enumerator
HALOGEN_WARM 

Halogen (Warm)

HALOGEN_BASIC 

Halogen.

HALOGEN_COOL 

Halogen (Cool)

INCANDESCENT_FILAMENT_LAMP 

Incandescent filament lamp.

FLUORESCENT_WARM_WHITE 

Fluorescent (Warm White)

FLUORESCENT_COOL_WHITE 

Fluorescent (Cool White)

FLUORESCENT_WHITE 

Fluorescent (White)

FLUORESCENT_DAYLIGHT 

Fluorescent (Daylight)

FLUORESCENT_LITE_WHITE 

Fluorescent (Lite White)

HID_CERAMIC_METAL_HALIDE_WARM 

HID Ceramic Metal Halide (Warm)

HID_CERAMIC_METAL_HALIDE_COOL 

HID Ceramic Metal Halide (Cool)

HID_QUARTZ_METAL_HALIDE_WARM 

HID Quartz Metal Halide (Warm)

HID_QUARTZ_METAL_HALIDE 

HID Quartz Metal Halide.

HID_QUARTZ_METAL_HALIDE_COOL 

HID Quartz Metal Halide (Cool)

HID_MERCURY 

HID Mercury.

HID_PHOSPHOR_MERCURY 

HID Phosphor Mercury.

HID_XENON 

HID Xenon.

HID_HIGH_PRESSURE_SODIUM 

HID High Pressure Sodium.

HID_LOW_PRESSURE_SODIUM 

HID Low Pressure Sodium.

D65_ILLUMINANT_REFERENCE_WHITE 

D65 Illuminant (Reference White)

D50_ILLUMINANT_REFERENCE_WHITE 

D50 Illuminant (Reference White)

315  {
317  HALOGEN_WARM = 0,
321  HALOGEN_COOL,
345  HID_MERCURY,
349  HID_XENON,
358  };
Halogen.
Definition: lslights.h:319
HID Ceramic Metal Halide (Warm)
Definition: lslights.h:335
HID Phosphor Mercury.
Definition: lslights.h:347
HID Ceramic Metal Halide (Cool)
Definition: lslights.h:337
Fluorescent (Lite White)
Definition: lslights.h:333
Incandescent filament lamp.
Definition: lslights.h:323
Fluorescent (White)
Definition: lslights.h:329
HID Xenon.
Definition: lslights.h:349
D50 Illuminant (Reference White)
Definition: lslights.h:357
Fluorescent (Daylight)
Definition: lslights.h:331
Fluorescent (Warm White)
Definition: lslights.h:325
Fluorescent (Cool White)
Definition: lslights.h:327
Halogen (Cool)
Definition: lslights.h:321
HID Quartz Metal Halide (Warm)
Definition: lslights.h:339
HID Mercury.
Definition: lslights.h:345
HID Quartz Metal Halide.
Definition: lslights.h:341
Halogen (Warm)
Definition: lslights.h:317
HID Quartz Metal Halide (Cool)
Definition: lslights.h:343
D65 Illuminant (Reference White)
Definition: lslights.h:355
HID High Pressure Sodium.
Definition: lslights.h:351
HID Low Pressure Sodium.
Definition: lslights.h:353

Member Function Documentation

LightscapeLight::AreaLightCustAttrib * GetAreaLightCustAttrib ( CustAttrib attrib)
inlinestatic

Returns the AreaLightCustAttrib interface for a custom attribute.

Precondition
attrib is non-null
Parameters
[in]attrib- The custom attribute whose AreaLightCustAttrib interface is desired.
Returns
The AreaLightCustAttrib interface to attrib, or NULL if attrib doesn't support the interface.

Returns NULL if the interface is not present.

954 {
955  return attrib == NULL ? NULL
956  : static_cast<LightscapeLight::AreaLightCustAttrib*>(
958 }
#define NULL
Definition: autoptr.h:18
virtual CoreExport void * GetInterface(ULONG id)
Inherited from Animatable.
#define LS_AREALIGHTCUSTATTRIB_INTERFACE_ID
The Interface ID for the Area Sampling custom attribute interface.
Definition: lslights.h:60
Area Lights sampling custom attribute.
Definition: lslights.h:888
virtual void SetType ( int  type)
pure virtual

Sets the light type.

Postcondition
The light type is changed. When setting the light type to an invalid value, nothing is changed, and no error is returned.
Parameters
[in]type- The type id the light is to be changed to. Must be a value in the LightTypes enum
See also
LightscapeLight::LightTypes

Reimplemented from GenLight.

virtual void SetType ( const MCHAR name)
pure virtual

Sets the light type.

Parameters
[in]name- The type name the light is to be changed to. May not be NULL. The valid strings are:
  • "Target_Point"
  • "Free_Point"
  • "Target_Linear"
  • "Free_Linear"
  • "Target_Area"
  • "Free_Area"
  • "Target_Disc"
  • "Free_Disc"
  • "Target_Sphere"
  • "Free_Sphere"
  • "Target_Cylinder"
  • "Free_Cylinder"
Postcondition
The light type is changed or returned. When setting the light type to an invalid value, nothing is changed, and no error is returned.
virtual int Type ( )
pure virtual

Returns the current light type.

Returns
The current light type, as a value from the LightTypes enum
See also
LightscapeLight::LightTypes

Implements GenLight.

virtual const MCHAR* TypeName ( )
pure virtual

Returns the light type.

Returns
The current light type, as a string
virtual void SetDistribution ( DistTypes  dist)
pure virtual

Sets the distribution of the light.

Postcondition
The distribution is changed
Parameters
[in]dist- The ID distribution that the light is to use. Must be a value from DistTypes.
virtual DistTypes GetDistribution ( ) const
pure virtual

Returns the distribution of the light.

Returns
The distribution ID of the current distribution.
virtual void SetIntensityAt ( float  f)
pure virtual

Sets the distance at which the light intensity is measured.

This distance is used then the light intensity type is LUX_AT.

Postcondition
The distance is set
Parameters
[in]f- The distance at which the light intensity is measured in system units. Must be greater than 0.
virtual float GetIntensityAt ( )
pure virtual

Returns the distance at which the light intensity is measured.

This distance is used then the light intensity type is LUX_AT.

Returns
The distance is returned.
virtual void SetIntensityType ( IntensityType  t)
pure virtual

Sets the intensity type of the light.

Postcondition
The intensity type is set
Parameters
[in]t- The new intensity type of the light. Must be a value from IntensityType.
See also
LightscapeLight::IntensityType.
virtual IntensityType GetIntensityType ( )
pure virtual

Returns the intensity type of the light.

See also
LightscapeLight::IntensityType.
virtual void SetFlux ( TimeValue  t,
float  flux 
)
pure virtual

Sets the flux of the light.

The flux of a light is a measure of how much light the light produces. It is related to the intensity by a constant factor that depends on the distribution of the light. For example the flux of an isotropic light is always 4PI times the intensity (4PI is the area of a unit sphere).

Postcondition
The flux of the light is set, which changes the intensity.
Parameters
[in]t- The time at which the flux is set.
[in]flux- The flux to be set in lumens. Must be greater than or equal to 0.
virtual float GetFlux ( TimeValue  t,
Interval valid = Interval(0, 0) 
) const
pure virtual

Returns the flux of the light.

Parameters
[in]t- The time at which the flux is retrieved.
[in,out]valid- The validity of the flux is intersected with the validity in this argument.
Returns
The flux is returned in lumens.
See also
For an explanation for flux, see LightscapeLight::SetFlux()
virtual void SetRGBFilter ( TimeValue  t,
Point3 rgb 
)
pure virtual

Sets the color of the light filter.

Lightscape lights use separate values for the light color and filter color. You should imagine that the light color is the color of the light bulb, and the filter color is the color of the surrounding piece of glass or plastic. The effective color of the light is the product of the filter and light colors. The color can be set in either RGB or HSV format.

Postcondition
The filter color is changed or returned.
Parameters
[in]t- The time at which the filter color is set.
[in]rgb- The RGB color to be set
virtual Point3 GetRGBFilter ( TimeValue  t,
Interval valid = Interval(0, 0) 
)
pure virtual

Returns the color of the light filter.

Parameters
[in]t- The time at which the filter color is retrieved.
[in,out]valid- The validity of the filter color is intersected with the validity in this argument.
Returns
The filter color is returned in either RGB format.
See also
For an explanation of the light filter, see LightscapeLight::SetRBGFilter()
virtual void SetHSVFilter ( TimeValue  t,
Point3 hsv 
)
pure virtual

Sets the color of the light filter.

Postcondition
The filter color is changed or returned.
Parameters
[in]t- The time at which the filter color is set.
[in]hsv- The HSV color to be set
See also
For an explanation of the light filter, see LightscapeLight::SetRBGFilter()
virtual Point3 GetHSVFilter ( TimeValue  t,
Interval valid = Interval(0, 0) 
)
pure virtual

Returns the color of the light filter.

Parameters
[in]t- The time at which the filter color is retrieved.
[in,out]valid- The validity of the filter color is intersected with the validity in this argument.
Returns
The filter color is returned in either HSV format.
See also
For an explanation of the light filter, see LightscapeLight::SetRBGFilter()
virtual ShadowType* ActiveShadowType ( )
pure virtual

Returns the plug-in shadow generator.

There are two shadow generators that can be used by a light. The local shadow generator that is referenced by the light and the global shadow generator that is in the scene. The LightObject methods GetUseGlobal() and SetUseGlobal() access the parameter that determines which shadow generator is actually used. GetShadowGenerator() always returns the local shadow generator, while other methods return and set the shadow generator based on the value of the use global parameter.

Returns
The shadow generator is returned.
virtual ShadowType* GetShadowGenerator ( )
pure virtual

Returns the plug-in shadow generator.

Returns
The local shadow generator. Always returns the local shadow generator, not the global generator.
See also
For an explanation of local and global shadow generators, see LightscapeLight::ActiveShadowType()

Reimplemented from GenLight.

virtual const MCHAR* GetShadowGeneratorName ( )
pure virtual

Returns the plug-in shadow generator name.

Returns
The local or global shadow generator name, depending on the value of the use global parameter.
See also
For an explanation of local and global shadow generators, see LightscapeLight::ActiveShadowType()
virtual void SetShadowGenerator ( ShadowType s)
pure virtual

Sets the plug-in shadow generator.

Postcondition
The shadow generator is set.
Parameters
[in]s- An instance of the shadow type to be set. The light establishes a reference to this object.
See also
For an explanation of local and global shadow generators, see LightscapeLight::ActiveShadowType()

Reimplemented from GenLight.

virtual void SetShadowGenerator ( const MCHAR name)
pure virtual

Sets the plug-in shadow generator.

Postcondition
The shadow generator is set.
Parameters
[in]name- The class name of the shadow type to be set.
See also
For an explanation of local and global shadow generators, see LightscapeLight::ActiveShadowType()
virtual void SetUseShadowColorMap ( TimeValue  t,
int  onOff 
)
pure virtual

Sets whether a shadow color map is used by the light.

Postcondition
The flag value is set.
Parameters
[in]t- The time at which the flag value is set.
[in]onOff- The value to be set. TRUE indicates the the light should use a shadow color map.

Reimplemented from GenLight.

virtual int GetUseShadowColorMap ( TimeValue  t)
pure virtual

Returns whether a shadow color map is used by the light.

Parameters
[in]t- The time at which the flag value is set.
Returns
The flag value is returned.

Reimplemented from GenLight.

virtual void SetInclude ( BOOL  onOff)
pure virtual

Sets whether the Include/Exclude list should include or exclude objects.

Postcondition
The flag value is set.
Parameters
[in]onOff- The flag value to be set. TRUE indicates that the light should include objects in the Include/Exclude list.
virtual void UpdateTargDistance ( TimeValue  t,
INode inode 
)
pure virtual

Update the target distance parameter of the light to the distance between the light target and the light.

Precondition
The inode should have a target. Nothing is changed if no target is present, however, the method does not check whether this light is attached to the inode argument.
Postcondition
The distance is updated.
Parameters
[in]t- The time at which the distance is calculated and set.
[in]inode- The node to be used to calculate the target.

Reimplemented from LightObject.

virtual BOOL SetKelvinControl ( Control kelvin)
pure virtual

Sets the controller for the Kelvin temperature.

Postcondition
The controller is set.
Parameters
[in]kelvin- The new controller to use for kelvin temperature. NULL will remove any animation.
virtual BOOL SetFilterControl ( Control filter)
pure virtual

Sets the controller for the filter color.

Postcondition
The controller is set.
Parameters
[in]filter- The new controller to use for filter color. NULL will remove any animation.
virtual Control* GetKelvinControl ( )
pure virtual

Returns the controller for the Kelvin temperature.

Returns
The controller is returned.
virtual Control* GetFilterControl ( )
pure virtual

Returns the controller for the filter color.

Returns
The controller is returned.
virtual float GetKelvin ( TimeValue  t,
Interval v = Interval(0, 0) 
)
pure virtual

Returns the Kelvin temperature of the light.

Kelvin temperature is a method for retrieving light color based on black body radiation from physics.

Parameters
[in]t- The time at which the color is retrieved.
[in,out]v- The validity of the color is intersected with this argument.
Returns
The current kelvin temperature.
virtual void SetKelvin ( TimeValue  t,
float  kelvin 
)
pure virtual

Sets the Kelvin temperature of the light.

Kelvin temperature is a method for specifying light color based on black body radiation from physics.

Postcondition
The kelvin temperature is changed.
Parameters
[in]t- The time at which the color is set.
[in]kelvin- The kelvin temperature in degrees Kelvin. Should be greater than or equal to 0.
virtual BOOL GetUseKelvin ( )
pure virtual

Returns whether the kelvin temperature or light color is to be used.

The light color can be set using either an RGB value or a kelvin temperature.

Returns
TRUE if the kelvin temperature is used, or FALSE if the RBG value is used.
virtual void SetUseKelvin ( BOOL  useKelvin)
pure virtual

Sets whether the kelvin temperature or light color is to be used.

The light color can be set using either an RGB value or a kelvin temperature.

Postcondition
The flag value is changed or returned.
Parameters
[in]useKelvin- TRUE to use the kelvin temperature, or FALSE to use the RGB value.
virtual MaxSDK::AssetManagement::AssetUser GetWebFile ( ) const
pure virtual

Returns the web distribution file for the light as an AssetUser.

Returns
The AssetUser is returned.
virtual const MCHAR* GetFullWebFileName ( ) const
pure virtual

Returns the filename of the web distribution file for the light.

The full web filename is the full path to the web filename. If the file couldn't be found or the current distribution is not the web distribution, the filename stored in the light is returned.

Returns
The filename is returned.
virtual void SetWebFile ( const MaxSDK::AssetManagement::AssetUser file)
pure virtual

Sets the web distribution file for the light.

Postcondition
The file is set
Parameters
[in]file- The new file for the web distribution
virtual float GetWebRotateX ( ) const
pure virtual

Returns the rotation along the X axis of the web distribution in the light.

Returns
The rotation in degrees is returned.
virtual void SetWebRotateX ( float  degrees)
pure virtual

Sets the rotation along the X axis for the web distribution in the light.

Postcondition
The rotation is set.
Parameters
[in]degrees- The amount of rotation in degrees.
virtual float GetWebRotateY ( ) const
pure virtual

Returns the rotation along the Y axis of the web distribution in the light.

Returns
The rotation in degrees is returned.
virtual void SetWebRotateY ( float  degrees)
pure virtual

Sets the rotation along the Y axis for the web distribution in the light.

Postcondition
The rotation is set.
Parameters
[in]degrees- The amount of rotation in degrees.
virtual float GetWebRotateZ ( ) const
pure virtual

Returns the rotation along the Z axis of the web distribution in the light.

Returns
The rotation in degrees is returned.
virtual void SetWebRotateZ ( float  degrees)
pure virtual

Sets the rotation along the Z axis for the web distribution in the light.

Postcondition
The rotation is set.
Parameters
[in]degrees- The amount of rotation in degrees.
virtual float GetDimmerValue ( TimeValue  t,
Interval valid = Interval(0, 0) 
) const
pure virtual

Returns the dimmer value for the light.

An additional dimmer can be used to independently modify the light intensity.

Parameters
[in]t- The time at which the dimmer value is retrieved.
[in,out]valid- The validity of the dimmer is intersected with the validity in this argument.
Returns
the dimmer value is returned.
virtual void SetDimmerValue ( TimeValue  t,
float  dimmer 
)
pure virtual

Sets the dimmer value for the light.

An additional dimmer can be used to independently modify the light intensity.

Postcondition
The dimmer value is set.
Parameters
[in]t- The time at which the dimmer value is set.
[in]dimmer- The value of the dimmer. 1.0 is full-on. 0.0 if full-off.
virtual BOOL GetUseMultiplier ( ) const
pure virtual

Returns whether the dimmer is used.

Returns
The value of the flag is returned.
virtual void SetUseMultiplier ( BOOL  on)
pure virtual

Sets whether the dimmer is used.

Postcondition
The value of the flag is changed.
Parameters
[in]on- The value of the flag to be set. TRUE indicates that the dimmer is used.
virtual BOOL IsColorShiftEnabled ( ) const
pure virtual

Returns whether the light's intensity shifts (affects) its color.

Note that this parameter is really activated only if GetUseMultiplier() is true.

Returns
The value of the flag is returned.
virtual void EnableColorShift ( BOOL  on)
pure virtual

Sets whether the color of the light shifts when its intensity changes Note that this parameter is really activated only if GetUseMultiplier() is true.

Postcondition
The value of the flag is changed.
Parameters
[in]on- If true, the changes in the light's intensity will cause shifts in the light's color, otherwise the light's color will be unaffected by the intensity
virtual float GetResultingIntensity ( TimeValue  t,
Interval valid = Interval(0, 0) 
) const
pure virtual

Returns the intensity including the dimmer multiplier if it is used.

This utility method returns the effective intensity of a light including the dimmer value if there is one.

Parameters
[in]t- The time at which to retrieve the intensity or flux.
[in,out]valid- The validity of the effective intensity is intersected with this argument. This includes the validity of the dimmer.
Returns
The effective intensity in candelas.
virtual float GetResultingFlux ( TimeValue  t,
Interval valid = Interval(0, 0) 
) const
pure virtual

Returns the flux including the dimmer multiplier if it is used.

This utility method returns the effective flux of a light including the dimmer value if there is one.

Parameters
[in]t- The time at which to retrieve the intensity or flux.
[in,out]valid- The validity of the effective flux is intersected with this argument. This includes the validity of the dimmer.
Returns
The effective flux in lumens.
virtual Point3 GetCenter ( ) const
pure virtual

Returns the location of the center of the light.

This location is in the light's coordinates.

Returns
The light coordinate of the center of the light.
virtual float GetRadius ( TimeValue  t,
Interval valid = Interval(0, 0) 
) const
pure virtual

Returns the radius of a disc, sphere, cylinder light.

This method allows to access the radius of a disc, sphere or cylinder light type.

Parameters
[in]t- The time at which the radius is retrieved.
[in,out]valid- The validity interval of the radius is intersected with this argument.
Returns
The radius of the light, or zero if the light is not of any of the above mentioned types.
virtual void SetRadius ( TimeValue  t,
float  radius 
)
pure virtual

Sets the radius of a disc, sphere, cylinder light.

This method allows to set the radius of a disc, sphere or cylinder light. If the light is not of one of the above mentioned types, the method is a no-op.

Parameters
[in]t- The time at which the radius is set.
[in]radius- The new radius value
virtual float GetLength ( TimeValue  t,
Interval valid = Interval(0, 0) 
) const
pure virtual

Returns the length of a linear, area, cylinder light.

This method allows to access the length of a linear, area, or cylinder light.

Parameters
[in]t- The time at which the length is retrieved.
[in,out]valid- The validity interval of the length is intersected with this argument.
Returns
The length of the light, or zero if the light is not of any of the above mentioned types.
virtual void SetLength ( TimeValue  t,
float  length 
)
pure virtual

Sets the length of a linear, area, cylinder light.

This method allow to set the length of a linear, area, cylinder light. If the light is not of one of the above mentioned types, the method is a no-op.

Parameters
[in]t- The time at which the length is set.
[in]length- The new length value
virtual float GetWidth ( TimeValue  t,
Interval valid = Interval(0, 0) 
) const
pure virtual

Returns the width of an area light.

This method allows to access the width of an area light.

Parameters
[in]t- The time at which the width is retrieved.
[in,out]valid- The validity interval of the width is intersected with this argument.
Returns
The width of the light, or zero if the light is not of any of the above mentioned types.
virtual void SetWidth ( TimeValue  t,
float  width 
)
pure virtual

Sets the width of an area light.

This method allows to set the width of an area light. If the light is not of one of the above mentioned types, the method is a no-op.

Parameters
[in]t- The time at which the width is set.
[in]width- The new width value
virtual void SetShape ( int  count,
const Point3 pointsIn 
)
pure virtual

Sets the coordinates of the light.

The use of this functions varies based on the current light type. If the light is a point light, the center is set to the center of the set of points. If the light is a linear light the light's line segment is set to the segment between the first two points. If fewer than two points are specified, no change is made. If the light is an area light, the light area is set to the triangle or quadrilateral defined by the 3 or 4 points, respectively. If fewer than 3 points is specified, no change is made. If more than 4 points is specified a quadrilateral is made from the first 4 points.

Precondition
All points are in light coordinates. Quadrilaterals must be planar.
Postcondition
The shape is changed.
Parameters
[in]count- Number of points of the shape.
[in]pointsIn- The array of points in the shape.
virtual int GetShape ( Point3 pointsOut,
int  bufSize 
) const
pure virtual

Returns the coordinates of the light.

Parameters
[out]pointsOut- The buffer that will receive the vertices in the shape. If bufSize is 0 this can be NULL.
[in]bufSize- The number of points in the buffer. Only the vertices that fit in the buffer will be stored. The return value will include the count of vertices that could not be stored.
Returns
The total number of vertices in the shape. This is independent of the number of point in the receiving buffer.
See also
For further usage notes, see LightscapeLight::SetShape()
virtual float GetOriginalFlux ( ) const
pure virtual

Returns the original flux for a light.

This is the original flux in the web distribution for a light.

Returns
The original flux in lumens is returned.
virtual void SetOriginalFlux ( float  flux)
pure virtual

Sets the original flux for a light.

This is the original flux in the web distribution for a light. It can be used to reset a light intensity to a default value. The method can be used, but the flux will be reset if the web filename is changed.

Postcondition
The original flux is set
Parameters
[in]flux- The flux to be set, in lumens.
virtual float GetOriginalIntensity ( ) const
pure virtual

Returns the original intensity for a light.

This is the original intensity in the web distribution for a light.

Returns
The original intensity in candelas is returned.
virtual void SetOriginalIntensity ( float  candelas)
pure virtual

Sets the original intensity for a light.

This is the original intensity in the web distribution for a light. It can be used to reset a light intensity to a default value. The method can be used, but the intensity will be reset if the web filename is changed.

Postcondition
The original intensity is set.
Parameters
[in]candelas- The intensity to be set, in candelas
virtual PresetLightColor GetColorPreset ( ) const
pure virtual

Returns the color preset of the light.

Color preset is used when Kelvin temperature is not used. See LightscapeLight::GetUseKelvin().

Returns
The current preset color.
virtual void SetColorPreset ( PresetLightColor  presetID)
pure virtual

Sets the preset color of the light to be used.

Color preset is used when Kelvin temperature is not used. See LightscapeLight::GetUseKelvin().

Parameters
[in]presetID- The time at which the color is set.