//
// $Id: Object.h,v 1.1 2003/07/24 20:00:30 sarfata Exp $
//
// Copyright vNET Project <vnet@vnet-project.org>
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; see the file COPYING.  If not, write to:
//   The Free Software Foundation, Inc.
//   59 Temple Place, Suite 330
//   Boston, MA 02111 USA
//


#ifndef __OBJECT_H__
#define __OBJECT_H__

#include <vector>
#include "Material.h"


namespace V3d
{
  class PolygonalObject;

  class Object
  {
  protected:
    Material* material;
    //BBox bbox;
    Vector3f center;
    //std::vector<PolygonalObject*> lod_object_list;
    bool selected;
    Object* selected_object;
    std::vector<PolygonalObject*> sub_objects_list;
    //void compute_bb();
   public:
    Object()
    { };
    virtual ~Object(){};
    void set_material(Material* mat)
    { material = mat; };
    const Material* get_material()const{return material;};
    virtual void display()			= 0;
    virtual void scale(float factor)		= 0;
    virtual void scale(Vector3f factor)		= 0;
    virtual void scale_tex(float factor)		= 0;
  };
}

#endif