Compare commits

...

2 Commits

Author SHA1 Message Date
Kim Kulling 3a78db66a5 fix some doc-strings. 2020-12-24 09:10:20 +01:00
Kim Kulling 88fa7a0611 fix fixes of docs + update doxygen config. 2020-12-14 19:33:37 +01:00
11 changed files with 82 additions and 86 deletions

View File

@ -5,8 +5,6 @@ Open Asset Import Library (assimp)
Copyright (c) 2006-2020, assimp team
All rights reserved.
Redistribution and use of this software in source and binary forms,
@ -85,7 +83,11 @@ static const aiImporterDesc desc = {
// ------------------------------------------------------------------------------------------------
// Constructor to be privately used by Importer
ASEImporter::ASEImporter() :
mParser(), mBuffer(), pcScene(), configRecomputeNormals(), noSkeletonMesh() {
mParser(),
mBuffer(),
pcScene(),
configRecomputeNormals(),
noSkeletonMesh() {
// empty
}

View File

@ -56,20 +56,20 @@ namespace Assimp {
#ifndef ASSIMP_BUILD_NO_3DS_IMPORTER
// --------------------------------------------------------------------------------
/** Importer class for the 3DS ASE ASCII format.
*
*/
class ASEImporter : public BaseImporter {
/// @brief Importer class for the 3DS ASE ASCII format.
// --------------------------------------------------------------------------------
class ASEImporter final : public BaseImporter {
public:
/// @brief The default class constructor.
ASEImporter();
~ASEImporter();
/// @brief The class destructor.
~ASEImporter() override;
// -------------------------------------------------------------------
/** Returns whether the class can handle the format of the given file.
* See BaseImporter::CanRead() for details.
*/
bool CanRead( const std::string& pFile, IOSystem* pIOHandler,
bool checkSig) const;
/// @brief Returns whether the class can handle the format of the given file.
/// See BaseImporter::CanRead() for details.
bool CanRead( const std::string& pFile, IOSystem* pIOHandler, bool checkSig) const override;
protected:
@ -77,15 +77,14 @@ protected:
/** Return importer meta information.
* See #BaseImporter::GetInfo for the details
*/
const aiImporterDesc* GetInfo () const;
const aiImporterDesc* GetInfo () const override;
// -------------------------------------------------------------------
/** Imports the given file into the given scene structure.
* See BaseImporter::InternReadFile() for details
*/
void InternReadFile( const std::string& pFile, aiScene* pScene,
IOSystem* pIOHandler);
void InternReadFile( const std::string& pFile, aiScene* pScene, IOSystem* pIOHandler) override;
// -------------------------------------------------------------------
@ -93,11 +92,10 @@ protected:
* The function is a request to the importer to update its configuration
* basing on the Importer's configuration property list.
*/
void SetupProperties(const Importer* pImp);
void SetupProperties(const Importer* pImp) override;
private:
// -------------------------------------------------------------------
/** Generate normal vectors basing on smoothing groups
* (in some cases the normal are already contained in the file)
@ -118,7 +116,7 @@ private:
/** Create one-material-per-mesh meshes ;-)
* \param mesh Mesh to work with
* \param Receives the list of all created meshes
* \param avOut Receives the list of all created meshes
*/
void ConvertMeshes(ASE::Mesh& mesh, std::vector<aiMesh*>& avOut);
@ -183,18 +181,9 @@ private:
void GenerateDefaultMaterial();
protected:
/** Parser instance */
ASE::Parser* mParser;
/** Buffer to hold the loaded file */
char* mBuffer;
/** Scene to be filled */
aiScene* pcScene;
/** Config options: Recompute the normals in every case - WA
for 3DS Max broken ASE normal export */
bool configRecomputeNormals;
bool noSkeletonMesh;
};

View File

@ -116,7 +116,7 @@ struct Material : public D3DS::Material {
return *this;
}
~Material() {}
~Material() = default;
//! Contains all sub materials of this material
std::vector<Material> avSubMaterials;
@ -178,7 +178,7 @@ struct Bone {
/** Helper structure to represent an ASE file bone vertex */
struct BoneVertex {
//! Bone and corresponding vertex weight.
//! -1 for unrequired bones ....
//! -1 for not required bones ....
std::vector<std::pair<int, float>> mBoneWeights;
};
@ -239,9 +239,13 @@ struct BaseNode {
Dummy
} mType;
//! Construction from an existing name
BaseNode(Type _mType, const std::string &name) :
mType(_mType), mName(name), mProcessed(false) {
/// Construction from an existing name
/// @param type The node type
/// @param name The node name
BaseNode(Type type, const std::string &name) :
mType(type),
mName(name),
mProcessed(false) {
// Set mTargetPosition to qnan
const ai_real qnan = get_qnan();
mTargetPosition.x = qnan;

Binary file not shown.

View File

@ -197,7 +197,7 @@ SEPARATE_MEMBER_PAGES = NO
# The TAB_SIZE tag can be used to set the number of spaces in a tab.
# Doxygen uses this value to replace tabs by spaces in code fragments.
TAB_SIZE = 8
TAB_SIZE = 4
# This tag can be used to specify a number of aliases that acts
# as commands in the documentation. An alias has the form "name=value".
@ -381,7 +381,7 @@ EXTRACT_STATIC = YES
# defined locally in source files will be included in the documentation.
# If set to NO only classes defined in header files are included.
EXTRACT_LOCAL_CLASSES = YES
EXTRACT_LOCAL_CLASSES = NO
# This flag is only useful for Objective-C code. When set to YES local
# methods, which are defined in the implementation section but not in
@ -663,8 +663,6 @@ WARN_LOGFILE =
# with spaces.
INPUT = @doxy_main_page@ \
@PROJECT_SOURCE_DIR@ \
@PROJECT_BINARY_DIR@ \
@PROJECT_SOURCE_DIR@/include/ \
@PROJECT_SOURCE_DIR@/doc/dox.h \
@PROJECT_SOURCE_DIR@/code/BaseImporter.h
@ -725,7 +723,8 @@ RECURSIVE = YES
# Note that relative paths are relative to the directory from which doxygen is
# run.
EXCLUDE = irrXML.h
EXCLUDE = irrXML.h \
@PROJECT_SOURCE_DIR@/contrib/*
# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
# directories that are symbolic links (a Unix file system feature) are excluded
@ -740,7 +739,8 @@ EXCLUDE_SYMLINKS = NO
# for example use the pattern */test/*
EXCLUDE_PATTERNS = */.svn/* \
*/.svn
*/.svn \
*/.git
# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
# (namespaces, classes, functions, etc.) that should be excluded from the

View File

@ -5,8 +5,6 @@
/**
@mainpage assimp - Open Asset Import Library
<img src="dragonsplash.png"></img>
@section intro Introduction
assimp is a library to load and process geometric scenes from various data formats. It is tailored at typical game
@ -85,7 +83,7 @@ as long as you retain the license information and take own responsibility for wh
the LICENSE file.
You can find test models for almost all formats in the <assimp_root>/test/models directory. Beware, they're *free*,
but not all of them are *open-source*. If there's an accompagning '<file>\source.txt' file don't forget to read it.
but not all of them are *open-source*. If there's an accompagning '<file>\\source.txt' file don't forget to read it.
@section main_install Installation

View File

@ -70,7 +70,7 @@ class ProgressHandler;
* The interface is modeled after the importer interface and mostly
* symmetric. The same rules for threading etc. apply.
*
* In a nutshell, there are two export interfaces: #Export, which writes the
* In a nutshell, there are two export interfaces: #aiExportScene, which writes the
* output file(s) either to the regular file system or to a user-supplied
* #IOSystem, and #ExportToBlob which returns a linked list of memory
* buffers (blob), each referring to one output file (in most cases

View File

@ -4,7 +4,6 @@ Open Asset Import Library (assimp)
Copyright (c) 2006-2020, assimp team
All rights reserved.
Redistribution and use of this software in source and binary forms,
@ -55,8 +54,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <assimp/ai_assert.h>
#include <assimp/types.h>
#include <stddef.h>
#include <stdint.h>
#include <cstddef>
#include <cstdint>
#include <list>
#include <set>
#include <vector>
@ -141,7 +140,7 @@ struct NodeAttachmentInfo {
*/
#define AI_INT_MERGE_SCENE_GEN_UNIQUE_NAMES_IF_NECESSARY 0x10
typedef std::pair<aiBone *, unsigned int> BoneSrcIndex;
using BoneSrcIndex = std::pair<aiBone *, unsigned int>;
// ---------------------------------------------------------------------------
/** @brief Helper data structure for SceneCombiner::MergeBones.
@ -187,7 +186,7 @@ struct SceneHelper {
* scenes. It is intended as internal utility and NOT for use by
* applications.
*
* The class is currently being used by various postprocessing steps
* The class is currently being used by various post-processing steps
* and loaders (ie. LWS).
*/
class ASSIMP_API SceneCombiner {
@ -258,7 +257,7 @@ public:
* @param begin First mesh to be processed
* @param end Points to the mesh after the last mesh to be processed
*/
static void MergeBones(aiMesh *out, std::vector<aiMesh *>::const_iterator it,
static void MergeBones(aiMesh *out, std::vector<aiMesh *>::const_iterator begin,
std::vector<aiMesh *>::const_iterator end);
// -------------------------------------------------------------------
@ -280,11 +279,11 @@ public:
/** Builds a list of uniquely named bones in a mesh list
*
* @param asBones Receives the output list
* @param it First mesh to be processed
* @param begin First mesh to be processed
* @param end Last mesh to be processed
*/
static void BuildUniqueBoneList(std::list<BoneWithHash> &asBones,
std::vector<aiMesh *>::const_iterator it,
std::vector<aiMesh *>::const_iterator begin,
std::vector<aiMesh *>::const_iterator end);
// -------------------------------------------------------------------

View File

@ -64,8 +64,7 @@ namespace Assimp {
* little and big endian format. Don't attempt to instance the template directly. Use
* StreamReaderLE to read from a little-endian stream and StreamReaderBE to read from a
* BE stream. The class expects that the endianness of any input data is known at
* compile-time, which should usually be true (#BaseImporter::ConvertToUTF8 implements
* runtime endianness conversions for text files).
* compile-time, which should usually be true.
*
* XXX switch from unsigned int for size types to size_t? or ptrdiff_t?*/
// --------------------------------------------------------------------------------------------
@ -76,7 +75,8 @@ public:
using pos = size_t;
// ---------------------------------------------------------------------
/** Construction from a given stream with a well-defined endianness.
/**
* @brief Construction from a given stream with a well-defined endianness.
*
* The StreamReader holds a permanent strong reference to the
* stream, which is released upon destruction.
@ -99,6 +99,10 @@ public:
}
// ---------------------------------------------------------------------
/// @brief The class constructor with the steam and the endian working
/// mode.
/// @param stream The input stream to read from.
/// @param The endian working mode.
StreamReader(IOStream *stream, bool le = false) :
mStream(std::shared_ptr<IOStream>(stream)),
mBuffer(nullptr),
@ -111,6 +115,7 @@ public:
}
// ---------------------------------------------------------------------
/// @brief The class destructor.
~StreamReader() {
delete[] mBuffer;
}
@ -332,13 +337,13 @@ private:
typedef StreamReader<true> StreamReaderLE;
typedef StreamReader<false> StreamReaderBE;
#else
typedef StreamReader<true> StreamReaderBE;
typedef StreamReader<false> StreamReaderLE;
using StreamReaderBE = StreamReader<true>;
using StreamReaderLE = StreamReader<false>;
#endif
// `dynamic` StreamReader. The byte order of the input data is specified in the
// c'tor. This involves runtime branching and might be a little bit slower.
typedef StreamReader<true, true> StreamReaderAny;
using StreamReaderAny = StreamReader<true, true>;
} // end namespace Assimp

View File

@ -60,7 +60,7 @@ extern "C" {
struct aiScene;
struct aiFileIO;
typedef void (*aiLogStreamCallback)(const char * /* message */, char * /* user */);
using aiLogStreamCallback = void (*)(const char * /* message */, char * /* user */);
// --------------------------------------------------------------------------------
/** C-API: Represents a log stream. A log stream receives all log messages and
@ -93,7 +93,7 @@ struct aiPropertyStore {
};
/** Our own C boolean type */
typedef int aiBool;
using aiBool = int;
#define AI_FALSE 0
#define AI_TRUE 1
@ -706,7 +706,6 @@ ASSIMP_API int aiVector3AreEqualEpsilon(
/** Check if vector \p a is less than vector \p b.
* @param a First vector to compare
* @param b Second vector to compare
* @param epsilon Epsilon
* @return 1 if \p a is less than \p b
* @return 0 if \p a is equal or greater than \p b
*/
@ -1032,7 +1031,7 @@ ASSIMP_API void aiMatrix4DecomposeIntoScalingEulerAnglesPosition(
* and it's translational components.
*
* @param mat Matrix to decompose
* @param rotation Receives the rotational component
* @param scaling Receives the scaling component
* @param axis Receives the output rotation axis
* @param angle Receives the output rotation angle
* @param position Receives the output position for the x,y,z axes.

View File

@ -410,11 +410,11 @@ struct aiMetadata {
return Get(aiString(key), value);
}
/// Return metadata entry for analyzing it by user.
/// \param [in] pIndex - index of the entry.
/// \param [out] pKey - pointer to the key value.
/// \param [out] pEntry - pointer to the entry: type and value.
/// \return false - if pIndex is out of range, else - true.
/// @brief Return metadata entry for analyzing it by user.
/// @param index [in] index of the entry.
/// @param key [out] pointer to the key value.
/// @param entry [out] pointer to the entry: type and value.
/// @return false - if pIndex is out of range, else - true.
inline bool Get(size_t index, const aiString *&key, const aiMetadataEntry *&entry) const {
if (index >= mNumProperties) {
return false;
@ -426,8 +426,8 @@ struct aiMetadata {
return true;
}
/// Check whether there is a metadata entry for the given key.
/// \param [in] Key - the key value value to check for.
/// @brief Check whether there is a metadata entry for the given key.
/// @param key [in] the key value value to check for.
inline bool HasKey(const char *key) {
if (nullptr == key) {
return false;