commit
f0bed87e07
|
@ -310,7 +310,7 @@ foreach (GCOV_FILE ${GCOV_FILES})
|
||||||
message("MD5: ${GCOV_SRC_PATH} = ${GCOV_CONTENTS_MD5}")
|
message("MD5: ${GCOV_SRC_PATH} = ${GCOV_CONTENTS_MD5}")
|
||||||
|
|
||||||
# Loads the gcov file as a list of lines.
|
# 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...
|
# because CMake will fail to parse a line containing unmatched brackets...
|
||||||
# also the \ to escaped \n in macros screws up things.)
|
# also the \ to escaped \n in macros screws up things.)
|
||||||
# https://public.kitware.com/Bug/view.php?id=15369
|
# 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
|
# Instead of trying to parse the source from the
|
||||||
# gcov file, simply read the file contents from the source file.
|
# 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
|
# (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)
|
file(READ ${GCOV_SRC_PATH} GCOV_FILE_SOURCE)
|
||||||
|
|
||||||
string(REPLACE "\\" "\\\\" GCOV_FILE_SOURCE "${GCOV_FILE_SOURCE}")
|
string(REPLACE "\\" "\\\\" GCOV_FILE_SOURCE "${GCOV_FILE_SOURCE}")
|
||||||
|
|
|
@ -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)
|
/// \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
|
/// 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.
|
/// 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.
|
/// 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.
|
/// \param [in] pID_R - ID of source "red" texture.
|
||||||
|
@ -378,7 +378,7 @@ private:
|
||||||
void XML_CheckNode_MustHaveChildren();
|
void XML_CheckNode_MustHaveChildren();
|
||||||
|
|
||||||
/// \fn bool XML_CheckNode_NameEqual(const std::string& pNodeName)
|
/// \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.
|
/// \param [in] pNodeName - name for checking.
|
||||||
/// return true if current node name is equal to pNodeName, else - false.
|
/// return true if current node name is equal to pNodeName, else - false.
|
||||||
bool XML_CheckNode_NameEqual(const std::string& pNodeName) { return mReader->getNodeName() == pNodeName; }
|
bool XML_CheckNode_NameEqual(const std::string& pNodeName) { return mReader->getNodeName() == pNodeName; }
|
||||||
|
|
|
@ -137,7 +137,7 @@ struct CAMFImporter_NodeElement_Instance : public CAMFImporter_NodeElement
|
||||||
{
|
{
|
||||||
/****************** Variables ******************/
|
/****************** 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
|
/// \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.
|
/// create an instance of the object in the current constellation.
|
||||||
aiVector3D Delta;
|
aiVector3D Delta;
|
||||||
|
|
|
@ -1561,7 +1561,7 @@ void ColladaExporter::WriteNode( const aiScene* pScene, aiNode* pNode)
|
||||||
for( size_t a = 0; a < pNode->mNumMeshes; ++a )
|
for( size_t a = 0; a < pNode->mNumMeshes; ++a )
|
||||||
{
|
{
|
||||||
const aiMesh* mesh = mScene->mMeshes[pNode->mMeshes[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 )
|
if( mesh->mNumFaces == 0 || mesh->mNumVertices == 0 )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
|
|
@ -302,7 +302,7 @@ struct Accessor
|
||||||
size_t mOffset; // in number of values
|
size_t mOffset; // in number of values
|
||||||
size_t mStride; // Stride 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.
|
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.
|
// 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
|
std::string mSource; // URL of the source array
|
||||||
mutable const Data* mData; // Pointer to the source array, if resolved. NULL else
|
mutable const Data* mData; // Pointer to the source array, if resolved. NULL else
|
||||||
|
|
|
@ -1619,7 +1619,7 @@ void ColladaLoader::FillMaterials( const ColladaParser& pParser, aiScene* /*pSce
|
||||||
mat.AddProperty( &effect.mRefractIndex, 1, AI_MATKEY_REFRACTI);
|
mat.AddProperty( &effect.mRefractIndex, 1, AI_MATKEY_REFRACTI);
|
||||||
|
|
||||||
// transparency, a very hard one. seemingly not all files are following the
|
// 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
|
// therefore, we let the opportunity for the user to manually invert
|
||||||
// the transparency if necessary and we add preliminary support for RGB_ZERO mode
|
// the transparency if necessary and we add preliminary support for RGB_ZERO mode
|
||||||
if(effect.mTransparency >= 0.f && effect.mTransparency <= 1.f) {
|
if(effect.mTransparency >= 0.f && effect.mTransparency <= 1.f) {
|
||||||
|
|
|
@ -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()
|
void ColladaParser::ReadAssetInfo()
|
||||||
{
|
{
|
||||||
if( mReader->isEmptyElement())
|
if( mReader->isEmptyElement())
|
||||||
|
|
|
@ -77,7 +77,7 @@ namespace Assimp
|
||||||
/** Reads the structure of the file */
|
/** Reads the structure of the file */
|
||||||
void ReadStructure();
|
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();
|
void ReadAssetInfo();
|
||||||
|
|
||||||
/** Reads the animation library */
|
/** Reads the animation library */
|
||||||
|
|
|
@ -483,7 +483,7 @@ void LWOImporter::FindVCChannels(const LWO::Surface& surf, LWO::SortedRep& sorte
|
||||||
const LWO::VColorChannel& vc = layer.mVColorChannels[i];
|
const LWO::VColorChannel& vc = layer.mVColorChannels[i];
|
||||||
|
|
||||||
if (surf.mVCMap == vc.name) {
|
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) {
|
for (unsigned int a = 0; a < std::min(next,AI_MAX_NUMBER_OF_COLOR_SETS-1u); ++a) {
|
||||||
out[a+1] = out[a];
|
out[a+1] = out[a];
|
||||||
}
|
}
|
||||||
|
|
|
@ -471,7 +471,7 @@ void LWSImporter::BuildGraph(aiNode* nd, LWS::NodeDesc& src, std::vector<Attachm
|
||||||
// Determine the exact location of a LWO file
|
// Determine the exact location of a LWO file
|
||||||
std::string LWSImporter::FindLWOFile(const std::string& in)
|
std::string LWSImporter::FindLWOFile(const std::string& in)
|
||||||
{
|
{
|
||||||
// insert missing directory seperator if necessary
|
// insert missing directory separator if necessary
|
||||||
std::string tmp;
|
std::string tmp;
|
||||||
if (in.length() > 3 && in[1] == ':'&& in[2] != '\\' && in[2] != '/')
|
if (in.length() > 3 && in[1] == ':'&& in[2] != '\\' && in[2] != '/')
|
||||||
{
|
{
|
||||||
|
|
|
@ -155,7 +155,7 @@ std::string ObjExporter :: GetMaterialLibName()
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
std::string ObjExporter::GetMaterialLibFileName() {
|
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('.');
|
size_t lastdot = filename.find_last_of('.');
|
||||||
if (lastdot != std::string::npos)
|
if (lastdot != std::string::npos)
|
||||||
return filename.substr(0, lastdot) + MaterialExt;
|
return filename.substr(0, lastdot) + MaterialExt;
|
||||||
|
|
|
@ -258,7 +258,7 @@ aiMaterial* OgreImporter::ReadMaterial(const std::string &pFile, Assimp::IOSyste
|
||||||
ReadTechnique(Trim(techniqueName), ss, material);
|
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.
|
/** @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)
|
Materials can inherit other materials and override texture units by using the (unique)
|
||||||
parent texture unit name in your cloned material.
|
parent texture unit name in your cloned material.
|
||||||
|
|
|
@ -317,7 +317,7 @@ void TextureTransformStep::Execute( aiScene* pScene)
|
||||||
info.lockedPos = AI_TT_UV_IDX_LOCK_TBD;
|
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) {
|
for (unsigned int n = 0; n < pScene->mNumMeshes;++n) {
|
||||||
aiMesh* mesh = pScene->mMeshes[n];
|
aiMesh* mesh = pScene->mMeshes[n];
|
||||||
if (mesh->mMaterialIndex != i || !mesh->mTextureCoords[0])
|
if (mesh->mMaterialIndex != i || !mesh->mTextureCoords[0])
|
||||||
|
|
|
@ -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.
|
/// 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:
|
/// 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:
|
/// Supported nodes:
|
||||||
/// Core component:
|
/// Core component:
|
||||||
|
@ -96,7 +96,7 @@ private:
|
||||||
aiMatrix4x4 Matrix_GlobalToCurrent(const aiNode& pNode) const;
|
aiMatrix4x4 Matrix_GlobalToCurrent(const aiNode& pNode) const;
|
||||||
|
|
||||||
/// \fn void AttrHelper_CommaToPoint(std::string& pStringWithComma)
|
/// \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.
|
/// \param [in, out] pStringWithComma - reference to string, which must be modified.
|
||||||
void AttrHelper_CommaToPoint(std::string& pStringWithComma) { for(char& c: pStringWithComma) { if(c == ',') c = '.'; } }
|
void AttrHelper_CommaToPoint(std::string& pStringWithComma) { for(char& c: pStringWithComma) { if(c == ',') c = '.'; } }
|
||||||
|
|
||||||
|
|
|
@ -176,7 +176,7 @@ namespace Assimp {
|
||||||
/// Ignored attributes: "creaseAngle", "convex", "solid".
|
/// Ignored attributes: "creaseAngle", "convex", "solid".
|
||||||
///
|
///
|
||||||
/// Texture coordinates generating: only for Sphere, Cone, Cylinder. In all other case used PLANE mapping.
|
/// 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.
|
/// duplicate this code in every importer.
|
||||||
///
|
///
|
||||||
/// Lighting limitations.
|
/// Lighting limitations.
|
||||||
|
@ -401,10 +401,10 @@ private:
|
||||||
/************** Functions: XML set *************/
|
/************** 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();
|
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.
|
/// \param [in] pNodeName - name for checking.
|
||||||
/// return true if current node name is equal to pNodeName, else - false.
|
/// return true if current node name is equal to pNodeName, else - false.
|
||||||
bool XML_CheckNode_NameEqual(const std::string& pNodeName) { return mReader->getNodeName() == pNodeName; }
|
bool XML_CheckNode_NameEqual(const std::string& pNodeName) { return mReader->getNodeName() == pNodeName; }
|
||||||
|
|
|
@ -56,7 +56,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#include <assimp/material.h>
|
#include <assimp/material.h>
|
||||||
#include <assimp/scene.h>
|
#include <assimp/scene.h>
|
||||||
|
|
||||||
// Header files, standart library.
|
// Header files, standard library.
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <inttypes.h>
|
#include <inttypes.h>
|
||||||
|
|
||||||
|
|
|
@ -56,7 +56,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#include <assimp/material.h>
|
#include <assimp/material.h>
|
||||||
#include <assimp/scene.h>
|
#include <assimp/scene.h>
|
||||||
|
|
||||||
// Header files, standart library.
|
// Header files, standard library.
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <inttypes.h>
|
#include <inttypes.h>
|
||||||
|
|
||||||
|
|
|
@ -1742,7 +1742,7 @@ UML_LOOK = NO
|
||||||
# the class node. If there are many fields or methods and many nodes the
|
# 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
|
# 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
|
# 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.
|
# exceeded by 50% before the limit is enforced.
|
||||||
|
|
||||||
UML_LIMIT_NUM_FIELDS = 10
|
UML_LIMIT_NUM_FIELDS = 10
|
||||||
|
|
10
doc/dox.h
10
doc/dox.h
|
@ -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>Stanford Ply</b> ( <i>*.ply</i> )<br>
|
||||||
<b>TrueSpace</b> ( <i>*.cob, *.scn</i> )<sup>2</sup><br><br>
|
<b>TrueSpace</b> ( <i>*.cob, *.scn</i> )<sup>2</sup><br><br>
|
||||||
</tt>
|
</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,
|
Note that although this paper claims to be the official documentation,
|
||||||
http://assimp.sourceforge.net/main_features_formats.html
|
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>
|
<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
|
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
|
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.
|
the LICENSE file.
|
||||||
|
|
||||||
You can find test models for almost all formats in the <assimp_root>/test/models directory. Beware, they're *free*,
|
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.
|
This section contains implementations notes for the OgreXML importer.
|
||||||
@subsection overview Overview
|
@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?
|
@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.
|
animations with rotation, translation and scaling keys.
|
||||||
|
|
||||||
@subsection export_Blender How to export Files from Blender
|
@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:
|
importer will load everything correctly:
|
||||||
- Use either "Rendering Material" or "Custom Material" see @ref material
|
- Use either "Rendering Material" or "Custom Material" see @ref material
|
||||||
- do not use "Flip Up Axies to Y"
|
- 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
|
@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.
|
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
|
The properties can be set with Importer::SetProperty***() and can be accessed in your SetupProperties function with Importer::GetProperty***(). You can
|
||||||
|
|
|
@ -903,7 +903,7 @@ enum aiComponent
|
||||||
/** @brief Set the tessellation for IFC cylindrical shapes.
|
/** @brief Set the tessellation for IFC cylindrical shapes.
|
||||||
*
|
*
|
||||||
* This is used by the IFC importer to determine the tessellation parameter
|
* 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
|
* @note The default value is AI_IMPORT_IFC_DEFAULT_CYLINDRICAL_TESSELLATION and the
|
||||||
* accepted values are in range [3, 180].
|
* accepted values are in range [3, 180].
|
||||||
* Property type: Integer.
|
* Property type: Integer.
|
||||||
|
|
|
@ -206,7 +206,7 @@ class MeshKey(Structure):
|
||||||
("mTime", c_double),
|
("mTime", c_double),
|
||||||
|
|
||||||
# Index into the aiMesh::mAnimMeshes array of the
|
# Index into the aiMesh::mAnimMeshes array of the
|
||||||
# mesh coresponding to the
|
# mesh corresponding to the
|
||||||
#aiMeshAnim hosting this
|
#aiMeshAnim hosting this
|
||||||
# key frame. The referenced anim mesh is evaluated
|
# key frame. The referenced anim mesh is evaluated
|
||||||
# according to the rules defined in the docs for
|
# according to the rules defined in the docs for
|
||||||
|
|
|
@ -895,7 +895,7 @@ class PyAssimp3DViewer:
|
||||||
aspect = camera.aspect
|
aspect = camera.aspect
|
||||||
|
|
||||||
u = 0.1 # unit size (in m)
|
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
|
f = 3 * u # aperture of the camera cone
|
||||||
|
|
||||||
glPushMatrix()
|
glPushMatrix()
|
||||||
|
|
|
@ -897,7 +897,7 @@ class PyAssimp3DViewer:
|
||||||
aspect = camera.aspect
|
aspect = camera.aspect
|
||||||
|
|
||||||
u = 0.1 # unit size (in m)
|
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
|
f = 3 * u # aperture of the camera cone
|
||||||
|
|
||||||
glPushMatrix()
|
glPushMatrix()
|
||||||
|
|
|
@ -583,7 +583,7 @@ def clip_matrix(left, right, bottom, top, near, far, perspective=False):
|
||||||
orthographic canonical view volume (a box).
|
orthographic canonical view volume (a box).
|
||||||
|
|
||||||
Homogeneous coordinates transformed by the perspective clip matrix
|
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 = numpy.random.rand(6)
|
||||||
>>> frustrum[1] += frustrum[0]
|
>>> frustrum[1] += frustrum[0]
|
||||||
|
|
|
@ -51,7 +51,7 @@ import assimp.types;
|
||||||
extern ( C ) {
|
extern ( C ) {
|
||||||
/*
|
/*
|
||||||
* These limits are required to match the settings Assimp was compiled
|
* 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.
|
* from source using the same definitions.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
|
@ -1951,7 +1951,7 @@ error:
|
||||||
|
|
||||||
if (NULL == exception)
|
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");
|
env->FatalError("could not throw java.io.IOException");
|
||||||
}
|
}
|
||||||
gLastErrorString = imp.GetErrorString();
|
gLastErrorString = imp.GetErrorString();
|
||||||
|
|
|
@ -114,7 +114,7 @@
|
||||||
%include "interface/IOSystem.i"
|
%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
|
// 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
|
// spit out the helper functions before the header includes for the element
|
||||||
// types otherwise).
|
// types otherwise).
|
||||||
|
|
|
@ -641,7 +641,7 @@ static CVReturn MyDisplayLinkCallback(CVDisplayLinkRef displayLink,const CVTimeS
|
||||||
{
|
{
|
||||||
for(MeshHelper* helper in modelMeshes)
|
for(MeshHelper* helper in modelMeshes)
|
||||||
{
|
{
|
||||||
// Set up meterial state.
|
// Set up material state.
|
||||||
glCallList(helper.displayList);
|
glCallList(helper.displayList);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -179,7 +179,7 @@ extern void exit(int);
|
||||||
glutSpecialUpFunc, glutIgnoreKeyRepeat, glutSetKeyRepeat,
|
glutSpecialUpFunc, glutIgnoreKeyRepeat, glutSetKeyRepeat,
|
||||||
glutJoystickFunc, glutForceJoystickFunc (NOT FINALIZED!).
|
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
|
#define GLUT_API_VERSION 3
|
||||||
#endif
|
#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>
|
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
|
#define GLUT_XLIB_IMPLEMENTATION 15
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -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
|
This model is released under Creative Commons Licence, Attribution 2.0
|
||||||
for informations see:
|
for information see:
|
||||||
http://creativecommons.org
|
http://creativecommons.org
|
||||||
http://creativecommons.org/licenses/by/2.0/
|
http://creativecommons.org/licenses/by/2.0/
|
||||||
feel free to use and improve it.
|
feel free to use and improve it.
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -561,7 +561,7 @@ void CGLView::Enable_Textures(const bool pEnable)
|
||||||
}
|
}
|
||||||
|
|
||||||
/********************************************************************/
|
/********************************************************************/
|
||||||
/*********************** Overrided functions ************************/
|
/*********************** Override functions ************************/
|
||||||
/********************************************************************/
|
/********************************************************************/
|
||||||
|
|
||||||
void CGLView::initializeGL()
|
void CGLView::initializeGL()
|
||||||
|
|
|
@ -249,13 +249,13 @@ private:
|
||||||
void Draw_BBox(const SBBox& pBBox);
|
void Draw_BBox(const SBBox& pBBox);
|
||||||
|
|
||||||
/********************************************************************/
|
/********************************************************************/
|
||||||
/*********************** Overrided functions ************************/
|
/*********************** Override functions ************************/
|
||||||
/********************************************************************/
|
/********************************************************************/
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void drawCoordSystem();
|
void drawCoordSystem();
|
||||||
/// \fn void initializeGL() override
|
/// \fn void initializeGL() override
|
||||||
/// Overrided function for initialise OpenGL.
|
/// Override function to initialise OpenGL.
|
||||||
void initializeGL() override;
|
void initializeGL() override;
|
||||||
|
|
||||||
/// \fn void resizeGL(int pWidth, int pHeight) override
|
/// \fn void resizeGL(int pWidth, int pHeight) override
|
||||||
|
@ -264,7 +264,7 @@ protected:
|
||||||
void resizeGL(int pWidth, int pHeight) override;
|
void resizeGL(int pWidth, int pHeight) override;
|
||||||
|
|
||||||
/// \fn void paintGL() override
|
/// \fn void paintGL() override
|
||||||
/// Overrided function for rendering.
|
/// Override function for rendering.
|
||||||
void paintGL() override;
|
void paintGL() override;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
|
@ -107,7 +107,7 @@ void MainWindow::LogError(const QString& pMessage)
|
||||||
}
|
}
|
||||||
|
|
||||||
/********************************************************************/
|
/********************************************************************/
|
||||||
/*********************** Overrided functions ************************/
|
/*********************** Override functions ************************/
|
||||||
/********************************************************************/
|
/********************************************************************/
|
||||||
|
|
||||||
void MainWindow::mousePressEvent(QMouseEvent* pEvent)
|
void MainWindow::mousePressEvent(QMouseEvent* pEvent)
|
||||||
|
|
|
@ -65,23 +65,23 @@ private:
|
||||||
void LogError(const QString& pMessage);
|
void LogError(const QString& pMessage);
|
||||||
|
|
||||||
/********************************************************************/
|
/********************************************************************/
|
||||||
/*********************** Overrided functions ************************/
|
/*********************** Override functions ************************/
|
||||||
/********************************************************************/
|
/********************************************************************/
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
/// \fn void mousePressEvent(QMouseEvent* pEvent) override
|
/// \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.
|
/// \param [in] pEvent - pointer to event data.
|
||||||
void mousePressEvent(QMouseEvent* pEvent) override;
|
void mousePressEvent(QMouseEvent* pEvent) override;
|
||||||
|
|
||||||
/// \fn void mouseMoveEvent(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.
|
/// \param [in] pEvent - pointer to event data.
|
||||||
void mouseMoveEvent(QMouseEvent* pEvent) override;
|
void mouseMoveEvent(QMouseEvent* pEvent) override;
|
||||||
|
|
||||||
/// \fn void keyPressEvent(QKeyEvent* 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.
|
/// \param [in] pEvent - pointer to event data.
|
||||||
void keyPressEvent(QKeyEvent* pEvent) override;
|
void keyPressEvent(QKeyEvent* pEvent) override;
|
||||||
|
|
||||||
|
|
|
@ -189,7 +189,7 @@ BEGIN
|
||||||
LTEXT "Angle limit (in degrees):",IDC_STATIC,13,10,76,8
|
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
|
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
|
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
|
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
|
CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,0,90,277,1
|
||||||
END
|
END
|
||||||
|
|
Loading…
Reference in New Issue