PixelLightAPI
.
|
00001 /*********************************************************\ 00002 * File: SPMeshPreview.h * 00003 * 00004 * Copyright (C) 2002-2012 The PixelLight Team (http://www.pixellight.org/) 00005 * 00006 * This file is part of PixelLight. 00007 * 00008 * PixelLight is free software: you can redistribute it and/or modify 00009 * it under the terms of the GNU Lesser General Public License as published by 00010 * the Free Software Foundation, either version 3 of the License, or 00011 * (at your option) any later version. 00012 * 00013 * PixelLight is distributed in the hope that it will be useful, 00014 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00015 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00016 * GNU Lesser General Public License for more details. 00017 * 00018 * You should have received a copy of the GNU Lesser General Public License 00019 * along with PixelLight. If not, see <http://www.gnu.org/licenses/>. 00020 \*********************************************************/ 00021 00022 00023 #ifndef __PLMESH_MESH_SURFACEPAINTER_H__ 00024 #define __PLMESH_MESH_SURFACEPAINTER_H__ 00025 #pragma once 00026 00027 00028 //[-------------------------------------------------------] 00029 //[ Includes ] 00030 //[-------------------------------------------------------] 00031 #include <PLRenderer/SPPreview.h> 00032 #include "PLMesh/PLMesh.h" 00033 00034 00035 //[-------------------------------------------------------] 00036 //[ Namespace ] 00037 //[-------------------------------------------------------] 00038 namespace PLMesh { 00039 00040 00041 //[-------------------------------------------------------] 00042 //[ Forward declarations ] 00043 //[-------------------------------------------------------] 00044 class Mesh; 00045 class MeshHandler; 00046 00047 00048 //[-------------------------------------------------------] 00049 //[ Classes ] 00050 //[-------------------------------------------------------] 00051 /** 00052 * @brief 00053 * Mesh preview surface painter class 00054 */ 00055 class SPMeshPreview : public PLRenderer::SPPreview { 00056 00057 00058 //[-------------------------------------------------------] 00059 //[ RTTI interface ] 00060 //[-------------------------------------------------------] 00061 pl_class(PLMESH_RTTI_EXPORT, SPMeshPreview, "PLMesh", PLRenderer::SPPreview, "Mesh preview surface painter class") 00062 // Constructors 00063 pl_constructor_1(ParameterConstructor, PLRenderer::Renderer&, "Parameter constructor", "") 00064 pl_class_end 00065 00066 00067 //[-------------------------------------------------------] 00068 //[ Public functions ] 00069 //[-------------------------------------------------------] 00070 public: 00071 /** 00072 * @brief 00073 * Constructor 00074 * 00075 * @param[in] cRenderer 00076 * Renderer to use 00077 */ 00078 PLMESH_API SPMeshPreview(PLRenderer::Renderer &cRenderer); 00079 00080 /** 00081 * @brief 00082 * Destructor 00083 */ 00084 PLMESH_API virtual ~SPMeshPreview(); 00085 00086 /** 00087 * @brief 00088 * Returns the used mesh 00089 * 00090 * @return 00091 * The used mesh, a null pointer if there's no mesh 00092 */ 00093 PLMESH_API Mesh *GetMesh() const; 00094 00095 /** 00096 * @brief 00097 * Sets the used mesh 00098 * 00099 * @param[in] pMesh 00100 * Mesh to use, can be a null pointer 00101 */ 00102 PLMESH_API void SetMesh(Mesh *pMesh = nullptr); 00103 00104 00105 //[-------------------------------------------------------] 00106 //[ Private data ] 00107 //[-------------------------------------------------------] 00108 private: 00109 MeshHandler *m_pMeshHandler; /**< Mesh handler (always valid!) */ 00110 00111 00112 //[-------------------------------------------------------] 00113 //[ Private virtual PLRenderer::SurfacePainter functions ] 00114 //[-------------------------------------------------------] 00115 private: 00116 virtual void OnPaint(PLRenderer::Surface &cSurface) override; 00117 00118 00119 }; 00120 00121 00122 //[-------------------------------------------------------] 00123 //[ Namespace ] 00124 //[-------------------------------------------------------] 00125 } // PLMesh 00126 00127 00128 #endif // __PLMESH_MESH_SURFACEPAINTER_H__
|