!B (Sandbox) (CE-21795) Importing models with multisubmaterials via fbx switches...
[CRYENGINE.git] / Code / Sandbox / Plugins / LodGeneratorPlugin / control / MeshBakerPopupPreview.h
blob56209e9fcd6d8a923ba5c8dce0e2a65b9d65decc
1 #pragma once
3 #include <QWidget>
4 #include <Cry3DEngine/IIndexedMesh.h>
5 #include "QViewport.h"
7 class QViewport;
8 class CMaterial;
9 class CDisplayViewportAdapter;
11 class CCMeshBakerPopupPreview// : public QWidget
13 public:
14 CCMeshBakerPopupPreview(QViewport * viewPort);
15 virtual ~CCMeshBakerPopupPreview(){}
17 void ReleaseObject();
18 void SetObject(IStatObj * pObj);
19 void SetMaterial(IMaterial* pMat);
20 void SetRotate(bool rotate);
21 void SetWireframe(bool wireframe);
22 void SetGrid(bool grid);
23 void Reset();
26 void OnRender(const SRenderContext& rc);
27 void OnKeyEvent(const SKeyEvent& sKeyEvent);
28 void OnMouseEvent(const SMouseEvent& sMouseEvent);
30 void EnableMaterialPrecaching(bool bPrecacheMaterial) { m_bPrecacheMaterial=bPrecacheMaterial; }
31 void EnableWireframeRendering(bool bDrawWireframe) { m_bDrawWireFrame=bDrawWireframe; }
33 private:
34 void RenderUnwrappedMesh(DisplayContext& dc,const SRenderContext& rc);
35 void RenderUnwrappedLodPolygon(DisplayContext& dc, IIndexedMesh* pIIndexedMesh,const SRenderContext& rc);
36 void RenderUnwrappedLodPolygonUV(DisplayContext& dc, IIndexedMesh* pIIndexedMesh);
38 bool NoMaterialRender(const SRenderContext& rc);
39 bool MaterialRender(const SRenderContext& rc);
40 void RenderObject( IMaterial* pMaterial, SRenderingPassInfo& passInfo );
42 private:
43 QString m_modelPath;
45 bool m_Rotate;
46 IStatObj* m_pObject;
47 bool m_Grid;
48 CMaterial* m_pMat;
49 QViewport * m_ViewPort;
50 std::shared_ptr<CDisplayViewportAdapter> m_pViewportAdapter;
52 bool m_bPrecacheMaterial;
53 bool m_bDrawWireFrame;
54 bool m_bShowObject;
55 bool m_bRotate;
57 float m_rotateAngle;
59 ColorF m_ambientColor;
60 ColorF m_clearColor;
61 f32 m_ambientMultiplier;
63 std::vector<CDLight> m_lights;