aiPostProcess.h 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. /** @file Definitions for import post processing steps */
  2. #ifndef AI_POSTPROCESS_H_INC
  3. #define AI_POSTPROCESS_H_INC
  4. #ifdef __cplusplus
  5. extern "C" {
  6. #endif
  7. /** Defines the flags for all possible post processing steps. */
  8. enum aiPostProcessSteps
  9. {
  10. /** Calculates the binormals and tangents for the imported meshes. Does nothing
  11. * if a mesh does not have normals. You might want this post processing step to be
  12. * executed if you plan to use tangent space calculations such as normal mapping
  13. * applied to the meshes.
  14. */
  15. aiProcess_CalcTangentSpace = 1,
  16. /** Identifies and joins identical vertex data sets within all imported meshes.
  17. * After this step is run each mesh does contain only unique vertices anymore,
  18. * so a vertex is possibly used by multiple faces. You propably always want
  19. * to use this post processing step.*/
  20. aiProcess_JoinIdenticalVertices = 2,
  21. /** Converts all the imported data to a left-handed coordinate space such as
  22. * the DirectX coordinate system. By default the data is returned in a right-handed
  23. * coordinate space which for example OpenGL preferres. In this space, +X points to the
  24. * right, +Y points upwards and +Z points to the viewer. In the DirectX coordinate space
  25. * +X points to the right, +Y points upwards and +Z points away from the viewer
  26. * into the screen.
  27. */
  28. aiProcess_ConvertToLeftHanded = 4,
  29. /** Triangulates all faces of all meshes. By default the imported mesh data might
  30. * contain faces with more than 3 indices. For rendering a mesh you usually need
  31. * all faces to be triangles. This post processing step splits up all higher faces
  32. * to triangles.
  33. */
  34. aiProcess_Triangulate = 8,
  35. /** Omits all normals found in the file. This can be used together
  36. * with either the aiProcess_GenNormals or the aiProcess_GenSmoothNormals
  37. * flag to force the recomputation of the normals.
  38. */
  39. aiProcess_KillNormals = 0x10,
  40. /** Generates normals for all faces of all meshes. The normals are shared
  41. * between the three vertices of a face. This is ignored
  42. * if normals are already existing. This flag may not be specified together
  43. * with aiProcess_GenSmoothNormals
  44. */
  45. aiProcess_GenNormals = 0x20,
  46. /** Generates smooth normals for all vertices in the mesh. This is ignored
  47. * if normals are already existing. This flag may not be specified together
  48. * with aiProcess_GenNormals
  49. */
  50. aiProcess_GenSmoothNormals = 0x40,
  51. /** Splits large meshes into submeshes
  52. * This is quite useful for realtime rendering where the number of vertices
  53. * is usually limited by the video driver.
  54. *
  55. * A mesh is split if it consists of more than 1 * 10^6 vertices. This is defined
  56. * in the internal SplitLargeMeshes.h header as AI_SLM_MAX_VERTICES.
  57. */
  58. aiProcess_SplitLargeMeshes = 0x80
  59. };
  60. #ifdef __cplusplus
  61. } // end of extern "C"
  62. #endif
  63. #endif // AI_POSTPROCESS_H_INC