/******************************************************************************* 
 *                                                                             *
 *     Project <MyGreatProject>                                                *
 *     ------------------------                                                *
 *                                                                             *
 *                                                                             *
 *     File:                                                                   *
 *                                                                             *
 *                                                                             *
 *     Creation date:                                                          *
 *                                                                             *
 *                                                                             *
 *     Contents:                                                               *
 *                                                                             *
 *                                                                             *
 *******************************************************************************/

#import "MyCX3DObject.h"

#define VERSION 001

@implementation MyCX3DObject

/*******************************************************************************
 *                                                                             *
 *                                Class methods                                *
 *                                                                             *
 *******************************************************************************/
/*
 *  This is a good idea to set a version number to your class
 *  This is useful when you have to keep a backward compatibility
 *  when reading a stream
 */
+ initialize
{
  [self setVersion: VERSION];
  return self;
}

/*
 *  ExportedVariables allows you to speedup the implementation of the read: and
 *  write: methods. Please read the documentation.
 */
+ (ExportedVariable*) exportedVariable
{
  static ExportedVariable ev[] = 
    {
      /*
       *  Describe your new instance variable here
       */
      {"MyInstanceVariableName", MyType , 0 },
      ...,
      {"",0,0}
    };
  return ev;
}

/*******************************************************************************
 *                                                                             *
 *                               Instance methods                              *
 *                                                                             *
 *******************************************************************************/
/*
 *  The init method should set some default values for your instance variables.
 */
- init
{
  [super init];

  /*
   *  Initialize your own instance variable here
   */
  return self;
}

/*
 *  The copy method should be implemented. 
 *  Duplicate the receiver.
 */
- copy
{
  MyCX3DObject *obj = [super copy];
  /*
   *  Copy your own instance variable here
   */
  return self;
}

/*
 *  This method render the object.
 *  You can use Renderman functions inside
 *  this method. You should begin this method
 *  by if( [super render] ) { ... 
 */
- render
{
  if( [super render] )
    {
      /*
       *  Use Renderman functions here
       */
    }
  return self;
}

/*
 *  This method should returns the bounding box of your instance.
 *  You have to implement this method.
 */
- getBoundingBox:(RtBound) aBox
{
  BB_MINX( aBox ) = 0.0;
  BB_MAXX( aBox ) = 0.0;
  BB_MINY( aBox ) = 0.0;
  BB_MAXY( aBox ) = 0.0;
  BB_MINZ( aBox ) = 0.0;
  BB_MAXZ( aBox ) = 0.0;
  return self;
}

/*
 *  This method returns the class of the inspector you want to use
 *  for your new object. You can return nil.
 */
- attributeInspClass
{
  return nil;
}

@end



