VedaLib3DEngine/Object3DMultiplier.h

Go to the documentation of this file.
00001 /*! \file 
00002     \author victorien ferry & www.m4nkind.com
00003     \brief This file applies the GNU LESSER GENERAL PUBLIC LICENSE Version 2.1 , read file COPYING.
00004 */
00005 #ifndef COM_M4NKIND_Object3DMultiplier_H
00006 #define COM_M4NKIND_Object3DMultiplier_H
00007 
00008 #include "PackObjectReference.h"
00009 #include "Object3DVirtual.h"
00010 #include "PackDynamicFloat.h"
00011 /*!
00012     \class  Object3DMultiplier
00013     \ingroup BaseObjectInherited_VedaLib3DEngine
00014     \brief  3D Object that Renders Multiple objects using a particle set.
00015 */
00016 
00017 class Object3DMultiplier : public Object3DVirtual
00018 {
00019 /*==================================================================
00020                                 PUBLIC
00021 ==================================================================*/
00022 public:
00023     /*!
00024         \brief  Constructor. There should only be members initialisation there.
00025     */
00026     Object3DMultiplier(void);
00027 
00028     /*!
00029         \brief  Class Inheritance Descriptors. Also forces a destructor. See BASEOBJECT_DECLARE_... in .cpp
00030     */
00031     BASEOBJECT_DEFINE_CLASS(Object3DMultiplier);
00032     /*!
00033         \brief  Process a real time computing and drawing. Can be extended.
00034         \param  _frameDate a date, in second, which defines the effect cinematic.
00035         \param  _pViewPort description of the viewport where to render.
00036         \param  _rgba red green blue alpha component.
00037         \param  _shapeIndex optional index for multiple shape objects. def to zero.
00038         \param _pModifierList optional ShapeModifierList pointer, to modify objects.
00039     */
00040     virtual void    RenderObject( double _frameDate, 
00041                                     VirtualMachine::InternalViewPort *_pViewPort,
00042                                     const float _rgba[4],
00043                                     unsigned int _shapeIndex=0,
00044                                     ShapeModifierList *_pModifierList=0L );
00045 
00046 #ifdef _ENGINE_EDITABLE_
00047     /*!
00048         \brief  a GUI could need to play, draw, print, or output from any way, a preview of a 
00049                 created object. This is done with this method. sub classes can implement it (or not) in
00050                 any way, to explicit current shape of an object.<br>
00051 
00052         \param  _frameDate a date, in second, which defines the effect cinematic.
00053         \param  _pPreviewViewPort the viewport to render. Can't be 0L.
00054         \param  _pPreviewConfiguration
00055     */
00056     virtual void ProcessPreview(double _frameDate,VirtualMachine::InternalViewPort *_pPreviewViewPort,const PreviewConfiguration *_pPreviewConfiguration);
00057 #endif
00058 /*==================================================================
00059                                 PROTECTED
00060 ==================================================================*/
00061 protected:
00062 
00063     //! object shape.
00064     PackObjectReference m_ShapeReference;
00065     //! particle reference to place the objects:
00066     PackObjectReference m_ParticleSetReference;
00067 
00068     //re? PackDynamicFloat  m_WeightScale;
00069 
00070 
00071 };
00072 
00073 #endif

      /\/\        4         N         k         !         N         D
                      _______  _ __ ___  _____            ___ _ _  ____
     ___________  __//___   /________  |/    / ___________\_______/    \
    /   _   _   \/   _     /    _   /      _/_/____/    _       __     /
   /    /   /       /     /    /    \      \/     /    /    \   \     /
  \\___/___/___/    ¯    _____/_____/       ______\___/_____/\________\\
               \________/_ ___ __ l____\      /elD!  
                 http://www.m4nkind.com \____/