00001 /*============================================================================== 00002 // Copyright (c) 1998-2008 Autodesk, Inc. 00003 // All rights reserved. 00004 // 00005 // These coded instructions, statements, and computer programs contain 00006 // unpublished proprietary information written by Autodesk, Inc., and are 00007 // protected by Federal copyright law. They may not be disclosed to third 00008 // parties or copied or duplicated in any form, in whole or in part, without 00009 // the prior written consent of Autodesk, Inc. 00010 //**************************************************************************/ 00011 // DESCRIPTION: Interface to Working Pivot Interfaces 00012 // AUTHOR: Michael Zyracki created 2007 00013 //***************************************************************************/ 00014 00015 #pragma once 00016 #include "Maxapi.h" 00017 #include "maxheap.h" 00018 #include "ifnpub.h" 00019 #include "iparamb2.h" 00020 00021 00022 00025 #define IWORKINGPIVOT_INTERFACE Interface_ID(0x6ea64179, 0x233915fd) 00026 00028 #define GetIWorkingPivot() static_cast<IWorkingPivot*>(GetCOREInterface(IWORKINGPIVOT_INTERFACE)) 00029 00030 00032 00035 class IWorkingPivot : public FPStaticInterface { 00036 00037 public: 00038 00040 00041 00045 virtual void SetUseMode(BOOL use) = 0; 00046 00051 virtual BOOL GetUseMode()const =0; 00053 00055 00056 00060 virtual void SetEditMode(BOOL edit) = 0; 00061 00064 00065 virtual BOOL GetEditMode()const =0; 00066 00074 virtual void SetPlacePivotViewMode(BOOL place,BOOL alignToView) = 0; 00075 00080 virtual BOOL GetPlacePivotViewMode()const = 0; 00081 00089 virtual void SetPlacePivotSurfaceMode(BOOL place,BOOL alignToView) = 0; 00090 00095 virtual BOOL GetPlacePivotSurfaceMode()const = 0; 00096 00097 00102 virtual BOOL GetPlacePivotAlignToView() const = 0; 00103 00105 00107 00108 00112 virtual void SetTM(Matrix3 &mat) =0; 00113 00118 virtual Matrix3 GetTM()const = 0; 00120 00122 00123 00126 virtual void SetAxisSize(float size) = 0; 00127 00131 virtual float GetAxisSize()const =0; 00132 00134 00136 00137 00141 virtual void AlignToView() =0; 00146 virtual void ResetTM() =0; 00152 virtual void ResetTM(INode *node)=0; 00154 00155 00157 00158 00159 virtual IOResult Save(ISave* iSave) = 0; 00161 virtual IOResult Load(ILoad* iLoad) = 0; 00163 00164 00165 }; 00166 00167 00168 00169