00001 /* 00002 * PROPRIETARY INFORMATION. This software is proprietary to 00003 * Side Effects Software Inc., and is not to be reproduced, 00004 * transmitted, or disclosed in any way without written permission. 00005 * 00006 * Produced by: 00007 * Rafal Jaroszkiewicz 00008 * Side Effects Software Inc 00009 * 123 Front Street West, Suite 1401 00010 * Toronto, Ontario 00011 * Canada M5J 2M2 00012 * 416-504-9876 00013 * 00014 * NAME: OBJ_StereoCamera.h ( OBJ Library, C++) 00015 * 00016 * COMMENTS: 00017 */ 00018 00019 #ifndef __OBJ_StereoCamera__ 00020 #define __OBJ_StereoCamera__ 00021 00022 #include "OBJ_API.h" 00023 #include "OBJ_Camera.h" 00024 00025 enum OBJ_StereoCameraIndex 00026 { 00027 I_LEFT_CAMERA = I_N_CAM_INDICES, 00028 I_RIGHT_CAMERA, 00029 00030 I_N_STEREOCAM_INDICES // should always be last in the list 00031 }; 00032 00033 00034 class OBJ_API OBJ_StereoCamera : public OBJ_Camera 00035 { 00036 public: 00037 // constructor and destructor. 00038 OBJ_StereoCamera(OP_Network *, const char *, OP_Operator *); 00039 virtual ~OBJ_StereoCamera(); 00040 00041 // node factory 00042 static OP_Node *myConstructor(OP_Network *net, 00043 const char *name, 00044 OP_Operator *entry); 00045 00046 // a few standard methods for OBJs 00047 static PRM_Template *getTemplateList(); 00048 virtual OBJ_OBJECT_TYPE getObjectType() const; 00049 virtual OBJ_StereoCamera *castToOBJStereoCamera(); 00050 00051 // Utility methods that obtain left and right camera objects 00052 OBJ_Node * getLeftCamera( fpreal t ); 00053 OBJ_Node * getRightCamera( fpreal t ); 00054 00055 protected: 00056 // Used to get pointer to indirection indices for each object type 00057 virtual int * getIndirect() const; 00058 00059 private: 00060 // the parameter index indirection (lookup table) 00061 static int *theStereoCameraIndirect; 00062 }; 00063 00064 #endif
1.5.9