1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- #pragma once
- #include "Critical.h"
- #include "Array.h"
- #include "Vec3.h"
- #include "GraphicsApi.h"
- #include "Model3DCollection.h"
- namespace Framework
- {
- class Zeichnung3D;
- class Render3D;
- struct MausEreignis3D;
- class Model3D;
- class DXBuffer;
- class Welt3D;
-
- class Welt3D : public Model3DCollection
- {
- protected:
- DiffuseLight* diffuseLights;
- RCArray< Model3DCollection> modelCollections;
- int diffuseLightCount;
- PointLight* pointLights;
- int pointLightCount;
- private:
- RCArray< Model3D >* members;
- bool rend;
- Critical cs;
- public:
-
- DLLEXPORT Welt3D();
-
- DLLEXPORT virtual ~Welt3D();
-
- DLLEXPORT void lock();
-
- DLLEXPORT void unlock();
-
-
- DLLEXPORT void addZeichnung( Model3D* obj );
-
-
- DLLEXPORT void removeZeichnung( Model3D* zObj );
-
-
- DLLEXPORT void addCollection( Model3DCollection* collection );
-
-
- DLLEXPORT void removeCollection( Model3DCollection* zCollection );
-
-
- DLLEXPORT void doMausEreignis( MausEreignis3D& me );
-
-
-
- DLLEXPORT virtual bool tick( double tickval );
-
-
-
-
- DLLEXPORT virtual int traceRay( Vec3< float >& point, Vec3< float >& dir );
-
- DLLEXPORT virtual void forAll( std::function<void( Model3D* )> f ) override;
-
- DLLEXPORT int getPointLightCount() const;
-
- DLLEXPORT int getDiffuseLightCount() const;
-
-
-
- DLLEXPORT void copyLight( DXBuffer* zDiffuse, DXBuffer* zPoints ) const;
-
-
- DLLEXPORT void addDiffuseLight( DiffuseLight light );
-
-
- DLLEXPORT void addPointLight( PointLight light );
-
-
- DLLEXPORT DiffuseLight& getDiffuseLight( int index ) const;
-
-
- DLLEXPORT PointLight& getPointLight( int index ) const;
- };
- }
|