summaryrefslogtreecommitdiff
path: root/libs/assimp/port/PyAssimp/pyassimp/postprocess.py
diff options
context:
space:
mode:
Diffstat (limited to 'libs/assimp/port/PyAssimp/pyassimp/postprocess.py')
-rw-r--r--libs/assimp/port/PyAssimp/pyassimp/postprocess.py530
1 files changed, 0 insertions, 530 deletions
diff --git a/libs/assimp/port/PyAssimp/pyassimp/postprocess.py b/libs/assimp/port/PyAssimp/pyassimp/postprocess.py
deleted file mode 100644
index 0c55d67..0000000
--- a/libs/assimp/port/PyAssimp/pyassimp/postprocess.py
+++ /dev/null
@@ -1,530 +0,0 @@
-# <hr>Calculates the tangents and bitangents for the imported meshes.
-#
-# Does nothing if a mesh does not have normals. You might want this post
-# processing step to be executed if you plan to use tangent space calculations
-# such as normal mapping applied to the meshes. There's a config setting,
-# <tt>#AI_CONFIG_PP_CT_MAX_SMOOTHING_ANGLE<tt>, which allows you to specify
-# a maximum smoothing angle for the algorithm. However, usually you'll
-# want to leave it at the default value.
-#
-aiProcess_CalcTangentSpace = 0x1
-
-## <hr>Identifies and joins identical vertex data sets within all
-# imported meshes.
-#
-# After this step is run, each mesh contains unique vertices,
-# so a vertex may be used by multiple faces. You usually want
-# to use this post processing step. If your application deals with
-# indexed geometry, this step is compulsory or you'll just waste rendering
-# time. <b>If this flag is not specified<b>, no vertices are referenced by
-# more than one face and <b>no index buffer is required<b> for rendering.
-#
-aiProcess_JoinIdenticalVertices = 0x2
-
-## <hr>Converts all the imported data to a left-handed coordinate space.
-#
-# By default the data is returned in a right-handed coordinate space (which
-# OpenGL prefers). In this space, +X points to the right,
-# +Z points towards the viewer, and +Y points upwards. In the DirectX
-# coordinate space +X points to the right, +Y points upwards, and +Z points
-# away from the viewer.
-#
-# You'll probably want to consider this flag if you use Direct3D for
-# rendering. The #aiProcess_ConvertToLeftHanded flag supersedes this
-# setting and bundles all conversions typically required for D3D-based
-# applications.
-#
-aiProcess_MakeLeftHanded = 0x4
-
-## <hr>Triangulates all faces of all meshes.
-#
-# By default the imported mesh data might contain faces with more than 3
-# indices. For rendering you'll usually want all faces to be triangles.
-# This post processing step splits up faces with more than 3 indices into
-# triangles. Line and point primitives are #not# modified! If you want
-# 'triangles only' with no other kinds of primitives, try the following
-# solution:
-# <ul>
-# <li>Specify both #aiProcess_Triangulate and #aiProcess_SortByPType <li>
-# <li>Ignore all point and line meshes when you process assimp's output<li>
-# <ul>
-#
-aiProcess_Triangulate = 0x8
-
-## <hr>Removes some parts of the data structure (animations, materials,
-# light sources, cameras, textures, vertex components).
-#
-# The components to be removed are specified in a separate
-# configuration option, <tt>#AI_CONFIG_PP_RVC_FLAGS<tt>. This is quite useful
-# if you don't need all parts of the output structure. Vertex colors
-# are rarely used today for example... Calling this step to remove unneeded
-# data from the pipeline as early as possible results in increased
-# performance and a more optimized output data structure.
-# This step is also useful if you want to force Assimp to recompute
-# normals or tangents. The corresponding steps don't recompute them if
-# they're already there (loaded from the source asset). By using this
-# step you can make sure they are NOT there.
-#
-# This flag is a poor one, mainly because its purpose is usually
-# misunderstood. Consider the following case: a 3D model has been exported
-# from a CAD app, and it has per-face vertex colors. Vertex positions can't be
-# shared, thus the #aiProcess_JoinIdenticalVertices step fails to
-# optimize the data because of these nasty little vertex colors.
-# Most apps don't even process them, so it's all for nothing. By using
-# this step, unneeded components are excluded as early as possible
-# thus opening more room for internal optimizations.
-#
-aiProcess_RemoveComponent = 0x10
-
-## <hr>Generates normals for all faces of all meshes.
-#
-# This is ignored if normals are already there at the time this flag
-# is evaluated. Model importers try to load them from the source file, so
-# they're usually already there. Face normals are shared between all points
-# of a single face, so a single point can have multiple normals, which
-# forces the library to duplicate vertices in some cases.
-# #aiProcess_JoinIdenticalVertices is #senseless# then.
-#
-# This flag may not be specified together with #aiProcess_GenSmoothNormals.
-#
-aiProcess_GenNormals = 0x20
-
-## <hr>Generates smooth normals for all vertices in the mesh.
-#
-# This is ignored if normals are already there at the time this flag
-# is evaluated. Model importers try to load them from the source file, so
-# they're usually already there.
-#
-# This flag may not be specified together with
-# #aiProcess_GenNormals. There's a configuration option,
-# <tt>#AI_CONFIG_PP_GSN_MAX_SMOOTHING_ANGLE<tt> which allows you to specify
-# an angle maximum for the normal smoothing algorithm. Normals exceeding
-# this limit are not smoothed, resulting in a 'hard' seam between two faces.
-# Using a decent angle here (e.g. 80 degrees) results in very good visual
-# appearance.
-#
-aiProcess_GenSmoothNormals = 0x40
-
-## <hr>Splits large meshes into smaller sub-meshes.
-#
-# This is quite useful for real-time rendering, where the number of triangles
-# which can be maximally processed in a single draw-call is limited
-# by the video driverhardware. The maximum vertex buffer is usually limited
-# too. Both requirements can be met with this step: you may specify both a
-# triangle and vertex limit for a single mesh.
-#
-# The split limits can (and should!) be set through the
-# <tt>#AI_CONFIG_PP_SLM_VERTEX_LIMIT<tt> and <tt>#AI_CONFIG_PP_SLM_TRIANGLE_LIMIT<tt>
-# settings. The default values are <tt>#AI_SLM_DEFAULT_MAX_VERTICES<tt> and
-# <tt>#AI_SLM_DEFAULT_MAX_TRIANGLES<tt>.
-#
-# Note that splitting is generally a time-consuming task, but only if there's
-# something to split. The use of this step is recommended for most users.
-#
-aiProcess_SplitLargeMeshes = 0x80
-
-## <hr>Removes the node graph and pre-transforms all vertices with
-# the local transformation matrices of their nodes.
-#
-# The output scene still contains nodes, however there is only a
-# root node with children, each one referencing only one mesh,
-# and each mesh referencing one material. For rendering, you can
-# simply render all meshes in order - you don't need to pay
-# attention to local transformations and the node hierarchy.
-# Animations are removed during this step.
-# This step is intended for applications without a scenegraph.
-# The step CAN cause some problems: if e.g. a mesh of the asset
-# contains normals and another, using the same material index, does not,
-# they will be brought together, but the first meshes's part of
-# the normal list is zeroed. However, these artifacts are rare.
-# @note The <tt>#AI_CONFIG_PP_PTV_NORMALIZE<tt> configuration property
-# can be set to normalize the scene's spatial dimension to the -1...1
-# range.
-#
-aiProcess_PreTransformVertices = 0x100
-
-## <hr>Limits the number of bones simultaneously affecting a single vertex
-# to a maximum value.
-#
-# If any vertex is affected by more than the maximum number of bones, the least
-# important vertex weights are removed and the remaining vertex weights are
-# renormalized so that the weights still sum up to 1.
-# The default bone weight limit is 4 (defined as <tt>#AI_LMW_MAX_WEIGHTS<tt> in
-# config.h), but you can use the <tt>#AI_CONFIG_PP_LBW_MAX_WEIGHTS<tt> setting to
-# supply your own limit to the post processing step.
-#
-# If you intend to perform the skinning in hardware, this post processing
-# step might be of interest to you.
-#
-aiProcess_LimitBoneWeights = 0x200
-
-## <hr>Validates the imported scene data structure.
-# This makes sure that all indices are valid, all animations and
-# bones are linked correctly, all material references are correct .. etc.
-#
-# It is recommended that you capture Assimp's log output if you use this flag,
-# so you can easily find out what's wrong if a file fails the
-# validation. The validator is quite strict and will find #all#
-# inconsistencies in the data structure... It is recommended that plugin
-# developers use it to debug their loaders. There are two types of
-# validation failures:
-# <ul>
-# <li>Error: There's something wrong with the imported data. Further
-# postprocessing is not possible and the data is not usable at all.
-# The import fails. #Importer::GetErrorString() or #aiGetErrorString()
-# carry the error message around.<li>
-# <li>Warning: There are some minor issues (e.g. 1000000 animation
-# keyframes with the same time), but further postprocessing and use
-# of the data structure is still safe. Warning details are written
-# to the log file, <tt>#AI_SCENE_FLAGS_VALIDATION_WARNING<tt> is set
-# in #aiScene::mFlags<li>
-# <ul>
-#
-# This post-processing step is not time-consuming. Its use is not
-# compulsory, but recommended.
-#
-aiProcess_ValidateDataStructure = 0x400
-
-## <hr>Reorders triangles for better vertex cache locality.
-#
-# The step tries to improve the ACMR (average post-transform vertex cache
-# miss ratio) for all meshes. The implementation runs in O(n) and is
-# roughly based on the 'tipsify' algorithm (see <a href="
-# http:www.cs.princeton.edugfxpubsSander_2007_%3ETRtipsy.pdf">this
-# paper<a>).
-#
-# If you intend to render huge models in hardware, this step might
-# be of interest to you. The <tt>#AI_CONFIG_PP_ICL_PTCACHE_SIZE<tt>config
-# setting can be used to fine-tune the cache optimization.
-#
-aiProcess_ImproveCacheLocality = 0x800
-
-## <hr>Searches for redundantunreferenced materials and removes them.
-#
-# This is especially useful in combination with the
-# #aiProcess_PretransformVertices and #aiProcess_OptimizeMeshes flags.
-# Both join small meshes with equal characteristics, but they can't do
-# their work if two meshes have different materials. Because several
-# material settings are lost during Assimp's import filters,
-# (and because many exporters don't check for redundant materials), huge
-# models often have materials which are are defined several times with
-# exactly the same settings.
-#
-# Several material settings not contributing to the final appearance of
-# a surface are ignored in all comparisons (e.g. the material name).
-# So, if you're passing additional information through the
-# content pipeline (probably using #magic# material names), don't
-# specify this flag. Alternatively take a look at the
-# <tt>#AI_CONFIG_PP_RRM_EXCLUDE_LIST<tt> setting.
-#
-aiProcess_RemoveRedundantMaterials = 0x1000
-
-## <hr>This step tries to determine which meshes have normal vectors
-# that are facing inwards and inverts them.
-#
-# The algorithm is simple but effective:
-# the bounding box of all vertices + their normals is compared against
-# the volume of the bounding box of all vertices without their normals.
-# This works well for most objects, problems might occur with planar
-# surfaces. However, the step tries to filter such cases.
-# The step inverts all in-facing normals. Generally it is recommended
-# to enable this step, although the result is not always correct.
-#
-aiProcess_FixInfacingNormals = 0x2000
-
-## <hr>This step splits meshes with more than one primitive type in
-# homogeneous sub-meshes.
-#
-# The step is executed after the triangulation step. After the step
-# returns, just one bit is set in aiMesh::mPrimitiveTypes. This is
-# especially useful for real-time rendering where point and line
-# primitives are often ignored or rendered separately.
-# You can use the <tt>#AI_CONFIG_PP_SBP_REMOVE<tt> option to specify which
-# primitive types you need. This can be used to easily exclude
-# lines and points, which are rarely used, from the import.
-#
-aiProcess_SortByPType = 0x8000
-
-## <hr>This step searches all meshes for degenerate primitives and
-# converts them to proper lines or points.
-#
-# A face is 'degenerate' if one or more of its points are identical.
-# To have the degenerate stuff not only detected and collapsed but
-# removed, try one of the following procedures:
-# <br><b>1.<b> (if you support lines and points for rendering but don't
-# want the degenerates)<br>
-# <ul>
-# <li>Specify the #aiProcess_FindDegenerates flag.
-# <li>
-# <li>Set the <tt>AI_CONFIG_PP_FD_REMOVE<tt> option to 1. This will
-# cause the step to remove degenerate triangles from the import
-# as soon as they're detected. They won't pass any further
-# pipeline steps.
-# <li>
-# <ul>
-# <br><b>2.<b>(if you don't support lines and points at all)<br>
-# <ul>
-# <li>Specify the #aiProcess_FindDegenerates flag.
-# <li>
-# <li>Specify the #aiProcess_SortByPType flag. This moves line and
-# point primitives to separate meshes.
-# <li>
-# <li>Set the <tt>AI_CONFIG_PP_SBP_REMOVE<tt> option to
-# @code aiPrimitiveType_POINTS | aiPrimitiveType_LINES
-# @endcode to cause SortByPType to reject point
-# and line meshes from the scene.
-# <li>
-# <ul>
-# @note Degenerate polygons are not necessarily evil and that's why
-# they're not removed by default. There are several file formats which
-# don't support lines or points, and some exporters bypass the
-# format specification and write them as degenerate triangles instead.
-#
-aiProcess_FindDegenerates = 0x10000
-
-## <hr>This step searches all meshes for invalid data, such as zeroed
-# normal vectors or invalid UV coords and removesfixes them. This is
-# intended to get rid of some common exporter errors.
-#
-# This is especially useful for normals. If they are invalid, and
-# the step recognizes this, they will be removed and can later
-# be recomputed, i.e. by the #aiProcess_GenSmoothNormals flag.<br>
-# The step will also remove meshes that are infinitely small and reduce
-# animation tracks consisting of hundreds if redundant keys to a single
-# key. The <tt>AI_CONFIG_PP_FID_ANIM_ACCURACY<tt> config property decides
-# the accuracy of the check for duplicate animation tracks.
-#
-aiProcess_FindInvalidData = 0x20000
-
-## <hr>This step converts non-UV mappings (such as spherical or
-# cylindrical mapping) to proper texture coordinate channels.
-#
-# Most applications will support UV mapping only, so you will
-# probably want to specify this step in every case. Note that Assimp is not
-# always able to match the original mapping implementation of the
-# 3D app which produced a model perfectly. It's always better to let the
-# modelling app compute the UV channels - 3ds max, Maya, Blender,
-# LightWave, and Modo do this for example.
-#
-# @note If this step is not requested, you'll need to process the
-# <tt>#AI_MATKEY_MAPPING<tt> material property in order to display all assets
-# properly.
-#
-aiProcess_GenUVCoords = 0x40000
-
-## <hr>This step applies per-texture UV transformations and bakes
-# them into stand-alone vtexture coordinate channels.
-#
-# UV transformations are specified per-texture - see the
-# <tt>#AI_MATKEY_UVTRANSFORM<tt> material key for more information.
-# This step processes all textures with
-# transformed input UV coordinates and generates a new (pre-transformed) UV channel
-# which replaces the old channel. Most applications won't support UV
-# transformations, so you will probably want to specify this step.
-#
-# @note UV transformations are usually implemented in real-time apps by
-# transforming texture coordinates at vertex shader stage with a 3x3
-# (homogenous) transformation matrix.
-#
-aiProcess_TransformUVCoords = 0x80000
-
-## <hr>This step searches for duplicate meshes and replaces them
-# with references to the first mesh.
-#
-# This step takes a while, so don't use it if speed is a concern.
-# Its main purpose is to workaround the fact that many export
-# file formats don't support instanced meshes, so exporters need to
-# duplicate meshes. This step removes the duplicates again. Please
-# note that Assimp does not currently support per-node material
-# assignment to meshes, which means that identical meshes with
-# different materials are currently #not# joined, although this is
-# planned for future versions.
-#
-aiProcess_FindInstances = 0x100000
-
-## <hr>A postprocessing step to reduce the number of meshes.
-#
-# This will, in fact, reduce the number of draw calls.
-#
-# This is a very effective optimization and is recommended to be used
-# together with #aiProcess_OptimizeGraph, if possible. The flag is fully
-# compatible with both #aiProcess_SplitLargeMeshes and #aiProcess_SortByPType.
-#
-aiProcess_OptimizeMeshes = 0x200000
-
-
-## <hr>A postprocessing step to optimize the scene hierarchy.
-#
-# Nodes without animations, bones, lights or cameras assigned are
-# collapsed and joined.
-#
-# Node names can be lost during this step. If you use special 'tag nodes'
-# to pass additional information through your content pipeline, use the
-# <tt>#AI_CONFIG_PP_OG_EXCLUDE_LIST<tt> setting to specify a list of node
-# names you want to be kept. Nodes matching one of the names in this list won't
-# be touched or modified.
-#
-# Use this flag with caution. Most simple files will be collapsed to a
-# single node, so complex hierarchies are usually completely lost. This is not
-# useful for editor environments, but probably a very effective
-# optimization if you just want to get the model data, convert it to your
-# own format, and render it as fast as possible.
-#
-# This flag is designed to be used with #aiProcess_OptimizeMeshes for best
-# results.
-#
-# @note 'Crappy' scenes with thousands of extremely small meshes packed
-# in deeply nested nodes exist for almost all file formats.
-# #aiProcess_OptimizeMeshes in combination with #aiProcess_OptimizeGraph
-# usually fixes them all and makes them renderable.
-#
-aiProcess_OptimizeGraph = 0x400000
-
-## <hr>This step flips all UV coordinates along the y-axis and adjusts
-# material settings and bitangents accordingly.
-#
-# <b>Output UV coordinate system:<b>
-# @code
-# 0y|0y ---------- 1x|0y
-# | |
-# | |
-# | |
-# 0x|1y ---------- 1x|1y
-# @endcode
-#
-# You'll probably want to consider this flag if you use Direct3D for
-# rendering. The #aiProcess_ConvertToLeftHanded flag supersedes this
-# setting and bundles all conversions typically required for D3D-based
-# applications.
-#
-aiProcess_FlipUVs = 0x800000
-
-## <hr>This step adjusts the output face winding order to be CW.
-#
-# The default face winding order is counter clockwise (CCW).
-#
-# <b>Output face order:<b>
-# @code
-# x2
-#
-# x0
-# x1
-# @endcode
-#
-aiProcess_FlipWindingOrder = 0x1000000
-
-## <hr>This step splits meshes with many bones into sub-meshes so that each
-# su-bmesh has fewer or as many bones as a given limit.
-#
-aiProcess_SplitByBoneCount = 0x2000000
-
-## <hr>This step removes bones losslessly or according to some threshold.
-#
-# In some cases (i.e. formats that require it) exporters are forced to
-# assign dummy bone weights to otherwise static meshes assigned to
-# animated meshes. Full, weight-based skinning is expensive while
-# animating nodes is extremely cheap, so this step is offered to clean up
-# the data in that regard.
-#
-# Use <tt>#AI_CONFIG_PP_DB_THRESHOLD<tt> to control this.
-# Use <tt>#AI_CONFIG_PP_DB_ALL_OR_NONE<tt> if you want bones removed if and
-# only if all bones within the scene qualify for removal.
-#
-aiProcess_Debone = 0x4000000
-
-aiProcess_GenEntityMeshes = 0x100000
-aiProcess_OptimizeAnimations = 0x200000
-aiProcess_FixTexturePaths = 0x200000
-aiProcess_EmbedTextures = 0x10000000,
-
-## @def aiProcess_ConvertToLeftHanded
- # @brief Shortcut flag for Direct3D-based applications.
- #
- # Supersedes the #aiProcess_MakeLeftHanded and #aiProcess_FlipUVs and
- # #aiProcess_FlipWindingOrder flags.
- # The output data matches Direct3D's conventions: left-handed geometry, upper-left
- # origin for UV coordinates and finally clockwise face order, suitable for CCW culling.
- #
- # @deprecated
- #
-aiProcess_ConvertToLeftHanded = ( \
- aiProcess_MakeLeftHanded | \
- aiProcess_FlipUVs | \
- aiProcess_FlipWindingOrder | \
- 0 )
-
-
-## @def aiProcessPreset_TargetRealtimeUse_Fast
- # @brief Default postprocess configuration optimizing the data for real-time rendering.
- #
- # Applications would want to use this preset to load models on end-user PCs,
- # maybe for direct use in game.
- #
- # If you're using DirectX, don't forget to combine this value with
- # the #aiProcess_ConvertToLeftHanded step. If you don't support UV transformations
- # in your application apply the #aiProcess_TransformUVCoords step, too.
- # @note Please take the time to read the docs for the steps enabled by this preset.
- # Some of them offer further configurable properties, while some of them might not be of
- # use for you so it might be better to not specify them.
- #
-aiProcessPreset_TargetRealtime_Fast = ( \
- aiProcess_CalcTangentSpace | \
- aiProcess_GenNormals | \
- aiProcess_JoinIdenticalVertices | \
- aiProcess_Triangulate | \
- aiProcess_GenUVCoords | \
- aiProcess_SortByPType | \
- 0 )
-
- ## @def aiProcessPreset_TargetRealtime_Quality
- # @brief Default postprocess configuration optimizing the data for real-time rendering.
- #
- # Unlike #aiProcessPreset_TargetRealtime_Fast, this configuration
- # performs some extra optimizations to improve rendering speed and
- # to minimize memory usage. It could be a good choice for a level editor
- # environment where import speed is not so important.
- #
- # If you're using DirectX, don't forget to combine this value with
- # the #aiProcess_ConvertToLeftHanded step. If you don't support UV transformations
- # in your application apply the #aiProcess_TransformUVCoords step, too.
- # @note Please take the time to read the docs for the steps enabled by this preset.
- # Some of them offer further configurable properties, while some of them might not be
- # of use for you so it might be better to not specify them.
- #
-aiProcessPreset_TargetRealtime_Quality = ( \
- aiProcess_CalcTangentSpace | \
- aiProcess_GenSmoothNormals | \
- aiProcess_JoinIdenticalVertices | \
- aiProcess_ImproveCacheLocality | \
- aiProcess_LimitBoneWeights | \
- aiProcess_RemoveRedundantMaterials | \
- aiProcess_SplitLargeMeshes | \
- aiProcess_Triangulate | \
- aiProcess_GenUVCoords | \
- aiProcess_SortByPType | \
- aiProcess_FindDegenerates | \
- aiProcess_FindInvalidData | \
- 0 )
-
- ## @def aiProcessPreset_TargetRealtime_MaxQuality
- # @brief Default postprocess configuration optimizing the data for real-time rendering.
- #
- # This preset enables almost every optimization step to achieve perfectly
- # optimized data. It's your choice for level editor environments where import speed
- # is not important.
- #
- # If you're using DirectX, don't forget to combine this value with
- # the #aiProcess_ConvertToLeftHanded step. If you don't support UV transformations
- # in your application, apply the #aiProcess_TransformUVCoords step, too.
- # @note Please take the time to read the docs for the steps enabled by this preset.
- # Some of them offer further configurable properties, while some of them might not be
- # of use for you so it might be better to not specify them.
- #
-aiProcessPreset_TargetRealtime_MaxQuality = ( \
- aiProcessPreset_TargetRealtime_Quality | \
- aiProcess_FindInstances | \
- aiProcess_ValidateDataStructure | \
- aiProcess_OptimizeMeshes | \
- 0 )
-
-