gizmoimp.h

Go to the documentation of this file.
00001 //**************************************************************************/
00002 // Copyright (c) 1998-2006 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 // FILE:        gizmoimp.h
00012 // DESCRIPTION: General atmoshperic gizmo objects
00013 // AUTHOR:      Rolf Berteig
00014 // HISTORY:     4-15-96
00015 //              11-13-96 Moved into core
00016 //**************************************************************************/
00017 #pragma once
00018 #include "coreexp.h"
00019 #include "gizmo.h"
00020 
00021 #define SPHEREGIZMO_CLASSID Class_ID(0x3bc31904, 0x67d74ec7)
00022 #define CYLGIZMO_CLASSID    Class_ID(0x3bc31904, 0x67d74ec8)
00023 #define BOXGIZMO_CLASSID    Class_ID(0x3bc31904, 0x67d74ec9)
00024 
00025 #pragma warning(push)
00026 #pragma warning(disable:4239)
00027 
00039 class SphereGizmoObject : public GizmoObject {
00040     public:     
00041         CoreExport SphereGizmoObject();
00042         CoreExport ~SphereGizmoObject();
00043 
00044         // From BaseObject
00045         CoreExport CreateMouseCallBack* GetCreateMouseCallBack();
00046         CoreExport void BeginEditParams( IObjParam *ip, ULONG flags,Animatable *prev);
00047         CoreExport void EndEditParams( IObjParam *ip, ULONG flags,Animatable *next);
00048         CoreExport MCHAR *GetObjectName();
00049         CoreExport void InitNodeName(MSTR& s);
00050 
00051         // Animatable methods
00052         CoreExport void GetClassName(MSTR& s);
00053         CoreExport void DeleteThis();
00054         Class_ID ClassID() {return SPHEREGIZMO_CLASSID;}
00055         
00056         // From ref
00057         CoreExport RefTargetHandle Clone(RemapDir& remap);      
00058 
00059         // From GizmoObject     
00060         Interval ObjectValidity(TimeValue t); // mjm - 1.27.99  
00061         CoreExport void InvalidateUI();
00062         CoreExport ParamDimension *GetParameterDim(int pbIndex);
00063         CoreExport MSTR GetParameterName(int pbIndex);
00064         CoreExport void DrawGizmo(TimeValue t,GraphicsWindow *gw);      
00065         CoreExport void GetBoundBox(Matrix3 &mat,TimeValue t,Box3 &box);
00066     };
00067 
00068 #define PB_GIZMO_RADIUS 0
00069 #define PB_GIZMO_HEMI   1
00070 #define PB_GIZMO_SEED   2
00071 
00072 
00084 class CylGizmoObject : public GizmoObject {
00085     public:     
00086         CoreExport CylGizmoObject();
00087         CoreExport ~CylGizmoObject();
00088 
00089         // From BaseObject
00090         CoreExport CreateMouseCallBack* GetCreateMouseCallBack();
00091         CoreExport void BeginEditParams( IObjParam *ip, ULONG flags,Animatable *prev);
00092         CoreExport void EndEditParams( IObjParam *ip, ULONG flags,Animatable *next);
00093         CoreExport MCHAR *GetObjectName();
00094         CoreExport void InitNodeName(MSTR& s);
00095 
00096         // Animatable methods
00097         CoreExport void GetClassName(MSTR& s);
00098         CoreExport void DeleteThis();
00099         Class_ID ClassID() {return CYLGIZMO_CLASSID;}
00100         
00101         // From ref
00102         CoreExport RefTargetHandle Clone(RemapDir& remap);      
00103 
00104         // From GizmoObject     
00105         Interval ObjectValidity(TimeValue t); // mjm - 1.27.99  
00106         CoreExport void InvalidateUI();
00107         CoreExport ParamDimension *GetParameterDim(int pbIndex);
00108         CoreExport MSTR GetParameterName(int pbIndex);
00109         CoreExport void DrawGizmo(TimeValue t,GraphicsWindow *gw);      
00110         CoreExport void GetBoundBox(Matrix3 &mat,TimeValue t,Box3 &box);
00111     };
00112 
00113 #define PB_CYLGIZMO_RADIUS  0
00114 #define PB_CYLGIZMO_HEIGHT  1
00115 #define PB_CYLGIZMO_SEED    2
00116 
00129 class BoxGizmoObject : public GizmoObject {
00130     public:
00131         CoreExport BoxGizmoObject();
00132         CoreExport ~BoxGizmoObject();
00133 
00134         // From BaseObject
00135         CoreExport CreateMouseCallBack* GetCreateMouseCallBack();
00136         CoreExport void BeginEditParams( IObjParam *ip, ULONG flags,Animatable *prev);
00137         CoreExport void EndEditParams( IObjParam *ip, ULONG flags,Animatable *next);
00138         CoreExport MCHAR *GetObjectName();
00139         CoreExport void InitNodeName(MSTR& s);
00140 
00141         // Animatable methods
00142         CoreExport void GetClassName(MSTR& s);
00143         CoreExport void DeleteThis();
00144         Class_ID ClassID() {return BOXGIZMO_CLASSID;}
00145         
00146         // From ref
00147         CoreExport RefTargetHandle Clone(RemapDir& remap);      
00148 
00149         // From GizmoObject     
00150         Interval ObjectValidity(TimeValue t); // mjm - 1.27.99  
00151         CoreExport void InvalidateUI();
00152         CoreExport ParamDimension *GetParameterDim(int pbIndex);
00153         CoreExport MSTR GetParameterName(int pbIndex);
00154         CoreExport void DrawGizmo(TimeValue t,GraphicsWindow *gw);      
00155         CoreExport void GetBoundBox(Matrix3 &mat,TimeValue t,Box3 &box);
00156     };
00157 
00158 #pragma warning(pop)
00159 
00160 #define PB_BOXGIZMO_LENGTH  0
00161 #define PB_BOXGIZMO_WIDTH   1
00162 #define PB_BOXGIZMO_HEIGHT  2
00163 #define PB_BOXGIZMO_SEED    3
00164 
00165