ilayer.h

Go to the documentation of this file.
00001 /**********************************************************************
00002  *<
00003     FILE: ILayer.h
00004 
00005     DESCRIPTION: Declaration of the ILayer interface
00006 
00007     CREATED BY: Peter Sauerbrei
00008 
00009     HISTORY: Created 19 October 1998
00010 
00011  *> Copyright (c) 1998-99, All Rights Reserved.
00012  **********************************************************************/
00013 #pragma once
00014 #include "maxtypes.h"
00015 #include "ref.h"
00016 // forward declarations
00017 class View;
00018 class Point3;
00019 class INode;
00020 
00021 #define NODE_LAYER_REF      6
00022 
00029 class LayerProperty : public ReferenceTarget
00030 {
00031 private: 
00032     int m_id;
00033     MSTR m_name;
00034 
00035 public:
00040     LayerProperty() : m_id(-1), m_name("") {}
00046     LayerProperty(const MSTR & name, int id) : m_id(id), m_name(name) {}
00050     virtual ~LayerProperty() {}
00051 
00052     // child methods
00057     virtual void SetProperty(const int d) = 0;
00062     virtual void SetProperty(const float d) = 0;
00067     virtual void SetProperty(const Point3 & d) = 0;
00072     virtual void SetProperty(const MSTR & d) = 0;
00077     virtual void SetProperty(void * d) = 0;
00083     virtual bool GetProperty(int & i) const = 0;
00089     virtual bool GetProperty(float & f) const = 0;
00095     virtual bool GetProperty(Point3 & p) const = 0;
00101     virtual bool GetProperty(MSTR & n) const = 0;
00107     virtual bool GetProperty(void * v) const = 0;
00108 
00109     // local methods
00111     int GetID() const { return m_id; }
00116     void SetID(int id) { m_id = id; }
00118     MSTR GetName() const { return m_name; }
00123     void SetName(const MSTR & name) { m_name = name; }
00124 };
00125 
00138 class ILayer : public ReferenceTarget
00139 {
00140 public:
00141     static const SClass_ID kLayerSuperClassID;
00142 
00143     // from Animatable
00144     SClass_ID SuperClassID() { return kLayerSuperClassID; }
00145 
00146     // from ILayerRecord
00151     virtual bool AddToLayer(INode * rtarg) = 0;
00157     virtual bool DeleteFromLayer(INode * rtarg) = 0;
00162     virtual void SetName(const MSTR & name) = 0;
00165     virtual MSTR GetName() const = 0;       // user must delete the string
00170     virtual void SetWireColor(DWORD newcol) = 0;
00173     virtual DWORD GetWireColor() const = 0;
00178     virtual void Hide(bool onOff) = 0;
00180     virtual bool IsHidden() const = 0;
00185     virtual void Freeze(bool onOff) = 0;
00187     virtual bool IsFrozen() const = 0;
00192     virtual void SetRenderable(bool onOff) = 0;
00194     virtual bool Renderable() const = 0;
00195 // mjm - 06.12.00 - begin
00201     virtual void SetPrimaryVisibility(bool onOff) = 0;
00204     virtual bool GetPrimaryVisibility() const = 0;
00210     virtual void SetSecondaryVisibility(bool onOff) = 0;
00213     virtual bool GetSecondaryVisibility() const = 0;
00214 // mjm - end
00219     virtual void XRayMtl(bool onOff) = 0;
00221     virtual bool HasXRayMtl() const = 0;
00226     virtual void IgnoreExtents(bool onOff) = 0;
00228     virtual bool GetIgnoreExtents() const = 0;
00233     virtual void BoxMode(bool onOff) = 0;
00235     virtual bool GetBoxMode() const = 0;
00240     virtual void AllEdges(bool onOff) = 0;
00242     virtual bool GetAllEdges() const = 0;
00247     virtual void VertTicks(bool onOff) = 0;
00249     virtual bool GetVertTicks() const = 0;
00254     virtual void BackCull(bool onOff) = 0;
00256     virtual bool GetBackCull() const = 0;
00261     virtual void SetCVertMode(bool onOff) = 0;
00264     virtual bool GetCVertMode() const = 0;
00269     virtual void SetShadeCVerts(bool onOff) = 0;
00272     virtual bool GetShadeCVerts() const = 0;
00277     virtual void SetCastShadows(bool onOff) = 0;
00279     virtual bool CastShadows() const = 0;
00284     virtual void SetRcvShadows(bool onOff) = 0;
00286     virtual bool RcvShadows() const = 0;
00287 // mjm - 06.12.00 - begin
00288     virtual void SetApplyAtmospherics(bool onOff) = 0;
00289     virtual bool ApplyAtmospherics() const = 0;
00290 // mjm - end
00298     virtual void SetMotBlur(int kind) = 0;
00304     virtual int MotBlur() const = 0;
00306     virtual int GetRenderFlags() const = 0;
00308     virtual void SetRenderFlags(int flags) = 0;
00310     virtual int GetDisplayFlags() const = 0;
00313     virtual int AddProperty(LayerProperty & lprop) = 0;
00316     virtual int SetProperty(LayerProperty & lprop) = 0;
00319     virtual int GetProperty(LayerProperty & lprop) const = 0;
00322     virtual bool Used(void) const = 0;
00324     virtual bool GetFlag(int mask) const = 0;
00326     virtual bool GetFlag2(int mask) const = 0;
00329     virtual void UpdateSelectionSet(void) = 0;
00335     virtual int GetRenderFlags(int oldlimits) const = 0;
00341     virtual void SetInheritVisibility(bool onOff) = 0;
00344     virtual bool GetInheritVisibility() const = 0;
00352     virtual void Trajectory(bool onOff, bool temp = false) = 0;
00355     virtual bool GetTrajectory() const = 0;
00363     virtual void SetDisplayByLayer(BOOL onOff, INode *) = 0;
00371     virtual void SetRenderByLayer(BOOL onOff, INode *) = 0;
00379     virtual void SetMotionByLayer(BOOL onOff, INode *) = 0;
00386     virtual BOOL GetDisplayByLayer(INode *) const = 0;
00393     virtual BOOL GetRenderByLayer(INode *) const = 0;
00400     virtual BOOL GetMotionByLayer(INode *) const = 0;
00402     virtual void SelectObjects(void) = 0;
00403     virtual void SetVisibility(TimeValue t, float vis) = 0;
00404     virtual float GetVisibility(TimeValue t,Interval *valid=NULL) const = 0;
00405     virtual float GetVisibility(TimeValue t,View & view, Interval *valid=NULL) const = 0;
00411     virtual float GetImageBlurMultiplier(TimeValue t) const = 0;
00418     virtual void  SetImageBlurMultiplier(TimeValue t, float m) = 0;
00424     virtual bool GetMotBlurOnOff(TimeValue t) const = 0;
00432     virtual void  SetMotBlurOnOff(TimeValue t, bool m) = 0;
00433     virtual bool IsHiddenByVisControl() = 0;
00434     virtual float GetLocalVisibility(TimeValue t,Interval *valid) const = 0;
00435 
00436     //New methods in R4
00437     virtual void SetShowFrozenWithMtl( bool onOff) = 0;
00438     virtual int ShowFrozenWithMtl() const = 0;
00439 
00440     virtual void SetRenderOccluded(bool onOff) = 0;
00441     virtual int GetRenderOccluded() const = 0;
00442 
00443     // promoted to public method 030530  --prs.
00444     virtual bool HasObjects() const = 0;
00445 };
00446 
00447