/*
 * Copyright 1993 by Cub'x Systemes
 * 
 * All Rights Reserved
 *
 * Permission to use, copy, and distribute this software and its
 * documentation for the  purpose of making new intuitiv'3d modules.
 * This copyright notice must appears in all copies that you distribute.
 * The name of Cub'x Systeme should not be used in advertising or publicity
 * without specific, written prior permission. 
 * CUB'X SYSTEMES DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
 * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
 * CUB'X SYSTEMES BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
 * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
 * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
 * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
 * SOFTWARE.
 */
/******************************************************************************* 
 *                                                                             *
 *     Project AdvancedObject                                                  *
 *     ----------------------                                                  *
 *                                                                             *
 *                                                                             *
 *     File: ObjectModule.h                                                    *
 *                                                                             *
 *                                                                             *
 *     Creation date: Wed Jul 28 16:21:17 GMT+0200 1993                        *
 *                                                                             *
 *                                                                             *
 *     Contents: The module that describes the object part.                    *
 *                                                                             *
 *                                                                             *
 *******************************************************************************/

/*
 *  All i3dm text section should include at least one I3dModule
 *  subclass. This class is used to describe the section inside the
 *  intuitiv'3d library (which name / object / icons ... ).
 */

#import "ObjectModule.h"
#import "ColoredPlan.h"
#import "SlideProjector.h"

@implementation ObjectModule

/*
 *  Returns the requested section type
 */
+ (SectionType) requestedSectionType
{
  /*
   *  Return ST3DObject if you want to see your section in the object 
   *  library or ST3DShader if you want to see your section in the shader 
   *  library
   */
  return ST3DObject;
}

/*
 *  This method should fill the list with default instances of classes that
 *  you want to add. Theses classes should inherit of CX3DObject or CX3DShader
 *  according to the requestedSectionType return value.
 */
+ fillObjectList:(List*) aList
{
  [aList addObject:[[[ColoredPlan    alloc] init] setTitle:"Colored Plan"]];
  [aList addObject:[[[SlideProjector alloc] init] setTitle:"Slide projector"]];
  return self;
}

/*
 *  This method returns the module name
 */
+ (const char*) moduleName
{
  return "Advanced object";
}

/*
 *  This method returns the name of the tiff used for the unselected image of the
 *  section (This tiff should be in your bundle)
 *  Please return NULL if you don't have any image.
 */
+ (const char*) unselectedImage
{
  return NULL;
}

/*
 *  This method returns the name of the tiff used for the selected image of the
 *  section (This tiff should be in your .i3dm directory)
 *  Please return NULL if you don't have any image.
 */
+ (const char*) selectedImage
{
  return NULL;
}

@end



