Main Page Modules Namespace List Class Hierarchy Alphabetical List Compound List File List Namespace Members Compound Members File Members Related Pages

# deMeshOpt.hpp

Go to the documentation of this file.

    00001 ///////////////////////////////////////////////////////////////////////////////
    00002 /// @file deMeshOpt.hpp
    00003 ///
    00004 /// @brief Mesh Optimization
    00005 ///
    00006 /// @author Assassin
    00007 ///
    00008 /// This file is the intellectual property of Novus Delta, LLC.. Usage of the
    00009 /// contents of this file is subject to the Destiny3D Member License which
    00010 /// can be found at http://www.destiny3d.com.  Any other usage is prohibited.
    00011 ///
    00012 /// This file is distributed "AS IS" without warranty of any kind.  Novus
    00013 /// Delta, LLC. does not guarantee the fitness of the contents of this file
    00014 /// for any particular purpose.
    00015 ///
    00016 /// Copyright (C) 2001-2003 Novus Delta, LLC. All Rights Reserved.
    00017 ///
    00018 /// <hr>
    00019 ///                                 Change History
    00020 /// <hr>
    00021 ///
    00022 /// @date Feb 2003
    00023 /// @author Assassin
    00024 /// @remarks Creation
    00025 ///
    00026 ///////////////////////////////////////////////////////////////////////////////
    00027
    00028 #ifndef DEMESHOPT_HPP
    00029 #define DEMESHOPT_HPP
    00030
    00031 #include "deGlobalTypes.hpp"
    00032 #include "deBrush.hpp"
    00033
    00034 #define DEMESHOPT_API DEBRUSH_API
    00035
    00036 class IdeMeshOptimizer;
    00037 class IdeVertexBuffer;
    00038 class IdeDriver;
    00039
    00040 /// Gets the IdeMeshOptimizer singleton pointer
    00041 DEMESHOPT_API IdeMeshOptimizer* IdeMeshOptimizer_GetMeshOptPtr();
    00042
    00043 /// class used for optimizing the vertices in a mesh.
    00044 /// Related functions: IdeMeshOptimizer_GetMeshOptPtr
    00045 //class IdeMeshOptimizer
    00046 DE3D_INTERFACE_(IdeMeshOptimizer)
    00047 {
    00048 protected:
    00049     virtual ~IdeMeshOptimizer() {}
    00050 public:
    00051     /// reorders the faces in an index buffer to use a post-transform cache of a given size
    00052     /// @param VBuffer Vertex buffer containing index stream to be optimized
    00053     /// @param VCacheSize Size of the post-transform cache to optimize for
    00054     /// @param CCW Boolean flag for face winding. deTRUE ==> counter-clockwise
    00055     virtual deBoolean OptimizeIndices(IdeVertexBuffer * VBuffer, long VCacheSize, deBoolean CCW) = 0;
    00056     virtual deBoolean ReorderAllData(IdeVertexBuffer * VBuffer, long VCacheSize, deBoolean CCW) = 0;
    00057 };
    00058
    00059
    00060 #endif //DEMESHOPT_HPP