xref: /haiku/src/apps/haiku3d/MeshInstance.h (revision 68ea01249e1e2088933cb12f9c28d4e5c5d1c9ef)
1 /*
2  * Copyright 2009, Haiku Inc. All rights reserved.
3  * Distributed under the terms of the MIT License.
4  *
5  * Authors:
6  * 		Alexandre Deckner <alex@zappotek.com>
7  */
8 
9 #ifndef _MESH_INSTANCE_H
10 #define _MESH_INSTANCE_H
11 
12 #include "Mesh.h"
13 #include "Texture.h"
14 #include "Vector3.h"
15 #include "Quaternion.h"
16 
17 
18 class MeshInstance {
19 public:
20 				MeshInstance(Mesh* mesh, Texture* texture,
21 					const Vector3& position, const Quaternion& orientation,
22 					float animOffset);
23 				~MeshInstance();
24 
25 	void		Update(float dt);
26 	void		Render();
27 
28 protected:
29 	BReference<Mesh>	fMeshReference;
30 	BReference<Texture>	fTextureReference;
31 
32 	Vector3		fPosition;
33 	Quaternion	fOrientation;
34 	float		fScale;
35 
36 	// TODO: manage the animation externally
37 	float		fTime;
38 	float		fAnimOffset;
39 
40 	bool		fDoubleSided;
41 	bool		fDrawNormals;
42 };
43 
44 #endif /* _MESH_INSTANCE_H */
45