/****************************************************************************
** GMAF - The Geometry Modeling Algorithms Framework
**
** Created : 07132000
**
** Copyright (C) 2000 by Le-Jeng Shiue.  All rights reserved.
**
****************************************************************************/
#ifndef gmafCCSubVisualObject_H
#define gmafCCSubVisualObject_H

#include <vector>

#ifdef _MAM_VERSION
#include <vrs/vrs.h>
#include <mam/mam.h>
#endif _MAM_VERSION

#include "Algorithm/gmafVisualObject.h"

class gmafQuadMap;
class gmafQuad;

/**
  gmafCCSubVisualObject
*/
class gmafCCSubVisualObject : public gmafVisualObject {
// ENUMS
public:

// VARIABLES
/**@name Class Variables */
//@{
protected:
  gmafQuadMap* mpQuadMap;

  vector<gmafQuad*> mQuadList;
private:
//@}

// METHODS
/**@name Class Methods */
//@{
public:
  /**
     Constructor of gmafCCSubVisualObject.
  */   
  gmafCCSubVisualObject(gmafQuadMap* qm);
  /**
     Destructor of gmafCCSubVisualObject.
  */    
  virtual ~gmafCCSubVisualObject();

#ifdef _MAM_VERSION
public:
  virtual MThing* createMAMObject();

protected:
  RSharedObj* visualizeQuadMap(); 
  inline RSharedObj* visualizeQuad(gmafQuad* quad);
  RSharedObj* visualizeQuad(gmafQuad* quad, int style);

#endif _MAM_VERSION

#ifdef _OGL_VERSION
public:
  virtual void display();
#endif _OGL_VERSION
};

#endif gmafCCSubVisualObject_H

