impapi.h

Go to the documentation of this file.
00001 /**********************************************************************
00002  *<
00003     FILE: impapi.h
00004 
00005     DESCRIPTION: Geometry import/export API header
00006 
00007     CREATED BY: Tom Hudson
00008 
00009     HISTORY: Created 26 December 1994
00010 
00011  *> Copyright (c) 1994, All Rights Reserved.
00012  **********************************************************************/
00013 
00014 #pragma once
00015 
00016 #include "maxheap.h"
00017 // These includes get us the general camera and light interfaces
00018 #include "gencam.h"
00019 #include "genlight.h"
00020 
00021 #include "render.h"
00022 
00023 // Import Node class
00024 
00056 class ImpNode: public MaxHeapOperators {
00057 public:
00067     virtual RefResult   Reference(ObjectHandle obj) = 0;
00074     virtual void        SetTransform( TimeValue t, Matrix3 tm ) = 0;
00079     virtual void        SetName(const MCHAR *newname) = 0;
00084     virtual void        SetPivot(Point3 p) = 0;
00086     virtual INode *     GetINode()=0;           // Use with care -- Always use above methods instead
00087     // I'm stuffing these in here so that I can perhaps add API functions without recompiling
00088     virtual int         TempFunc1(void *p1=NULL, void *p2=NULL, void *p3=NULL, void *p4=NULL, void *p5=NULL, void *p6=NULL, void *p7=NULL, void *p8=NULL)=0;
00089     virtual int         TempFunc2(void *p1=NULL, void *p2=NULL, void *p3=NULL, void *p4=NULL, void *p5=NULL, void *p6=NULL, void *p7=NULL, void *p8=NULL)=0;
00090     virtual int         TempFunc3(void *p1=NULL, void *p2=NULL, void *p3=NULL, void *p4=NULL, void *p5=NULL, void *p6=NULL, void *p7=NULL, void *p8=NULL)=0;
00091     virtual int         TempFunc4(void *p1=NULL, void *p2=NULL, void *p3=NULL, void *p4=NULL, void *p5=NULL, void *p6=NULL, void *p7=NULL, void *p8=NULL)=0;
00092     virtual int         TempFunc5(void *p1=NULL, void *p2=NULL, void *p3=NULL, void *p4=NULL, void *p5=NULL, void *p6=NULL, void *p7=NULL, void *p8=NULL)=0;
00093     virtual int         TempFunc6(void *p1=NULL, void *p2=NULL, void *p3=NULL, void *p4=NULL, void *p5=NULL, void *p6=NULL, void *p7=NULL, void *p8=NULL)=0;
00094     virtual int         TempFunc7(void *p1=NULL, void *p2=NULL, void *p3=NULL, void *p4=NULL, void *p5=NULL, void *p6=NULL, void *p7=NULL, void *p8=NULL)=0;
00095     virtual int         TempFunc8(void *p1=NULL, void *p2=NULL, void *p3=NULL, void *p4=NULL, void *p5=NULL, void *p6=NULL, void *p7=NULL, void *p8=NULL)=0;
00096     virtual int         TempFunc9(void *p1=NULL, void *p2=NULL, void *p3=NULL, void *p4=NULL, void *p5=NULL, void *p6=NULL, void *p7=NULL, void *p8=NULL)=0;
00097     virtual int         TempFunc10(void *p1=NULL, void *p2=NULL, void *p3=NULL, void *p4=NULL, void *p5=NULL, void *p6=NULL, void *p7=NULL, void *p8=NULL)=0;
00098     };
00099 
00100 // Import Interface class
00101 
00109 class ImpInterface: public MaxHeapOperators {
00110 public:
00111     virtual ~ImpInterface() {}
00117     virtual ImpNode *       CreateNode() = 0;
00119     virtual void            RedrawViews() = 0;
00127     virtual GenCamera*      CreateCameraObject(int type) = 0;
00129     virtual Object *        CreateTargetObject() = 0;
00139     virtual GenLight*       CreateLightObject(int type) = 0;
00147     virtual void *          Create(SClass_ID sclass, Class_ID classid)=0;
00157     virtual int             BindToTarget(ImpNode *laNode, ImpNode *targNode)=0;
00162     virtual void            AddNodeToScene(ImpNode *node)=0;
00167     virtual void            SetAnimRange(Interval& range)=0;
00170     virtual Interval        GetAnimRange()=0;
00171     // Environment settings
00176     virtual void            SetEnvironmentMap(Texmap *txm)=0;
00183     virtual void            SetAmbient(TimeValue t, Point3 col)=0;
00190     virtual void            SetBackGround(TimeValue t,Point3 col)=0;
00195     virtual void            SetUseMap(BOOL onoff)=0;
00200     virtual void            AddAtmosphere(Atmospheric *atmos)=0;
00201 
00203     virtual int             NewScene()=0;  // delete all existing geometry
00204     // I'm stuffing these in here so that I can perhaps add API functions without recompiling
00205     virtual int             TempFunc1(void *p1=NULL, void *p2=NULL, void *p3=NULL, void *p4=NULL, void *p5=NULL, void *p6=NULL, void *p7=NULL, void *p8=NULL)=0;
00206     virtual int             TempFunc2(void *p1=NULL, void *p2=NULL, void *p3=NULL, void *p4=NULL, void *p5=NULL, void *p6=NULL, void *p7=NULL, void *p8=NULL)=0;
00207     virtual int             TempFunc3(void *p1=NULL, void *p2=NULL, void *p3=NULL, void *p4=NULL, void *p5=NULL, void *p6=NULL, void *p7=NULL, void *p8=NULL)=0;
00208     virtual int             TempFunc4(void *p1=NULL, void *p2=NULL, void *p3=NULL, void *p4=NULL, void *p5=NULL, void *p6=NULL, void *p7=NULL, void *p8=NULL)=0;
00209     virtual int             TempFunc5(void *p1=NULL, void *p2=NULL, void *p3=NULL, void *p4=NULL, void *p5=NULL, void *p6=NULL, void *p7=NULL, void *p8=NULL)=0;
00210     virtual int             TempFunc6(void *p1=NULL, void *p2=NULL, void *p3=NULL, void *p4=NULL, void *p5=NULL, void *p6=NULL, void *p7=NULL, void *p8=NULL)=0;
00211     virtual int             TempFunc7(void *p1=NULL, void *p2=NULL, void *p3=NULL, void *p4=NULL, void *p5=NULL, void *p6=NULL, void *p7=NULL, void *p8=NULL)=0;
00212     virtual int             TempFunc8(void *p1=NULL, void *p2=NULL, void *p3=NULL, void *p4=NULL, void *p5=NULL, void *p6=NULL, void *p7=NULL, void *p8=NULL)=0;
00213     virtual int             TempFunc9(void *p1=NULL, void *p2=NULL, void *p3=NULL, void *p4=NULL, void *p5=NULL, void *p6=NULL, void *p7=NULL, void *p8=NULL)=0;
00214     virtual int             TempFunc10(void *p1=NULL, void *p2=NULL, void *p3=NULL, void *p4=NULL, void *p5=NULL, void *p6=NULL, void *p7=NULL, void *p8=NULL)=0;
00215     virtual FILE *          DumpFile() = 0;         // For debugging -- Stream for dumping debug messages
00216     };
00217 
00218 // Export Interface class
00219 
00227 class ExpInterface: public MaxHeapOperators {
00228 public:
00229     IScene *        theScene;       // Pointer to the scene
00230     };
00231