Merge branch 'master' into issue_216

pull/1558/head
Kim Kulling 2017-11-12 11:04:51 +01:00
commit 9206d1b62b
40 changed files with 209 additions and 119 deletions

View File

@ -310,7 +310,7 @@ foreach (GCOV_FILE ${GCOV_FILES})
message("MD5: ${GCOV_SRC_PATH} = ${GCOV_CONTENTS_MD5}")
# Loads the gcov file as a list of lines.
# (We first open the file and replace all occurences of [] with _
# (We first open the file and replace all occurrences of [] with _
# because CMake will fail to parse a line containing unmatched brackets...
# also the \ to escaped \n in macros screws up things.)
# https://public.kitware.com/Bug/view.php?id=15369
@ -329,7 +329,7 @@ foreach (GCOV_FILE ${GCOV_FILES})
# Instead of trying to parse the source from the
# gcov file, simply read the file contents from the source file.
# (Parsing it from the gcov is hard because C-code uses ; in many places
# which also happens to be the same as the CMake list delimeter).
# which also happens to be the same as the CMake list delimiter).
file(READ ${GCOV_SRC_PATH} GCOV_FILE_SOURCE)
string(REPLACE "\\" "\\\\" GCOV_FILE_SOURCE "${GCOV_FILE_SOURCE}")

View File

@ -249,7 +249,7 @@ private:
/// \fn size_t PostprocessHelper_GetTextureID_Or_Create(const std::string& pID_R, const std::string& pID_G, const std::string& pID_B, const std::string& pID_A)
/// Return converted texture ID which related to specified source textures ID's. If converted texture does not exist then it will be created and ID on new
/// converted texture will be returned. Convertion: set of textures from \ref CAMFImporter_NodeElement_Texture to one \ref SPP_Texture and place it
/// converted texture will be returned. Conversion: set of textures from \ref CAMFImporter_NodeElement_Texture to one \ref SPP_Texture and place it
/// to converted textures list.
/// Any of source ID's can be absent(empty string) or even one ID only specified. But at least one ID must be specified.
/// \param [in] pID_R - ID of source "red" texture.
@ -378,7 +378,7 @@ private:
void XML_CheckNode_MustHaveChildren();
/// \fn bool XML_CheckNode_NameEqual(const std::string& pNodeName)
/// Chek if current node name is equal to pNodeName.
/// Check if current node name is equal to pNodeName.
/// \param [in] pNodeName - name for checking.
/// return true if current node name is equal to pNodeName, else - false.
bool XML_CheckNode_NameEqual(const std::string& pNodeName) { return mReader->getNodeName() == pNodeName; }

View File

@ -137,7 +137,7 @@ struct CAMFImporter_NodeElement_Instance : public CAMFImporter_NodeElement
{
/****************** Variables ******************/
std::string ObjectID;///< ID of object for instanciation.
std::string ObjectID;///< ID of object for instantiation.
/// \var Delta - The distance of translation in the x, y, or z direction, respectively, in the referenced object's coordinate system, to
/// create an instance of the object in the current constellation.
aiVector3D Delta;

View File

@ -1561,7 +1561,7 @@ void ColladaExporter::WriteNode( const aiScene* pScene, aiNode* pNode)
for( size_t a = 0; a < pNode->mNumMeshes; ++a )
{
const aiMesh* mesh = mScene->mMeshes[pNode->mMeshes[a]];
// do not instanciate mesh if empty. I wonder how this could happen
// do not instantiate mesh if empty. I wonder how this could happen
if( mesh->mNumFaces == 0 || mesh->mNumVertices == 0 )
continue;

View File

@ -302,7 +302,7 @@ struct Accessor
size_t mOffset; // in number of values
size_t mStride; // Stride in number of values
std::vector<std::string> mParams; // names of the data streams in the accessors. Empty string tells to ignore.
size_t mSubOffset[4]; // Suboffset inside the object for the common 4 elements. For a vector, thats XYZ, for a color RGBA and so on.
size_t mSubOffset[4]; // Suboffset inside the object for the common 4 elements. For a vector, that's XYZ, for a color RGBA and so on.
// For example, SubOffset[0] denotes which of the values inside the object is the vector X component.
std::string mSource; // URL of the source array
mutable const Data* mData; // Pointer to the source array, if resolved. NULL else

View File

@ -1619,7 +1619,7 @@ void ColladaLoader::FillMaterials( const ColladaParser& pParser, aiScene* /*pSce
mat.AddProperty( &effect.mRefractIndex, 1, AI_MATKEY_REFRACTI);
// transparency, a very hard one. seemingly not all files are following the
// specification here (1.0 transparency => completly opaque)...
// specification here (1.0 transparency => completely opaque)...
// therefore, we let the opportunity for the user to manually invert
// the transparency if necessary and we add preliminary support for RGB_ZERO mode
if(effect.mTransparency >= 0.f && effect.mTransparency <= 1.f) {

View File

@ -224,7 +224,7 @@ void ColladaParser::ReadStructure()
}
// ------------------------------------------------------------------------------------------------
// Reads asset informations such as coordinate system informations and legal blah
// Reads asset information such as coordinate system information and legal blah
void ColladaParser::ReadAssetInfo()
{
if( mReader->isEmptyElement())

View File

@ -77,7 +77,7 @@ namespace Assimp
/** Reads the structure of the file */
void ReadStructure();
/** Reads asset informations such as coordinate system informations and legal blah */
/** Reads asset information such as coordinate system information and legal blah */
void ReadAssetInfo();
/** Reads the animation library */

View File

@ -46,11 +46,13 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#ifndef INCLUDED_AI_FI_READER_H
#define INCLUDED_AI_FI_READER_H
#include <irrXML.h>
#include <memory>
#include <string>
#include <cerrno>
#include <cwchar>
#include <memory>
#include <vector>
#include <cstdint>
#include <irrXML.h>
namespace Assimp {
@ -154,7 +156,7 @@ class IOStream;
class FIReader: public irr::io::IIrrXMLReader<char, irr::io::IXMLBase> {
public:
virtual ~FIReader();
virtual std::shared_ptr<const FIValue> getAttributeEncodedValue(int idx) const = 0;
virtual std::shared_ptr<const FIValue> getAttributeEncodedValue(const char *name) const = 0;
@ -167,6 +169,11 @@ public:
};// class IFIReader
inline
FIReader::~FIReader() {
// empty
}
}// namespace Assimp
#endif // INCLUDED_AI_FI_READER_H

View File

@ -483,7 +483,7 @@ void LWOImporter::FindVCChannels(const LWO::Surface& surf, LWO::SortedRep& sorte
const LWO::VColorChannel& vc = layer.mVColorChannels[i];
if (surf.mVCMap == vc.name) {
// The vertex color map is explicitely requested by the surface so we need to take special care of it
// The vertex color map is explicitly requested by the surface so we need to take special care of it
for (unsigned int a = 0; a < std::min(next,AI_MAX_NUMBER_OF_COLOR_SETS-1u); ++a) {
out[a+1] = out[a];
}

View File

@ -471,7 +471,7 @@ void LWSImporter::BuildGraph(aiNode* nd, LWS::NodeDesc& src, std::vector<Attachm
// Determine the exact location of a LWO file
std::string LWSImporter::FindLWOFile(const std::string& in)
{
// insert missing directory seperator if necessary
// insert missing directory separator if necessary
std::string tmp;
if (in.length() > 3 && in[1] == ':'&& in[2] != '\\' && in[2] != '/')
{

View File

@ -155,7 +155,7 @@ std::string ObjExporter :: GetMaterialLibName()
// ------------------------------------------------------------------------------------------------
std::string ObjExporter::GetMaterialLibFileName() {
// Remove existing .obj file extention so that the final material file name will be fileName.mtl and not fileName.obj.mtl
// Remove existing .obj file extension so that the final material file name will be fileName.mtl and not fileName.obj.mtl
size_t lastdot = filename.find_last_of('.');
if (lastdot != std::string::npos)
return filename.substr(0, lastdot) + MaterialExt;

View File

@ -258,7 +258,7 @@ aiMaterial* OgreImporter::ReadMaterial(const std::string &pFile, Assimp::IOSyste
ReadTechnique(Trim(techniqueName), ss, material);
}
// Read informations from a custom material
// Read information from a custom material
/** @todo This "set $x y" does not seem to be a official Ogre material system feature.
Materials can inherit other materials and override texture units by using the (unique)
parent texture unit name in your cloned material.

View File

@ -317,7 +317,7 @@ void TextureTransformStep::Execute( aiScene* pScene)
info.lockedPos = AI_TT_UV_IDX_LOCK_TBD;
}
// Get all coresponding meshes
// Get all corresponding meshes
for (unsigned int n = 0; n < pScene->mNumMeshes;++n) {
aiMesh* mesh = pScene->mMeshes[n];
if (mesh->mMaterialIndex != i || !mesh->mTextureCoords[0])

View File

@ -27,7 +27,7 @@ namespace Assimp
///
/// Pay attention that X3D is format for interactive graphic and simulations for web browsers. aiScene can not contain all features of the X3D format.
/// Also, aiScene contain rasterized-like data. For example, X3D can describe circle all cylinder with one tag, but aiScene contain result of tesselation:
/// vertices, faces etc. Yes, you can use algorithm for detecting figures or shapes, but thats not good idea at all.
/// vertices, faces etc. Yes, you can use algorithm for detecting figures or shapes, but that's not a good idea at all.
///
/// Supported nodes:
/// Core component:
@ -96,7 +96,7 @@ private:
aiMatrix4x4 Matrix_GlobalToCurrent(const aiNode& pNode) const;
/// \fn void AttrHelper_CommaToPoint(std::string& pStringWithComma)
/// Convert commas in string to points. Thats need because "std::to_string" result depend on locale (regional settings).
/// Convert commas in string to points. That's needed because "std::to_string" result depends on locale (regional settings).
/// \param [in, out] pStringWithComma - reference to string, which must be modified.
void AttrHelper_CommaToPoint(std::string& pStringWithComma) { for(char& c: pStringWithComma) { if(c == ',') c = '.'; } }

View File

@ -176,7 +176,7 @@ namespace Assimp {
/// Ignored attributes: "creaseAngle", "convex", "solid".
///
/// Texture coordinates generating: only for Sphere, Cone, Cylinder. In all other case used PLANE mapping.
/// It's better that Assimp main code has powerfull texture coordinates generator. Then is not needed to
/// It's better that Assimp main code has powerful texture coordinates generator. Then is not needed to
/// duplicate this code in every importer.
///
/// Lighting limitations.
@ -401,10 +401,10 @@ private:
/************** Functions: XML set *************/
/***********************************************/
/// Chek if current node is empty: <node />. If not then exception will throwed.
/// Check if current node is empty: <node />. If not then exception will throwed.
void XML_CheckNode_MustBeEmpty();
/// Chek if current node name is equal to pNodeName.
/// Check if current node name is equal to pNodeName.
/// \param [in] pNodeName - name for checking.
/// return true if current node name is equal to pNodeName, else - false.
bool XML_CheckNode_NameEqual(const std::string& pNodeName) { return mReader->getNodeName() == pNodeName; }

View File

@ -971,6 +971,8 @@ namespace glTF2
Ref<T> Create(const std::string& id)
{ return Create(id.c_str()); }
unsigned int Remove(const char* id);
inline unsigned int Size() const
{ return unsigned(mObjs.size()); }

View File

@ -193,6 +193,50 @@ inline void LazyDict<T>::DetachFromDocument()
mDict = 0;
}
template<class T>
unsigned int LazyDict<T>::Remove(const char* id)
{
id = T::TranslateId(mAsset, id);
typename IdDict::iterator it = mObjsById.find(id);
if (it == mObjsById.end()) {
throw DeadlyExportError("GLTF: Object with id \"" + std::string(id) + "\" is not found");
}
const int index = it->second;
mAsset.mUsedIds[id] = false;
mObjsById.erase(id);
mObjsByOIndex.erase(index);
mObjs.erase(mObjs.begin() + index);
//update index of object in mObjs;
for (size_t i = index; i < mObjs.size(); ++i) {
T *obj = mObjs[i];
obj->index = i;
}
for (IdDict::iterator it = mObjsById.begin(); it != mObjsById.end(); ++it) {
if (it->second <= index) {
continue;
}
mObjsById[it->first] = it->second - 1;
}
for (Dict::iterator it = mObjsByOIndex.begin(); it != mObjsByOIndex.end(); ++it) {
if (it->second <= index) {
continue;
}
mObjsByOIndex[it->first] = it->second - 1;
}
return index;
}
template<class T>
Ref<T> LazyDict<T>::Retrieve(unsigned int i)
{

View File

@ -56,7 +56,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <assimp/material.h>
#include <assimp/scene.h>
// Header files, standart library.
// Header files, standard library.
#include <memory>
#include <inttypes.h>
@ -800,9 +800,33 @@ void glTF2Exporter::MergeMeshes()
for (unsigned int m = nMeshes - 1; m >= 1; --m) {
Ref<Mesh> mesh = node->meshes.at(m);
firstMesh->primitives.insert(firstMesh->primitives.end(), mesh->primitives.begin(), mesh->primitives.end());
//append this mesh's primitives to the first mesh's primitives
firstMesh->primitives.insert(
firstMesh->primitives.end(),
mesh->primitives.begin(),
mesh->primitives.end()
);
node->meshes.erase(node->meshes.begin() + m);
//remove the mesh from the list of meshes
unsigned int removedIndex = mAsset->meshes.Remove(mesh->id.c_str());
//find the presence of the removed mesh in other nodes
for (unsigned int nn = 0; nn < mAsset->nodes.Size(); ++nn) {
Ref<Node> node = mAsset->nodes.Get(nn);
for (unsigned int mm = 0; mm < node->meshes.size(); ++mm) {
Ref<Mesh>& meshRef = node->meshes.at(mm);
unsigned int meshIndex = meshRef.GetIndex();
if (meshIndex == removedIndex) {
node->meshes.erase(node->meshes.begin() + mm);
} else if (meshIndex > removedIndex) {
Ref<Mesh> newMeshRef = mAsset->meshes.Get(meshIndex - 1);
meshRef = newMeshRef;
}
}
}
}
//since we were looping backwards, reverse the order of merged primitives to their original order

View File

@ -56,7 +56,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <assimp/material.h>
#include <assimp/scene.h>
// Header files, standart library.
// Header files, standard library.
#include <memory>
#include <inttypes.h>

View File

@ -1742,7 +1742,7 @@ UML_LOOK = NO
# the class node. If there are many fields or methods and many nodes the
# graph may become too big to be useful. The UML_LIMIT_NUM_FIELDS
# threshold limits the number of items for each type to make the size more
# managable. Set this to 0 for no limit. Note that the threshold may be
# manageable. Set this to 0 for no limit. Note that the threshold may be
# exceeded by 50% before the limit is enforced.
UML_LIMIT_NUM_FIELDS = 10

View File

@ -60,7 +60,7 @@ that it has not been implemented yet and some (most ...) formats lack proper spe
<b>Stanford Ply</b> ( <i>*.ply</i> )<br>
<b>TrueSpace</b> ( <i>*.cob, *.scn</i> )<sup>2</sup><br><br>
</tt>
See the @link importer_notes Importer Notes Page @endlink for informations, what a specific importer can do and what not.
See the @link importer_notes Importer Notes Page @endlink for information, what a specific importer can do and what not.
Note that although this paper claims to be the official documentation,
http://assimp.sourceforge.net/main_features_formats.html
<br>is usually the most up-to-date list of file formats supported by the library. <br>
@ -81,7 +81,7 @@ formats handle the required endian conversion correctly, so large parts of the l
The assimp linker library and viewer application are provided under the BSD 3-clause license. This basically means
that you are free to use it in open- or closed-source projects, for commercial or non-commercial purposes as you like
as long as you retain the license informations and take own responsibility for what you do with it. For details see
as long as you retain the license information and take own responsibility for what you do with it. For details see
the LICENSE file.
You can find test models for almost all formats in the <assimp_root>/test/models directory. Beware, they're *free*,
@ -1420,7 +1420,7 @@ IFC file properties (IfcPropertySet) are kept as per-node metadata, see aiNode::
This section contains implementations notes for the OgreXML importer.
@subsection overview Overview
Ogre importer is currently optimized for the Blender Ogre exporter, because thats the only one that I use. You can find the Blender Ogre exporter at: http://www.ogre3d.org/forums/viewtopic.php?f=8&t=45922
Ogre importer is currently optimized for the Blender Ogre exporter, because that's the only one that I use. You can find the Blender Ogre exporter at: http://www.ogre3d.org/forums/viewtopic.php?f=8&t=45922
@subsection what What will be loaded?
@ -1434,7 +1434,7 @@ Skeleton: Skeleton with Bone hierarchy (Position and Rotation, but no Scaling in
animations with rotation, translation and scaling keys.
@subsection export_Blender How to export Files from Blender
You can find informations about how to use the Ogreexporter by your own, so here are just some options that you need, so the assimp
You can find information about how to use the Ogreexporter by your own, so here are just some options that you need, so the assimp
importer will load everything correctly:
- Use either "Rendering Material" or "Custom Material" see @ref material
- do not use "Flip Up Axies to Y"
@ -1543,7 +1543,7 @@ Done! Please, share your loader that everyone can profit from it!
@section properties Properties
You can use properties to chance the behavior of you importer. In order to do so, you have to overide BaseImporter::SetupProperties, and specify
You can use properties to chance the behavior of you importer. In order to do so, you have to override BaseImporter::SetupProperties, and specify
you custom properties in config.h. Just have a look to the other AI_CONFIG_IMPORT_* defines and you will understand, how it works.
The properties can be set with Importer::SetProperty***() and can be accessed in your SetupProperties function with Importer::GetProperty***(). You can

View File

@ -903,7 +903,7 @@ enum aiComponent
/** @brief Set the tessellation for IFC cylindrical shapes.
*
* This is used by the IFC importer to determine the tessellation parameter
* for cylindrical shapes, i.e. the number of segments used to aproximate a circle.
* for cylindrical shapes, i.e. the number of segments used to approximate a circle.
* @note The default value is AI_IMPORT_IFC_DEFAULT_CYLINDRICAL_TESSELLATION and the
* accepted values are in range [3, 180].
* Property type: Integer.

View File

@ -206,7 +206,7 @@ class MeshKey(Structure):
("mTime", c_double),
# Index into the aiMesh::mAnimMeshes array of the
# mesh coresponding to the
# mesh corresponding to the
#aiMeshAnim hosting this
# key frame. The referenced anim mesh is evaluated
# according to the rules defined in the docs for

View File

@ -895,7 +895,7 @@ class PyAssimp3DViewer:
aspect = camera.aspect
u = 0.1 # unit size (in m)
l = 3 * u # lenght of the camera cone
l = 3 * u # length of the camera cone
f = 3 * u # aperture of the camera cone
glPushMatrix()

View File

@ -897,7 +897,7 @@ class PyAssimp3DViewer:
aspect = camera.aspect
u = 0.1 # unit size (in m)
l = 3 * u # lenght of the camera cone
l = 3 * u # length of the camera cone
f = 3 * u # aperture of the camera cone
glPushMatrix()

View File

@ -583,7 +583,7 @@ def clip_matrix(left, right, bottom, top, near, far, perspective=False):
orthographic canonical view volume (a box).
Homogeneous coordinates transformed by the perspective clip matrix
need to be dehomogenized (devided by w coordinate).
need to be dehomogenized (divided by w coordinate).
>>> frustrum = numpy.random.rand(6)
>>> frustrum[1] += frustrum[0]

View File

@ -51,7 +51,7 @@ import assimp.types;
extern ( C ) {
/*
* These limits are required to match the settings Assimp was compiled
* against. Therfore, do not redefine them unless you build the library
* against. Therefore, do not redefine them unless you build the library
* from source using the same definitions.
*/

View File

@ -1951,7 +1951,7 @@ error:
if (NULL == exception)
{
/* thats really a problem because we cannot throw in this case */
/* that's really a problem because we cannot throw in this case */
env->FatalError("could not throw java.io.IOException");
}
gLastErrorString = imp.GetErrorString();

View File

@ -114,7 +114,7 @@
%include "interface/IOSystem.i"
// We have to "instanciate" the templates used by the ASSSIMP_*_ARRAY macros
// We have to "instantiate" the templates used by the ASSSIMP_*_ARRAY macros
// here at the end to avoid running into forward reference issues (SWIG would
// spit out the helper functions before the header includes for the element
// types otherwise).

View File

@ -641,7 +641,7 @@ static CVReturn MyDisplayLinkCallback(CVDisplayLinkRef displayLink,const CVTimeS
{
for(MeshHelper* helper in modelMeshes)
{
// Set up meterial state.
// Set up material state.
glCallList(helper.displayList);
}
}

View File

@ -179,7 +179,7 @@ extern void exit(int);
glutSpecialUpFunc, glutIgnoreKeyRepeat, glutSetKeyRepeat,
glutJoystickFunc, glutForceJoystickFunc (NOT FINALIZED!).
**/
#ifndef GLUT_API_VERSION /* allow this to be overriden */
#ifndef GLUT_API_VERSION /* allow this to be overridden */
#define GLUT_API_VERSION 3
#endif
@ -219,7 +219,7 @@ extern void exit(int);
GLUT_XLIB_IMPLEMENTATION=15 mjk's GLUT 3.7 beta sync'ed with Mesa <GL/glut.h>
**/
#ifndef GLUT_XLIB_IMPLEMENTATION /* Allow this to be overriden. */
#ifndef GLUT_XLIB_IMPLEMENTATION /* Allow this to be overridden. */
#define GLUT_XLIB_IMPLEMENTATION 15
#endif

View File

@ -52,24 +52,55 @@ INCLUDE_DIRECTORIES(
# Assimp library can be found, even if it is not installed system-wide yet.
LINK_DIRECTORIES( ${Assimp_BINARY_DIR} ${AssetImporter_BINARY_DIR}/lib )
SOURCE_GROUP( unit FILES
unit/CCompilerTest.c
)
SET( TEST_SRCS
SET( COMMON
unit/utIOSystem.cpp
unit/utIOStreamBuffer.cpp
unit/utIssues.cpp
unit/utAnim.cpp
unit/AssimpAPITest.cpp
unit/utBatchLoader.cpp
unit/utDefaultIOStream.cpp
unit/utFastAtof.cpp
unit/utMetadata.cpp
unit/SceneDiffer.h
unit/SceneDiffer.cpp
unit/UTLogStream.h
unit/AbstractImportExportBase.cpp
unit/TestIOSystem.h
unit/TestModelFactory.h
unit/utTypes.cpp
unit/utVersion.cpp
unit/utProfiler.cpp
unit/utSharedPPData.cpp
unit/utStringUtils.cpp
)
SET( IMPORTERS
unit/utLWSImportExport.cpp
unit/utSMDImportExport.cpp
unit/utglTFImportExport.cpp
unit/utglTF2ImportExport.cpp
unit/utHMPImportExport.cpp
unit/utIFCImportExport.cpp
unit/utFBXImporterExporter.cpp
unit/utImporter.cpp
unit/ut3DImportExport.cpp
unit/ut3DSImportExport.cpp
unit/utACImportExport.cpp
unit/utAMFImportExport.cpp
unit/utASEImportExport.cpp
unit/utAnim.cpp
unit/AssimpAPITest.cpp
unit/utB3DImportExport.cpp
unit/utBatchLoader.cpp
unit/utD3MFImportExport.cpp
unit/utQ3DImportExport.cpp
unit/utSTLImportExport.cpp
unit/utXImporterExporter.cpp
unit/utX3DImportExport.cpp
unit/utDXFImporterExporter.cpp
unit/utPMXImporter.cpp
unit/utPLYImportExport.cpp
unit/utObjImportExport.cpp
unit/utObjTools.cpp
unit/utOpenGEXImportExport.cpp
unit/utSIBImporter.cpp
unit/utBlenderIntermediate.cpp
unit/utBlendImportAreaLight.cpp
unit/utBlenderImportExport.cpp
@ -79,78 +110,60 @@ SET( TEST_SRCS
unit/utColladaExportLight.cpp
unit/utColladaImportExport.cpp
unit/utCSMImportExport.cpp
unit/utDefaultIOStream.cpp
unit/utDXFImporterExporter.cpp
unit/utFastAtof.cpp
unit/utFBXImporterExporter.cpp
unit/utFindDegenerates.cpp
unit/utFindInvalidData.cpp
unit/utFixInfacingNormals.cpp
unit/utGenNormals.cpp
unit/utglTFImportExport.cpp
unit/utglTF2ImportExport.cpp
unit/utHMPImportExport.cpp
unit/utIFCImportExport.cpp
unit/utImporter.cpp
unit/utImproveCacheLocality.cpp
unit/utIOSystem.cpp
unit/utIOStreamBuffer.cpp
unit/utIssues.cpp
unit/utJoinVertices.cpp
unit/utLimitBoneWeights.cpp
unit/utLWSImportExport.cpp
unit/utB3DImportExport.cpp
)
SET( MATERIAL
unit/utMaterialSystem.cpp
)
SET( MATH
unit/utMatrix3x3.cpp
unit/utMatrix4x4.cpp
unit/utMetadata.cpp
unit/SceneDiffer.h
unit/SceneDiffer.cpp
unit/utSIBImporter.cpp
unit/utObjImportExport.cpp
unit/utObjTools.cpp
unit/utOpenGEXImportExport.cpp
unit/utPretransformVertices.cpp
unit/utPLYImportExport.cpp
unit/utPMXImporter.cpp
unit/utRemoveComments.cpp
unit/utRemoveComponent.cpp
unit/utScenePreprocessor.cpp
unit/utSceneCombiner.cpp
unit/utSharedPPData.cpp
unit/utStringUtils.cpp
unit/utSMDImportExport.cpp
unit/utSortByPType.cpp
unit/utSplitLargeMeshes.cpp
unit/utTargetAnimation.cpp
unit/utTextureTransform.cpp
unit/utTriangulate.cpp
unit/utTypes.cpp
unit/utVertexTriangleAdjacency.cpp
unit/utVersion.cpp
unit/utVector3.cpp
unit/utXImporterExporter.cpp
unit/utX3DImportExport.cpp
unit/utD3MFImportExport.cpp
unit/utQ3DImportExport.cpp
unit/utSTLImportExport.cpp
unit/utProfiler.cpp
)
SET( POST_PROCESSES
unit/utImproveCacheLocality.cpp
unit/utFixInfacingNormals.cpp
unit/utGenNormals.cpp
unit/utTriangulate.cpp
unit/utTextureTransform.cpp
unit/utRemoveRedundantMaterials.cpp
unit/utRemoveVCProcess.cpp
unit/utScaleProcess.cpp
unit/utJoinVertices.cpp
unit/utRemoveComments.cpp
unit/utRemoveComponent.cpp
unit/utVertexTriangleAdjacency.cpp
unit/utJoinVertices.cpp
unit/utSplitLargeMeshes.cpp
unit/utFindDegenerates.cpp
unit/utFindInvalidData.cpp
unit/utLimitBoneWeights.cpp
unit/utPretransformVertices.cpp
unit/utScenePreprocessor.cpp
unit/utTargetAnimation.cpp
unit/utSortByPType.cpp
unit/utSceneCombiner.cpp
)
SOURCE_GROUP( tests FILES ${TEST_SRCS} )
SOURCE_GROUP( tests/PostProcess FILES ${POST_PROCESSES})
SOURCE_GROUP( UnitTests\\Compiler FILES unit/CCompilerTest.c )
SOURCE_GROUP( UnitTests\\Common FILES ${COMMON} )
SOURCE_GROUP( UnitTests\\Importers FILES ${IMPORTERS} )
SOURCE_GROUP( UnitTests\\Material FILES ${MATERIAL} )
SOURCE_GROUP( UnitTests\\Math FILES ${MATH} )
SOURCE_GROUP( UnitTests\\PostProcess FILES ${POST_PROCESSES})
add_executable( unit
../contrib/gtest/src/gtest-all.cc
unit/CCompilerTest.c
unit/Main.cpp
../code/Version.cpp
${TEST_SRCS}
${COMMON}
${IMPORTERS}
${MATERIAL}
${MATH}
${POST_PROCESSES}
)

View File

@ -32,7 +32,7 @@ L'utilizzo della Creative Commons non influisce su questo diritto.
************************************************
This model is released under Creative Commons Licence, Attribution 2.0
for informations see:
for information see:
http://creativecommons.org
http://creativecommons.org/licenses/by/2.0/
feel free to use and improve it.

View File

@ -1 +1 @@
Simple models for testing importer. No desription because models are simple and created by hands.
Simple models for testing importer. No description because models are simple and created by hand.

View File

@ -561,7 +561,7 @@ void CGLView::Enable_Textures(const bool pEnable)
}
/********************************************************************/
/*********************** Overrided functions ************************/
/*********************** Override functions ************************/
/********************************************************************/
void CGLView::initializeGL()

View File

@ -249,13 +249,13 @@ private:
void Draw_BBox(const SBBox& pBBox);
/********************************************************************/
/*********************** Overrided functions ************************/
/*********************** Override functions ************************/
/********************************************************************/
protected:
void drawCoordSystem();
/// \fn void initializeGL() override
/// Overrided function for initialise OpenGL.
/// Override function to initialise OpenGL.
void initializeGL() override;
/// \fn void resizeGL(int pWidth, int pHeight) override
@ -264,7 +264,7 @@ protected:
void resizeGL(int pWidth, int pHeight) override;
/// \fn void paintGL() override
/// Overrided function for rendering.
/// Override function for rendering.
void paintGL() override;
public:

View File

@ -107,7 +107,7 @@ void MainWindow::LogError(const QString& pMessage)
}
/********************************************************************/
/*********************** Overrided functions ************************/
/*********************** Override functions ************************/
/********************************************************************/
void MainWindow::mousePressEvent(QMouseEvent* pEvent)

View File

@ -65,23 +65,23 @@ private:
void LogError(const QString& pMessage);
/********************************************************************/
/*********************** Overrided functions ************************/
/*********************** Override functions ************************/
/********************************************************************/
protected:
/// \fn void mousePressEvent(QMouseEvent* pEvent) override
/// Overrided function which handle mouse event "button pressed".
/// Override function which handles mouse event "button pressed".
/// \param [in] pEvent - pointer to event data.
void mousePressEvent(QMouseEvent* pEvent) override;
/// \fn void mouseMoveEvent(QMouseEvent* pEvent) override
/// Overrided function which handle mouse event "move".
/// Override function which handles mouse event "move".
/// \param [in] pEvent - pointer to event data.
void mouseMoveEvent(QMouseEvent* pEvent) override;
/// \fn void keyPressEvent(QKeyEvent* pEvent) override
/// Overrided function which handle key event "key pressed".
/// Override function which handles key event "key pressed".
/// \param [in] pEvent - pointer to event data.
void keyPressEvent(QKeyEvent* pEvent) override;

View File

@ -189,7 +189,7 @@ BEGIN
LTEXT "Angle limit (in degrees):",IDC_STATIC,13,10,76,8
LTEXT "The angle limit defines the maximum angle that may be between two adjacent face normals that they're smoothed together.",IDC_STATIC,13,31,253,19
CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,0,113,278,1
LTEXT "This setting is also used during import, but it can be overriden by single model importers to match the original look of a model as closely as possible. Examples include 3DS, ASE and LWO, all of them relying on smoothing groups and their own angle limits. ",IDC_STATIC,13,51,254,33
LTEXT "This setting is also used during import, but it can be overridden by single model importers to match the original look of a model as closely as possible. Examples include 3DS, ASE and LWO, all of them relying on smoothing groups and their own angle limits. ",IDC_STATIC,13,51,254,33
LTEXT "NOTE: New settings don't take effect immediately, use 'Smooth Normals' or 'Reload' to update the model.",IDC_STATIC,14,118,254,22
CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,0,90,277,1
END