Compare commits
3
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d403434c76 | ||
|
|
56414694b3 | ||
|
|
7610b184eb |
@@ -65,7 +65,7 @@ jobs:
|
|||||||
- name: Cache DX SDK
|
- name: Cache DX SDK
|
||||||
id: dxcache
|
id: dxcache
|
||||||
if: contains(matrix.name, 'windows')
|
if: contains(matrix.name, 'windows')
|
||||||
uses: actions/cache@v5
|
uses: actions/cache@v4
|
||||||
with:
|
with:
|
||||||
path: '${{ github.workspace }}/DX_SDK'
|
path: '${{ github.workspace }}/DX_SDK'
|
||||||
key: ${{ runner.os }}-DX_SDK
|
key: ${{ runner.os }}-DX_SDK
|
||||||
@@ -109,7 +109,7 @@ jobs:
|
|||||||
run: cd build/bin && ./unit ${{ steps.hunter_extra_test_args.outputs.args }}
|
run: cd build/bin && ./unit ${{ steps.hunter_extra_test_args.outputs.args }}
|
||||||
shell: bash
|
shell: bash
|
||||||
|
|
||||||
- uses: actions/upload-artifact@v7
|
- uses: actions/upload-artifact@v5
|
||||||
if: matrix.name == 'windows-msvc'
|
if: matrix.name == 'windows-msvc'
|
||||||
with:
|
with:
|
||||||
name: 'assimp-bins-${{ matrix.name }}'
|
name: 'assimp-bins-${{ matrix.name }}'
|
||||||
@@ -141,7 +141,7 @@ jobs:
|
|||||||
prerelease: true
|
prerelease: true
|
||||||
- run: |
|
- run: |
|
||||||
echo '${{steps.create-release.outputs.upload_url}}' > release_upload_url.txt
|
echo '${{steps.create-release.outputs.upload_url}}' > release_upload_url.txt
|
||||||
- uses: actions/upload-artifact@v7
|
- uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: create-release
|
name: create-release
|
||||||
path: release_upload_url.txt
|
path: release_upload_url.txt
|
||||||
@@ -182,13 +182,13 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
if: startsWith(github.ref, 'refs/tags/')
|
if: startsWith(github.ref, 'refs/tags/')
|
||||||
steps:
|
steps:
|
||||||
- uses: softprops/action-gh-release@v3
|
- uses: softprops/action-gh-release@v2
|
||||||
with:
|
with:
|
||||||
name: create-release
|
name: create-release
|
||||||
- id: upload-url
|
- id: upload-url
|
||||||
run: |
|
run: |
|
||||||
echo "url=$(cat create-release/release_upload_url.txt)" >> $GITHUB_OUTPUT
|
echo "url=$(cat create-release/release_upload_url.txt)" >> $GITHUB_OUTPUT
|
||||||
- uses: actions/download-artifact@v8
|
- uses: actions/download-artifact@v6
|
||||||
with:
|
with:
|
||||||
name: 'assimp-bins-${{ matrix.name }}-${{ github.sha }}'
|
name: 'assimp-bins-${{ matrix.name }}-${{ github.sha }}'
|
||||||
- uses: actions/upload-release-asset@v1
|
- uses: actions/upload-release-asset@v1
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ jobs:
|
|||||||
filename: ${{ matrix.name }}-${{ github.event.release.tag_name }}.zip
|
filename: ${{ matrix.name }}-${{ github.event.release.tag_name }}.zip
|
||||||
directory: build/bin/
|
directory: build/bin/
|
||||||
|
|
||||||
- uses: softprops/action-gh-release@v3
|
- uses: softprops/action-gh-release@v2
|
||||||
with:
|
with:
|
||||||
files: build/bin/${{ matrix.name }}-${{ github.event.release.tag_name }}.zip
|
files: build/bin/${{ matrix.name }}-${{ github.event.release.tag_name }}.zip
|
||||||
append_body: true
|
append_body: true
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ jobs:
|
|||||||
dry-run: false
|
dry-run: false
|
||||||
language: c++
|
language: c++
|
||||||
- name: Upload Crash
|
- name: Upload Crash
|
||||||
uses: actions/upload-artifact@v7
|
uses: actions/upload-artifact@v5
|
||||||
if: failure() && steps.build.outcome == 'success'
|
if: failure() && steps.build.outcome == 'success'
|
||||||
with:
|
with:
|
||||||
name: artifacts
|
name: artifacts
|
||||||
|
|||||||
@@ -1,207 +0,0 @@
|
|||||||
# AGENTS.md - Agent Guidelines for Assimp
|
|
||||||
|
|
||||||
This document provides guidelines for AI agents working on the Assimp codebase.
|
|
||||||
|
|
||||||
## Project Overview
|
|
||||||
|
|
||||||
Assimp (Open Asset Import Library) is a C++ library that loads various 3D file formats into a shared, in-memory format. It supports 40+ import formats and several export formats.
|
|
||||||
|
|
||||||
## Build Commands
|
|
||||||
|
|
||||||
### Basic Build (CMake + Ninja recommended)
|
|
||||||
```bash
|
|
||||||
# Configure with CMake
|
|
||||||
cmake -G Ninja -DASSIMP_BUILD_TESTS=ON -DASSIMP_WARNINGS_AS_ERRORS=ON -S . -B build
|
|
||||||
|
|
||||||
# Build
|
|
||||||
cmake --build build
|
|
||||||
```
|
|
||||||
|
|
||||||
### Key CMake Options
|
|
||||||
- `-DASSIMP_BUILD_TESTS=ON` - Build unit tests (default ON)
|
|
||||||
- `-DASSIMP_WARNINGS_AS_ERRORS=ON` - Treat warnings as errors (default ON)
|
|
||||||
- `-DASSIMP_BUILD_ASSIMP_TOOLS=ON` - Build command-line tools
|
|
||||||
- `-DASSIMP_BUILD_SAMPLES=ON` - Build sample applications
|
|
||||||
- `-DASSIMP_DOUBLE_PRECISION=ON` - Use double precision for calculations
|
|
||||||
- `-DASSIMP_NO_EXPORT=ON` - Disable export functionality
|
|
||||||
- `-DBUILD_SHARED_LIBS=OFF` - Build static library
|
|
||||||
|
|
||||||
### Running Tests
|
|
||||||
|
|
||||||
#### Run All Tests
|
|
||||||
```bash
|
|
||||||
# Using ctest
|
|
||||||
cd build && ctest
|
|
||||||
|
|
||||||
# Or run unit directly
|
|
||||||
./build/unit
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Run Single Test
|
|
||||||
```bash
|
|
||||||
# Using ctest with filter
|
|
||||||
cd build && ctest -R "TestName"
|
|
||||||
|
|
||||||
# Or run unit with filter
|
|
||||||
./build/unit --gtest_filter="TestSuiteName.TestName"
|
|
||||||
```
|
|
||||||
|
|
||||||
For example:
|
|
||||||
```bash
|
|
||||||
./build/unit --gtest_filter="utObjImportExport.*"
|
|
||||||
./build/unit --gtest_filter="utMaterialSystem.*"
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Test Directory
|
|
||||||
Tests are located in `test/unit/` and use Google Test. Test files are named `ut<Feature>.cpp`.
|
|
||||||
|
|
||||||
## Code Style
|
|
||||||
|
|
||||||
### Formatting
|
|
||||||
- **Use clang-format** before committing. Run: `clang-format -i <file>`
|
|
||||||
- The project uses a `.clang-format` file at the root with LLVM-based style
|
|
||||||
- Key settings:
|
|
||||||
- Indent width: 4 spaces
|
|
||||||
- Tab width: 4, UseTab: Never
|
|
||||||
- ColumnLimit: 0 (no line length limit)
|
|
||||||
- BreakConstructorInitializers: AfterColon
|
|
||||||
- AccessModifierOffset: -4
|
|
||||||
|
|
||||||
### Header File Organization
|
|
||||||
```cpp
|
|
||||||
// Order of includes (use clang-format to enforce):
|
|
||||||
// 1. Module's own header
|
|
||||||
// 2. Other assimp headers (assimp/*)
|
|
||||||
// 3. External headers (contrib/*)
|
|
||||||
// 4. Standard library headers
|
|
||||||
// 5. System headers
|
|
||||||
|
|
||||||
#include "Common/Importer.h"
|
|
||||||
#include <assimp/version.h>
|
|
||||||
#include <assimp/config.h>
|
|
||||||
#include "../contrib/some_lib/some.h"
|
|
||||||
#include <vector>
|
|
||||||
#include <string>
|
|
||||||
```
|
|
||||||
|
|
||||||
### Naming Conventions
|
|
||||||
- **Classes/Types**: PascalCase (e.g., `Importer`, `aiScene`)
|
|
||||||
- **Functions**: PascalCase (e.g., `ReadFile`, `GetExtension`)
|
|
||||||
- **Variables**: camelCase (e.g., `scene`, `importStep`)
|
|
||||||
- **Constants**: kCamelCase or UPPER_SNAKE_CASE (e.g., `kMaxVertices`)
|
|
||||||
- **Member variables**: Often prefixed with `m_` (e.g., `mScene`)
|
|
||||||
- **Static variables**: Often prefixed with `s_`
|
|
||||||
|
|
||||||
### File Naming
|
|
||||||
- **Header files**: PascalCase (e.g., `Importer.h`, `ScenePrivate.h`)
|
|
||||||
- **Source files**: PascalCase (e.g., `Importer.cpp`)
|
|
||||||
- **Test files**: Prefixed with `ut` (e.g., `utObjImportExport.cpp`)
|
|
||||||
|
|
||||||
### C++ Guidelines
|
|
||||||
|
|
||||||
#### Language Standard
|
|
||||||
- Minimum: C++17
|
|
||||||
- Use modern C++ features (smart pointers, constexpr, etc.)
|
|
||||||
|
|
||||||
#### Error Handling
|
|
||||||
- Use exceptions for recoverable errors (derived from `std::exception`)
|
|
||||||
- Use `ai_assert` for debugging assertions in code
|
|
||||||
- Return error codes from C API functions
|
|
||||||
|
|
||||||
#### Classes
|
|
||||||
- Use `ai_enable_erasing` pattern for optional features
|
|
||||||
- Use PImpl idiom for ABI stability where appropriate
|
|
||||||
|
|
||||||
#### Memory Management
|
|
||||||
- Use smart pointers (`std::unique_ptr`, `std::shared_ptr`)
|
|
||||||
- Prefer RAII patterns
|
|
||||||
- Document ownership semantics in function comments
|
|
||||||
|
|
||||||
### Importers/Exporters
|
|
||||||
|
|
||||||
#### Structure
|
|
||||||
Each importer typically has:
|
|
||||||
1. Header in `code/AssetLib/<Format>/`
|
|
||||||
2. Implementation in `code/AssetLib/<Format>/`
|
|
||||||
3. Registration in `code/Common/ImporterRegistry.cpp`
|
|
||||||
4. Unit tests in `test/unit/ImportExport/`
|
|
||||||
|
|
||||||
#### Registration
|
|
||||||
```cpp
|
|
||||||
void GetImporterInstanceList(std::vector<BaseImporter*>& out);
|
|
||||||
// Add to registry
|
|
||||||
out.push_back(new MyFormatImporter());
|
|
||||||
```
|
|
||||||
|
|
||||||
### Post-Processing
|
|
||||||
|
|
||||||
- Located in `code/PostProcessing/`
|
|
||||||
- Each process inherits from `BaseProcess`
|
|
||||||
- Implement `ExecuteOnScene` method
|
|
||||||
|
|
||||||
### Documentation
|
|
||||||
|
|
||||||
- Use Doxygen-style comments for public APIs
|
|
||||||
- Example:
|
|
||||||
```cpp
|
|
||||||
/// <summary>
|
|
||||||
/// Loads a file from disk.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="pFile">Path to the file.</param>
|
|
||||||
/// <returns>Pointer to the imported scene.</returns>
|
|
||||||
aiScene* Importer::ReadFile(const char* pFile);
|
|
||||||
```
|
|
||||||
|
|
||||||
### Contributing
|
|
||||||
|
|
||||||
1. Create a fork of assimp
|
|
||||||
2. Create a branch for your feature/fix
|
|
||||||
3. Run `clang-format` on modified files
|
|
||||||
4. Ensure tests pass
|
|
||||||
5. Open a PR against `master` branch
|
|
||||||
|
|
||||||
## Directory Structure
|
|
||||||
|
|
||||||
```
|
|
||||||
code/
|
|
||||||
AssetLib/ - Importers and exporters
|
|
||||||
CApi/ - C API wrapper
|
|
||||||
Common/ - Shared utilities
|
|
||||||
Geometry/ - Geometry processing
|
|
||||||
Material/ - Material handling
|
|
||||||
PostProcessing/ - Mesh post-processing
|
|
||||||
include/ - Public headers (assimp/)
|
|
||||||
test/
|
|
||||||
unit/ - Unit tests
|
|
||||||
models/ - Test 3D models
|
|
||||||
test/ - Test data (non-BSD licensed)
|
|
||||||
contrib/ - Third-party libraries
|
|
||||||
```
|
|
||||||
|
|
||||||
## CI/CD
|
|
||||||
|
|
||||||
The project runs CI on GitHub Actions:
|
|
||||||
- Builds on Linux and Windows
|
|
||||||
- Runs tests including memory leak detection
|
|
||||||
- Checks compiler warnings
|
|
||||||
|
|
||||||
## Common Tasks
|
|
||||||
|
|
||||||
### Adding a New Importer
|
|
||||||
1. Create `code/AssetLib/<Format>/<Format>Importer.h`
|
|
||||||
2. Create `code/AssetLib/<Format>/<Format>Importer.cpp`
|
|
||||||
3. Register in `code/Common/ImporterRegistry.cpp`
|
|
||||||
4. Add tests in `test/unit/ImportExport/`
|
|
||||||
5. Add to CMakeLists.txt if needed
|
|
||||||
|
|
||||||
### Running Specific Test Suite
|
|
||||||
```bash
|
|
||||||
# Test specific importer
|
|
||||||
./build/unit --gtest_filter="utglTF2ImportExport.*"
|
|
||||||
|
|
||||||
# Test post-processing
|
|
||||||
./build/unit --gtest_filter="utTriangulate.*"
|
|
||||||
|
|
||||||
# Test math operations
|
|
||||||
./build/unit --gtest_filter="utMatrix4x4.*"
|
|
||||||
```
|
|
||||||
-172
@@ -1,172 +0,0 @@
|
|||||||
# Asset-Importer-Lib AI Tool Use Policy
|
|
||||||
|
|
||||||
## Policy
|
|
||||||
|
|
||||||
Assimp's policy is that contributors can use whatever tools they would like to
|
|
||||||
craft their contributions, but there must be a **human in the loop**.
|
|
||||||
**Contributors must read and review all LLM-generated code or text before they
|
|
||||||
ask other project members to review it.** The contributor is always the author
|
|
||||||
and is fully accountable for their contributions. Contributors should be
|
|
||||||
sufficiently confident that the contribution is high enough quality that asking
|
|
||||||
for a review is a good use of scarce maintainer time, and they should be **able
|
|
||||||
to answer questions about their work** during review.
|
|
||||||
|
|
||||||
We expect that new contributors will be less confident in their contributions,
|
|
||||||
and our guidance to them is to **start with small contributions** that they can
|
|
||||||
fully understand to build confidence. We aspire to be a welcoming community
|
|
||||||
that helps new contributors grow their expertise, but learning involves taking
|
|
||||||
small steps, getting feedback, and iterating. Passing maintainer feedback to an
|
|
||||||
LLM doesn't help anyone grow, and does not sustain our community.
|
|
||||||
|
|
||||||
Contributors are expected to **be transparent and label contributions that
|
|
||||||
contain substantial amounts of tool-generated content**. Our policy on
|
|
||||||
labelling is intended to facilitate reviews, and not to track which parts of
|
|
||||||
Assimp are generated. Contributors should note tool usage in their pull request
|
|
||||||
description, commit message, or wherever authorship is normally indicated for
|
|
||||||
the work. For instance, use a commit message trailer like Assisted-by: <name of
|
|
||||||
code assistant>. This transparency helps the community develop best practices
|
|
||||||
and understand the role of these new tools.
|
|
||||||
|
|
||||||
This policy includes, but is not limited to, the following kinds of
|
|
||||||
contributions:
|
|
||||||
|
|
||||||
- Code, usually in the form of a pull request
|
|
||||||
- RFCs or design proposals
|
|
||||||
- Issues or security vulnerabilities
|
|
||||||
- Comments and feedback on pull requests
|
|
||||||
|
|
||||||
## Details
|
|
||||||
|
|
||||||
To ensure sufficient self review and understanding of the work, it is strongly
|
|
||||||
recommended that contributors write PR descriptions themselves (if needed,
|
|
||||||
using tools for translation or copy-editing). The description should explain
|
|
||||||
the motivation, implementation approach, expected impact, and any open
|
|
||||||
questions or uncertainties to the same extent as a contribution made without
|
|
||||||
tool assistance.
|
|
||||||
|
|
||||||
AI tools must not be used to fix GitHub issues labelled [`good first
|
|
||||||
issue`][good-first-issue]. These issues are generally not urgent, and are
|
|
||||||
intended to be learning opportunities for new contributors to get familiar with
|
|
||||||
the codebase. Whether you are a newcomer or not, fully automating the process
|
|
||||||
of fixing this issue squanders the learning opportunity and doesn't add much
|
|
||||||
value to the project. **Using AI tools to fix issues labelled as "good first
|
|
||||||
issues" is forbidden**.
|
|
||||||
|
|
||||||
[good-first-issue]: https://github.com/llvm/llvm-project/issues/?q=is%3Aissue%20state%3Aopen%20label%3A%22good%20first%20issue%22
|
|
||||||
|
|
||||||
## Extractive Contributions
|
|
||||||
|
|
||||||
The reason for our "human-in-the-loop" contribution policy is that processing
|
|
||||||
patches, PRs, RFCs, and comments to Assimp is not free -- it takes a lot of
|
|
||||||
maintainer time and energy to review those contributions! Sending the
|
|
||||||
unreviewed output of an Assimp to open source project maintainers *extracts* work
|
|
||||||
from them in the form of design and code review, so we call this kind of
|
|
||||||
contribution an "extractive contribution".
|
|
||||||
|
|
||||||
Our **golden rule** is that a contribution should be worth more to the project
|
|
||||||
than the time it takes to review it. These ideas are captured by this quote
|
|
||||||
from the book [Working in Public][public] by Nadia Eghbal:
|
|
||||||
|
|
||||||
[public]: https://press.stripe.com/working-in-public
|
|
||||||
|
|
||||||
> \"When attention is being appropriated, producers need to weigh the costs and
|
|
||||||
> benefits of the transaction. To assess whether the appropriation of attention
|
|
||||||
> is net-positive, it's useful to distinguish between *extractive* and
|
|
||||||
> *non-extractive* contributions. Extractive contributions are those where the
|
|
||||||
> marginal cost of reviewing and merging that contribution is greater than the
|
|
||||||
> marginal benefit to the project's producers. In the case of a code
|
|
||||||
> contribution, it might be a pull request that's too complex or unwieldy to
|
|
||||||
> review, given the potential upside.\" \-- Nadia Eghbal
|
|
||||||
|
|
||||||
Prior to the advent of LLMs, open source project maintainers would often review
|
|
||||||
any and all changes sent to the project simply because posting a change for
|
|
||||||
review was a sign of interest from a potential long-term contributor. While new
|
|
||||||
tools enable more development, it shifts effort from the implementor to the
|
|
||||||
reviewer, and our policy exists to ensure that we value and do not squander
|
|
||||||
maintainer time.
|
|
||||||
|
|
||||||
Reviewing changes from new contributors is part of growing the next generation
|
|
||||||
of contributors and sustaining the project. We want the LLVM project to be
|
|
||||||
welcoming and open to aspiring compiler engineers who are willing to invest
|
|
||||||
time and effort to learn and grow, because growing our contributor base and
|
|
||||||
recruiting new maintainers helps sustain the project over the long term. Being
|
|
||||||
open to contributions and [liberally granting commit access][commit-access]
|
|
||||||
is a big part of how LLVM has grown and successfully been adopted all across
|
|
||||||
the industry. We therefore automatically post a greeting comment to pull
|
|
||||||
requests from new contributors and encourage maintainers to spend their time to
|
|
||||||
help new contributors learn.
|
|
||||||
|
|
||||||
[commit-access]: https://llvm.org/docs/DeveloperPolicy.html#obtaining-commit-access
|
|
||||||
|
|
||||||
## Handling Violations
|
|
||||||
|
|
||||||
If a maintainer judges that a contribution doesn't comply with this policy,
|
|
||||||
they should paste the following response to request changes:
|
|
||||||
|
|
||||||
This PR doesn't appear to comply with our policy on tool-generated content,
|
|
||||||
and requires additional justification for why it is valuable enough to the
|
|
||||||
project for us to review it. Please see our developer policy on
|
|
||||||
AI-generated contributions: http://llvm.org/docs/AIToolPolicy.html
|
|
||||||
|
|
||||||
The best ways to make a change less extractive and more valuable are to reduce
|
|
||||||
its size or complexity or to increase its usefulness to the community. These
|
|
||||||
factors are impossible to weigh objectively, and our project policy leaves this
|
|
||||||
determination up to the maintainers of the project, i.e. those who are doing
|
|
||||||
the work of sustaining the project.
|
|
||||||
|
|
||||||
If or when it becomes clear that a GitHub issue or PR is off-track and not
|
|
||||||
moving in the right direction, maintainers should apply the `extractive` label
|
|
||||||
to help other reviewers prioritize their review time.
|
|
||||||
|
|
||||||
If a contributor fails to make their change meaningfully less extractive,
|
|
||||||
maintainers should escalate to the relevant moderation or admin team for the
|
|
||||||
space (GitHub, Discourse, Discord, etc) to lock the conversation.
|
|
||||||
|
|
||||||
## Copyright
|
|
||||||
|
|
||||||
Artificial intelligence systems raise many questions around copyright that have
|
|
||||||
yet to be answered. Our policy on AI tools is similar to our copyright policy:
|
|
||||||
Contributors are responsible for ensuring that they have the right to
|
|
||||||
contribute code under the terms of our license, typically meaning that either
|
|
||||||
they, their employer, or their collaborators hold the copyright. Using AI tools
|
|
||||||
to regenerate copyrighted material does not remove the copyright, and
|
|
||||||
contributors are responsible for ensuring that such material does not appear in
|
|
||||||
their contributions. Contributions found to violate this policy will be removed
|
|
||||||
just like any other offending contribution.
|
|
||||||
|
|
||||||
## Examples
|
|
||||||
|
|
||||||
Here are some examples of contributions that demonstrate how to apply
|
|
||||||
the principles of this policy:
|
|
||||||
|
|
||||||
- [This PR][alive-pr] contains a proof from Alive2, which is a strong signal of
|
|
||||||
value and correctness.
|
|
||||||
- This [generated documentation][gsym-docs] was reviewed for correctness by a
|
|
||||||
human before being posted.
|
|
||||||
|
|
||||||
[alive-pr]: https://github.com/llvm/llvm-project/pull/142869
|
|
||||||
[gsym-docs]: https://discourse.llvm.org/t/searching-for-gsym-documentation/85185/2
|
|
||||||
|
|
||||||
## References
|
|
||||||
|
|
||||||
Our policy was informed by experiences in other communities:
|
|
||||||
|
|
||||||
- [Fedora Council Policy Proposal: Policy on AI-Assisted Contributions (fetched
|
|
||||||
2025-10-01)][fedora]: Some of the text above was copied from the Fedora
|
|
||||||
project policy proposal, which is licensed under the [Creative Commons
|
|
||||||
Attribution 4.0 International License][cca]. This link serves as attribution.
|
|
||||||
- [Rust draft policy on burdensome PRs][rust-burdensome]
|
|
||||||
- [Seth Larson's post][security-slop]
|
|
||||||
on slop security reports in the Python ecosystem
|
|
||||||
- The METR paper [Measuring the Impact of Early-2025 AI on Experienced
|
|
||||||
Open-Source Developer Productivity][metr-paper].
|
|
||||||
- [QEMU bans use of AI content generators][qemu-ban]
|
|
||||||
- [Slop is the new name for unwanted AI-generated content][ai-slop]
|
|
||||||
|
|
||||||
[fedora]: https://communityblog.fedoraproject.org/council-policy-proposal-policy-on-ai-assisted-contributions/
|
|
||||||
[cca]: https://creativecommons.org/licenses/by/4.0/
|
|
||||||
[rust-burdensome]: https://github.com/rust-lang/compiler-team/issues/893
|
|
||||||
[security-slop]: https://sethmlarson.dev/slop-security-reports
|
|
||||||
[metr-paper]: https://metr.org/blog/2025-07-10-early-2025-ai-experienced-os-dev-study/
|
|
||||||
[qemu-ban]: https://www.qemu.org/docs/master/devel/code-provenance.html#use-of-ai-content-generators
|
|
||||||
[ai-slop]: https://simonwillison.net/2024/May/8/slop/
|
|
||||||
@@ -0,0 +1,607 @@
|
|||||||
|
----------------------------------------------------------------------
|
||||||
|
CHANGELOG
|
||||||
|
----------------------------------------------------------------------
|
||||||
|
4.1.0 (2017-12):
|
||||||
|
- FEATURES:
|
||||||
|
- Export 3MF ( experimental )
|
||||||
|
- Import / Export glTF 2
|
||||||
|
- Introduce new zib-lib to eb able to export zip-archives
|
||||||
|
- FIXES/HOUSEKEEPING:
|
||||||
|
- Added missing include to stdlib.h and remove load library call
|
||||||
|
- Fix install for builds with MSVC compiler and NMake.
|
||||||
|
- Update list of supported file formats.
|
||||||
|
- Add TriLib to the official list of supported ports.
|
||||||
|
- Re-enabling PACK_STRUCT for MDL files.
|
||||||
|
- Use std.::unique_ptr
|
||||||
|
- Update D3MFExporter.h
|
||||||
|
- Update MD3Loader.cpp, using index
|
||||||
|
- Fix all warnings on MSVC14
|
||||||
|
- Copy assimp dll to unit folder on windows
|
||||||
|
- Update jvm port supported formats
|
||||||
|
- Add support for building Mac OS X Framework bundles
|
||||||
|
- Check for nullptr dereferencing before copying scene data
|
||||||
|
- Update ValidateDataStructure.h, typo
|
||||||
|
- Enable data structure validation in cases where it doesn't cause failures
|
||||||
|
- Remove some dead assignments
|
||||||
|
- fast_atof: Silence some uninitialized variable warnings
|
||||||
|
- Check for area test if the face is a triangle.
|
||||||
|
- Set mNumUVComponents to 0 when deleting texture coordinate sets
|
||||||
|
- Only scale the root node because this will rescale all children nodes as well.
|
||||||
|
- Issue 1514: Fix frame pointer arithmetic
|
||||||
|
- Prevent failing stringstream to crash the export process
|
||||||
|
- powf -> pow
|
||||||
|
- add Defines.h to include folder for install.
|
||||||
|
- Android:
|
||||||
|
- Fix android build
|
||||||
|
- Fix assimp for cross compile for android
|
||||||
|
- Use define for D_FILE_OFFSET_BITS only for not-android systems.
|
||||||
|
- FBX:
|
||||||
|
- Fix handling with embedded textures
|
||||||
|
- FBX 7500 Binary reading
|
||||||
|
- Remove dead assignment
|
||||||
|
- Fix export of deleted meshes; Add LazyDict::Remove method
|
||||||
|
- Log an error instead of letting the fbx-importer crash. ( issue 213 )
|
||||||
|
- Replace bad pointer casting with memcpy
|
||||||
|
- Remove useless const qualifier from return value
|
||||||
|
- Add explicit instantiation of log_prefix so other FBX source files can see it
|
||||||
|
- add missing inversion of postrotation matrix for fbx.
|
||||||
|
- FIReader: Silence uninitialized variable warning
|
||||||
|
- Update version check in FBX reader to check for version >= 7500
|
||||||
|
- Use actual min/max of anim keys when start/stop time is missing
|
||||||
|
- GLTF1:
|
||||||
|
- Fix output of glTF 1 version string
|
||||||
|
- Fix delete / delete[] mismatch in glTFAsset
|
||||||
|
- Don’t ignore rgba(1,1,1,1) color properties
|
||||||
|
- glTF2 primitives fixes
|
||||||
|
- Don’t ignore rgba(1,1,1,1) color properties
|
||||||
|
- Fix delete / delete[] mismatch in glTFAsset
|
||||||
|
- Remove KHR_binary_glTF code
|
||||||
|
- glTF nodes can only hold one mesh. this simply assigns to and check’s a Node’s Mesh
|
||||||
|
- version in glb header is stored as uint32_t
|
||||||
|
- GLTF2:
|
||||||
|
- node name conflict fix
|
||||||
|
- Fix transform matrices multiplication order
|
||||||
|
- Preserve node names when importing
|
||||||
|
- Add support for tangents in import
|
||||||
|
- Fix typo on gltf2 camera parameters
|
||||||
|
- Moved byteStride from accessor to bufferView
|
||||||
|
- Implemented reading binary glTF2 (glb) files
|
||||||
|
- Fix signed/unsigned warning
|
||||||
|
- Add postprocess step for scaling
|
||||||
|
- Fix shininess to roughness conversion
|
||||||
|
- Prefer “BLEND” over “MASK” as an alphaMode default
|
||||||
|
- Approximate specularity / glossiness in metallicRoughness materials
|
||||||
|
- Diffuse color and diffuse texture import and export improvements
|
||||||
|
- Addressed some mismatched news/deletes caused by the new glTF2 sources.
|
||||||
|
- Fix delete / delete[] mismatches in glTF2 importer
|
||||||
|
- use correct name of exporter to gltf2
|
||||||
|
- Fix possible infinite loop when exporting to gltf2
|
||||||
|
- Fix glTF2::Asset::FindUniqueID() when the input string is >= 256 chars
|
||||||
|
- Fix glTF2 alphaMode storage and reading
|
||||||
|
- Fix glTF 2.0 multi-primitive support
|
||||||
|
- Load gltf .bin files from correct directory
|
||||||
|
- Add support for importing both glTF and glTF2 files
|
||||||
|
- ampler improvements; Add new LazyDict method
|
||||||
|
- Changes to GLTF2 materials
|
||||||
|
- Remove Light, Technique references
|
||||||
|
- Start removing materials common, and adding pbrSpecularGlossiness
|
||||||
|
- Use !ObjectEmpty() vs. MemberCount() > 0
|
||||||
|
- Working read, import, export, and write of gltf2 (pbr) material
|
||||||
|
- Check in gltf2 models to test directory
|
||||||
|
- Remove un-needed test models
|
||||||
|
- Start managing and importing gltf2 pbr materials
|
||||||
|
- Update glTF2 Asset to use indexes
|
||||||
|
- Duplicate gltfImporter as gltf2Importer; Include glTF2 importer in CMake List
|
||||||
|
- glTF2: Fix animation export
|
||||||
|
- use opacity for diffuse alpha + alphaMode
|
||||||
|
- STL:
|
||||||
|
- Restore import of multi mesh binary STLs
|
||||||
|
- Blender:
|
||||||
|
- Silence warning about uninitialized member
|
||||||
|
- MDLImporter:
|
||||||
|
- Don't take address of packed struct member
|
||||||
|
- assimp_cmd:
|
||||||
|
- Fix strict-aliasing warnings
|
||||||
|
- Open3DGC:
|
||||||
|
- Fix strict-aliasing warnings
|
||||||
|
- Add assertions to silence static analyzer warnings
|
||||||
|
- Remove redundant const qualifiers from return types
|
||||||
|
- Fix some uninitialized variable warnings
|
||||||
|
- Remove OPEN3DGC and compression references
|
||||||
|
- unzip:
|
||||||
|
- Remove dead assignment
|
||||||
|
- Bail on bad compression method
|
||||||
|
- Fix possibly uninitialized variables
|
||||||
|
- clipper:
|
||||||
|
- Add assertion to silence a static analyzer warning
|
||||||
|
- OpenDDLExport:
|
||||||
|
- Reduce scope of a variable
|
||||||
|
- Remove dead variable
|
||||||
|
- Remove dead assignment
|
||||||
|
- Fix another potential memory leak
|
||||||
|
- X3DImporter:
|
||||||
|
- Add assertions to silence static analyzer warnings
|
||||||
|
- Add missing unittest
|
||||||
|
- Workaround for buggy Android NDK (issue #1361)
|
||||||
|
- TerragenLoader:
|
||||||
|
- Remove unused variable
|
||||||
|
- SIBImporter:
|
||||||
|
- Add assertions to silence static analyzer warnings
|
||||||
|
- IFC:
|
||||||
|
- Remove dead code
|
||||||
|
- Add explicit instantiation of log_prefix so IFCMaterial.cpp can see it
|
||||||
|
- PLY:
|
||||||
|
- Remove dead assignment and reduce scope of a variable
|
||||||
|
- fix vertex attribute lookup.
|
||||||
|
- OpenGEX:
|
||||||
|
- Add assertion to silence a static analyzer warning
|
||||||
|
- Fix for TextureFile with number in file name
|
||||||
|
- Return early when element is TextureFile
|
||||||
|
- NFF:
|
||||||
|
- Add assertions to silence static analyzer warnings
|
||||||
|
- Split up some complicated assignments
|
||||||
|
- Raw: Fix misleading indentation warning
|
||||||
|
- Reduce scope of a variable
|
||||||
|
- LWO
|
||||||
|
- Reduce scope of a variable
|
||||||
|
- IRRLoader:
|
||||||
|
- Fix confusing boolean casting
|
||||||
|
- AssbinExporter:
|
||||||
|
- Add assertion to silence a static analyzer warning
|
||||||
|
- ASE:
|
||||||
|
- Add assertion to silence a static analyzer warning
|
||||||
|
- AMFImporter:
|
||||||
|
- Add assertion to silence a static analyzer warning
|
||||||
|
- Add a block
|
||||||
|
- OptimizeGraph:
|
||||||
|
- Fix possible null pointer dereference
|
||||||
|
- RemoveRedundantMaterials:
|
||||||
|
- Add assertion to silence a static analyzer warning
|
||||||
|
- ImproveCacheLocality:
|
||||||
|
- Add assertion to silence a static analyzer warning
|
||||||
|
- RemoveRedundantMaterials:
|
||||||
|
- Set pointer to nullptr after deleting it
|
||||||
|
- Travis:
|
||||||
|
- Disable unit tests in scan-build config
|
||||||
|
- Move slower builds earlier to improve parallelization
|
||||||
|
- Add static analysis to build
|
||||||
|
- Remove unused branch rule for travis.
|
||||||
|
- Add Clang UBSan build configuration
|
||||||
|
- Treat warnings as errors, without typos this time
|
||||||
|
- Unittests:
|
||||||
|
- Add VS-based source groups for the unittests.
|
||||||
|
- Collada:
|
||||||
|
- export <library_animations> tag
|
||||||
|
- Update ColladaExporter.cpp
|
||||||
|
- Silence uninitialized variable warning
|
||||||
|
- Add support for line strip primitives
|
||||||
|
- Obj Wavefront:
|
||||||
|
- check in exporting against out-of-bounds-access .
|
||||||
|
- Issue 1351: use correct name for obj-meshname export for groups.
|
||||||
|
- fix mem-lead: face will be not released in case of an error.
|
||||||
|
- Anatoscope obj exporter nomtl
|
||||||
|
- Raise exception when obj file contains invalid face indices
|
||||||
|
- Added alternative displacement texture token in OBJ MTL material.
|
||||||
|
- Obj: rename attribute from exporter.
|
||||||
|
- Fix OBJ discarding all material names if the material library is missing
|
||||||
|
- Step:
|
||||||
|
- use correct lookup for utf32
|
||||||
|
- MD2:
|
||||||
|
- Fix MD2 frames containing garbage
|
||||||
|
- STL
|
||||||
|
- add missing const.
|
||||||
|
- Fix memory-alignment bug.
|
||||||
|
- Fix issue 104: deal with more solids in one STL file.
|
||||||
|
- CMake
|
||||||
|
- Fix issue 213: use correct include folder for assimp
|
||||||
|
- Doxygen
|
||||||
|
- Fix issue 1513: put irrXML onto exclucde list for doxygen run
|
||||||
|
- PyAssimp:
|
||||||
|
- Search for libassimp.so in LD_LIBRARY_PATH if available.
|
||||||
|
- Fix operator precedence issue in header check
|
||||||
|
- Split setup.py into multiple lines
|
||||||
|
- Detect if Anaconda and fixed 3d_viewer for Python 3
|
||||||
|
- created a python3 version of the 3dviewer and fixed the / = float in py3
|
||||||
|
- Blender:
|
||||||
|
- Fix invalid access to mesh array when the array is empty.
|
||||||
|
- Fix short overflow.
|
||||||
|
- Silence warning about inline function which is declared but not defined
|
||||||
|
- JAssimp
|
||||||
|
- Changed license header for IHMC contributions from Apache 2.0 to BSD
|
||||||
|
- Add Node metadata to the Jassmip Java API
|
||||||
|
- Added supported for custom IO Systems in Java. Implemented ClassLoader IO System
|
||||||
|
- Added a link to pure jvm assimp port
|
||||||
|
- Clang sanitizer:
|
||||||
|
- Undefined Behavior sanitizer
|
||||||
|
- Fixed a divide by zero error in IFCBoolean that was latent, but nevertheless a bug
|
||||||
|
- B3DImporter:
|
||||||
|
- Replace bad pointer casting with memcpy
|
||||||
|
- AppVeyor:
|
||||||
|
- Cleanup and Addition of VS 2017 and running Tests
|
||||||
|
- Fixed File Size reported as 0 in tests that use temporary files
|
||||||
|
- x86 isn't a valid VS platform. Win32 it is, then.
|
||||||
|
- Replaced the worker image name, which doesn't work as generator name, with a manually created generator name.
|
||||||
|
- Cleaned up appveyor setup, added VS 2017 to the build matrix and attempted to add running of tests.
|
||||||
|
- Treat warnings as errors on Appveyor
|
||||||
|
- Disable warning 4351 on MSVC 2013
|
||||||
|
- OpenGEXImporter:
|
||||||
|
- Copy materials to scene
|
||||||
|
- Store RefInfo in unique_ptr so they get automatically cleaned up
|
||||||
|
- Fix IOStream leak
|
||||||
|
- Store ChildInfo in unique_ptr so they get automatically cleaned up
|
||||||
|
- improve logging to be able to detect error-prone situations.
|
||||||
|
- AMFImporter:
|
||||||
|
- Fix memory leak
|
||||||
|
- UnrealLoader:
|
||||||
|
- Fix IOStream leak
|
||||||
|
- Upgrade RapidJSON to get rid of a clang warning
|
||||||
|
- zlib:
|
||||||
|
- Update zlib contribution
|
||||||
|
- Removed unnecessary files from zlib contribution
|
||||||
|
- Replaced unsigned long for the crc table to z_crc_t, to match what is returned by get-crc_table
|
||||||
|
- MakeVerboseFormat:
|
||||||
|
- Fix delete / delete[] mismatches in MakeVerboseFormat
|
||||||
|
- MaterialSystem:
|
||||||
|
- Fix out-of-bounds read in MaterialSystem unit test
|
||||||
|
- SIB:
|
||||||
|
- Added support for SIB models from Silo 2.5
|
||||||
|
- AssbinExporter:
|
||||||
|
- Fix strict aliasing violation
|
||||||
|
- Add Write specialization for aiColor3D
|
||||||
|
- DefaultLogger:
|
||||||
|
- Whitespace cleanup to fix GCC misleading indentation warning
|
||||||
|
- MDP:
|
||||||
|
- Fix encoding issues.
|
||||||
|
- PreTransformVertices:
|
||||||
|
- fix name lost in mesh and nodes when load with flag
|
||||||
|
- C4D:
|
||||||
|
- Fixes for C4D importer
|
||||||
|
- Unzip:
|
||||||
|
- Latest greatest.
|
||||||
|
|
||||||
|
4.0.1 (2017-07-28)
|
||||||
|
- FIXES/HOUSEKEEPING:
|
||||||
|
- fix version test.
|
||||||
|
- Not compiling when using ASSIMP_DOUBLE_PRECISION
|
||||||
|
- Added support for python3
|
||||||
|
- Check if cmake is installed with brew
|
||||||
|
- Low performance in OptimizeMeshesProcess::ProcessNode with huge numbers of meshes
|
||||||
|
- Elapsed seconds not shown correctly
|
||||||
|
- StreamReader: fix out-of-range exception
|
||||||
|
- PPdPmdParser: fix compilation for clang
|
||||||
|
|
||||||
|
|
||||||
|
4.0.0 (2017-07-18)
|
||||||
|
|
||||||
|
FEATURES:
|
||||||
|
- Double precision support provided ( available via cmake option )
|
||||||
|
- QT-Widget based assimp-viewer ( works for windows, linux, osx )
|
||||||
|
- Open3DGC codec supported by glFT-importer
|
||||||
|
- glTF: Read and write transparency values
|
||||||
|
- Add Triangulate post-processing step to glTF exporters
|
||||||
|
- Update rapidjson to v1.0.2
|
||||||
|
- Added method to append new metadata to structure
|
||||||
|
- Unittests: intoduce a prototype model differ
|
||||||
|
- X3D support
|
||||||
|
- AMF support
|
||||||
|
- Lugdunum3D support
|
||||||
|
- Obj-Importer: obj-homogeneous_coords support
|
||||||
|
- Obj-Importer: new streaming handling
|
||||||
|
- Added support for 64 bit version header introduced in FbxSdk2016
|
||||||
|
- Travis: enable coverall support.
|
||||||
|
- PyAssimp: New version of the pyASSIMP 3D viewer, with much improved 3D controls
|
||||||
|
- Morph animation support for collada
|
||||||
|
- Added support for parameters Ni and Tf in OBJ/MTL file format
|
||||||
|
- aiScene: add method to add children
|
||||||
|
- Added new option to IFC importer to control tessellation angle + removed unused IFC option
|
||||||
|
- aiMetaData: introduce aiMetaData::Dealloc
|
||||||
|
- Samples: add a DX11 example
|
||||||
|
- travis ci: test on OXS ( XCode 6.3 ) as well
|
||||||
|
- travis ci: enable sudo support.
|
||||||
|
- openddlparser: integrate release v0.4.0
|
||||||
|
- aiMetaData: Added support for metadata in assbin format
|
||||||
|
|
||||||
|
FIXES/HOUSEKEEPING:
|
||||||
|
- Introduce usage of #pragma statement
|
||||||
|
- Put cmake-scripts into their own folder
|
||||||
|
- Fix install pathes ( issue 938 )
|
||||||
|
- Fix object_compare in blender importer( issue 946 )
|
||||||
|
- Fix OSX compilation error
|
||||||
|
- Fix unzip path when no other version was found ( issue 967 )
|
||||||
|
- Set _FILE_OFFSET_BITS=64 for 32-bit linux ( issue 975 )
|
||||||
|
- Fix constructor for radjson on OSX
|
||||||
|
- Use Assimp namespace to fix build for big-endian architectures
|
||||||
|
- Add -fPIC to C Flags for 64bit linux Shared Object builds
|
||||||
|
- MDLLoader: fix resource leak.
|
||||||
|
- MakeVerboseFormat: fix invalid delete statement
|
||||||
|
- IFC: fix possible use after free access bug
|
||||||
|
- ComputeUVMappingprocess: add missing initialization for scalar value
|
||||||
|
- Fix invalid release of mat + mesh
|
||||||
|
- IrrImporter: Fix release functions
|
||||||
|
- Split mesh before exporting gltf ( issue 995 )
|
||||||
|
- 3MFImporter: add source group for visual studio
|
||||||
|
- IFC: Switch generated file to 2 files to fix issue related to <mingw4.9 ( Thanks Qt! )
|
||||||
|
- ObjImporter: fix test for vertices import
|
||||||
|
- export scene combiner ( issues177 )
|
||||||
|
- FBX: make lookup test less strict ( issues 994 )
|
||||||
|
- OpenGEX-Importer: add import of vertex colors ( issue 954 )
|
||||||
|
- fix bug when exporting mRotationKeys data
|
||||||
|
- fix mingw build (mingw supports stat64 nowadays)
|
||||||
|
- cfileio: fix leaks by not closing files in the destructor
|
||||||
|
- Fix OBJ parser mtllib statement parsing bug.
|
||||||
|
- Q3BSP-Importer: remove dead code
|
||||||
|
- Fix BlenderDNA for clang cross compiler.
|
||||||
|
- ScenePreprocessor: fix invalid index counter.
|
||||||
|
- Fix compiler warnings ( issue 957 )
|
||||||
|
- Fix obj .mtl file loading
|
||||||
|
- Fixed a compile error on MSVC14 x64 caused by the /bigobj flag failing to be set for the 1 and 2-suffixed versions introduced in commit 0a25b076b8968b7ea2aa96d7d1b4381be2d72ce6
|
||||||
|
- Fixed build warnings on MSVC14 x64
|
||||||
|
- Remove scaling of specular exponent in OBJFileImporter.cpp
|
||||||
|
- use ai_assert instead of assert ( issue 1076 )
|
||||||
|
- Added a preprocessor definition for MSVC to silence safety warnings regarding C library functions. This addresses all warnings for MSVC x86 and x64 when building zlib, tools and viewer as a static lib
|
||||||
|
- fix parsing of texture name ( issue 899 )
|
||||||
|
- add warning when detecting invalid mat definition ( issue 1111 )
|
||||||
|
- copy aiTexture type declaration instead of using decltype for declaration to fix iOS build( issue 1101 )
|
||||||
|
- FBX: Add additional material properties
|
||||||
|
- FBX: Correct camera position and clip planes
|
||||||
|
- FBX: Add correct light locations and falloff values
|
||||||
|
- fix typo ( issue 1141 )
|
||||||
|
- Fix collada export. Don't duplicate TEXCOORD/NORMALS/COLORS in <vertices> and <polylist> ( issue 1084 )
|
||||||
|
- OBJParser: set material index when changing current material
|
||||||
|
- OBJ: check for null mesh before updating material index
|
||||||
|
- add vertex color export support ( issue 809 )
|
||||||
|
- Fix memory leak in Collada importer ( issue 1169 )
|
||||||
|
- add stp to the list of supported extensions for step-files ( issue 1183 )
|
||||||
|
- fix clang build ( Issue-1169 )
|
||||||
|
- fix for FreeBSD
|
||||||
|
- Import FindPkgMacros to main CMake Configuration
|
||||||
|
- Extended support for tessellation parameter to more IFC shapes
|
||||||
|
- defensice handling of utf-8 decode issues ( issue 1211 )
|
||||||
|
- Fixed compiler error on clang 4.0 running on OSX
|
||||||
|
- use test extension for exported test files ( issue 1228 )
|
||||||
|
- Set UVW index material properties for OBJ files
|
||||||
|
- Fixed no member named 'atop' in global namespace issue for Android NDK compilation
|
||||||
|
- Apply mechanism to decide use for IrrXML external or internal
|
||||||
|
- Fix static init ordering bug in OpenGEX importer
|
||||||
|
- GLTF exporter: ensure animation accessors have same count
|
||||||
|
- GLTF exporter: convert animation time from ticks to seconds
|
||||||
|
- Add support for reading texture coordinates from PLY meshes with properties named 'texture_u' and 'texture_v'
|
||||||
|
- Added TokensForSearch in BlenderLoader to allow CanRead return true for in-memory files.
|
||||||
|
- fix wrong delete ( issue 1266 )
|
||||||
|
- OpenGEX: fix invalid handling with color4 token ( issue 1262 )
|
||||||
|
- LWOLoader: fix link in loader description
|
||||||
|
- Fix error when custom CMAKE_C_FLAGS is specified
|
||||||
|
- Fast-atof: log overflow errors
|
||||||
|
- Obj-Importer: do not break when detecting an overflow ( issue 1244 )
|
||||||
|
- Obj-Importer: fix parsing of multible line data definitions
|
||||||
|
- Fixed bug where IFC models with multiple IFCSite only loaded 1 site instead of the complete model
|
||||||
|
- PLYImporter: - optimize memory and speed on ply importer / change parser to use a file stream - manage texture path in ply
|
||||||
|
import - manage texture coords on faces in ply import - correction on point cloud faces generation
|
||||||
|
- Utf8: integrate new lib ( issue 1158 )
|
||||||
|
- fixed CMAKE_MODULE_PATH overwriting previous values
|
||||||
|
- OpenGEX: Fixed bug in material color processing ( issue 1271 )
|
||||||
|
- SceneCombiner: move header for scenecombiner to public folder.
|
||||||
|
- GLTF exporter: ensure buffer view byte offsets are correctly aligned
|
||||||
|
- X3D importer: Added EXPORT and IMPORT to the list of ignored XML tags
|
||||||
|
- X3D Exporter: fixed missing attributes
|
||||||
|
- X3D importer: Fixed import of normals for the single index / normal per vertex case
|
||||||
|
- X3D importer: Fixed handling of inlined files
|
||||||
|
- X3D importer: fixed whitespace handling (issue 1202)
|
||||||
|
- X3D importer: Fixed iterator on MSVC 2015
|
||||||
|
- X3D importer: Fixed problems with auto, override and regex on older compilers
|
||||||
|
- X3D importer: Fixed missing header file
|
||||||
|
- X3D importer: Fixed path handling
|
||||||
|
- X3D importer: Implemented support for binary X3D files
|
||||||
|
- fix build without 3DS ( issue 1319 )
|
||||||
|
- pyassimp: Fixed indices for IndexedTriangleFanSet, IndexedTriangleSet and IndexedTriangleStripSet
|
||||||
|
- Fixes parameters to pyassimp.load
|
||||||
|
- Obj-Importe: Fixed texture bug due simultaneously using 'usemtl' and 'usemap' attributes
|
||||||
|
- check if all exporters are disabled ( issue 1320 )
|
||||||
|
- Remove std functions deprecated by C++11.
|
||||||
|
- X-Importer: make it deal with lines
|
||||||
|
- use correct path for compilers ( issue 1335 )
|
||||||
|
- Collada: add workaround to deal with polygon with holes
|
||||||
|
- update python readme
|
||||||
|
- Use unique node names when loading Collada files
|
||||||
|
- Fixed many FBX bugs
|
||||||
|
|
||||||
|
API COMPATIBILITY:
|
||||||
|
- Changed ABI-compatibility to v3.3.1, please rebuild your precompiled libraries ( see issue 1182 )
|
||||||
|
- VS2010 outdated
|
||||||
|
|
||||||
|
3.3.1 (2016-07-08)
|
||||||
|
|
||||||
|
FIXES/HOUSEKEEPING:
|
||||||
|
- Setup of default precision for 17 exporters
|
||||||
|
- Fix xcode project files
|
||||||
|
- Fix BlenderTesselator: offsetof operator
|
||||||
|
- Invalid version in cmake file
|
||||||
|
- Update pstdint.h to latest greatest
|
||||||
|
|
||||||
|
|
||||||
|
3.3.0 (2016-07-05)
|
||||||
|
|
||||||
|
FEATURES:
|
||||||
|
- C++11 support enabled
|
||||||
|
- New regression-test-UI
|
||||||
|
- Experimental glTF-importer support
|
||||||
|
- OpenGEX: add support for cameras and lights
|
||||||
|
- C4D: update to latest Melange-SDK
|
||||||
|
- Add a gitter channel
|
||||||
|
- Coverity check enabled
|
||||||
|
- Switch to <...> include brackets for public headers
|
||||||
|
- Enable export by pyAssimp
|
||||||
|
- CI: check windows build
|
||||||
|
- Add functionality to perform a singlepost-processing step
|
||||||
|
- many more, just check the history
|
||||||
|
|
||||||
|
FIXES/HOUSEKEEPING:
|
||||||
|
- Fix of many resource leaks in unittests and main lib
|
||||||
|
- Fix iOS-buildfor X64
|
||||||
|
- Choosing zlib manually for cmake
|
||||||
|
- many more, just check the history
|
||||||
|
|
||||||
|
|
||||||
|
3.2.1 (2016-010-10)
|
||||||
|
|
||||||
|
FEATURES:
|
||||||
|
- Updated glTF exporter to meet 1.0 specification.
|
||||||
|
|
||||||
|
FIXES/HOUSEKEEPING:
|
||||||
|
- Fixed glTF Validator errors for exported glTF format.
|
||||||
|
|
||||||
|
ISSUES:
|
||||||
|
- Hard coded sampler setting for
|
||||||
|
- magFilter
|
||||||
|
- minFilter
|
||||||
|
- void* in ExportData for accessor max and min.
|
||||||
|
|
||||||
|
|
||||||
|
3.2.0 (2015-11-03)
|
||||||
|
|
||||||
|
FEATURES:
|
||||||
|
- OpenDDL-Parser is part of contrib-source.
|
||||||
|
- Experimental OpenGEX-support
|
||||||
|
- CI-check for linux and windows
|
||||||
|
- Coverity check added
|
||||||
|
- New regression testsuite.
|
||||||
|
|
||||||
|
FIXES/HOUSEKEEPING:
|
||||||
|
- Hundreds of bugfixes in all parts of the library
|
||||||
|
- Unified line endings
|
||||||
|
|
||||||
|
|
||||||
|
API COMPATIBILITY:
|
||||||
|
- Removed precompiled header to increase build speed for linux
|
||||||
|
|
||||||
|
|
||||||
|
3.1.1 (2014-06-15)
|
||||||
|
|
||||||
|
FEATURES:
|
||||||
|
- Support for FBX 2013 and newer, binary and ASCII (this is partly
|
||||||
|
work from Google Summer of Code 2012)
|
||||||
|
- Support for OGRE binary mesh and skeleton format
|
||||||
|
- Updated BLEND support for newer Blender versions
|
||||||
|
- Support for arbitrary meta data, used to hold FBX and DAE metadata
|
||||||
|
- OBJ Export now produces smaller files
|
||||||
|
- Meshes can now have names, this is supported by the major importers
|
||||||
|
- Improved IFC geometry generation
|
||||||
|
- M3 support has been removed
|
||||||
|
|
||||||
|
FIXES/HOUSEKEEPING:
|
||||||
|
- Hundreds of bugfixes in all parts of the library
|
||||||
|
- CMake is now the primary build system
|
||||||
|
|
||||||
|
API COMPATIBILITY:
|
||||||
|
- 3.1.1 is not binary compatible to 3.0 due to aiNode::mMetaData
|
||||||
|
and aiMesh::mName
|
||||||
|
- Export interface has been cleaned up and unified
|
||||||
|
- Other than that no relevant changes
|
||||||
|
|
||||||
|
|
||||||
|
3.0 (2012-07-07)
|
||||||
|
|
||||||
|
FEATURES:
|
||||||
|
- new export interface similar to the import API.
|
||||||
|
- Supported export formats: Collada, OBJ, PLY and STL
|
||||||
|
- added new import formats: XGL/ZGL, M3 (experimental)
|
||||||
|
- new postprocessing steps: Debone
|
||||||
|
- vastly improved IFC (Industry Foundation Classes) support
|
||||||
|
- introduced API to query importer meta information (such as supported
|
||||||
|
format versions, full name, maintainer info).
|
||||||
|
- reworked Ogre XML import
|
||||||
|
- C-API now supports per-import properties
|
||||||
|
|
||||||
|
FIXES/HOUSEKEEPING:
|
||||||
|
|
||||||
|
- hundreds of bugfixes in all parts of the library
|
||||||
|
- unified naming and cleanup of public headers
|
||||||
|
- improved CMake build system
|
||||||
|
- templatized math library
|
||||||
|
- reduce dependency on boost.thread, only remaining spot
|
||||||
|
is synchronization for the C logging API
|
||||||
|
|
||||||
|
API COMPATIBILITY:
|
||||||
|
- renamed headers, export interface, C API properties and meta data
|
||||||
|
prevent compatibility with code written for 2.0, but in
|
||||||
|
most cases these can be easily resolved
|
||||||
|
- Note: 3.0 is not binary compatible with 2.0
|
||||||
|
|
||||||
|
|
||||||
|
2.0 (2010-11-21)
|
||||||
|
|
||||||
|
FEATURES:
|
||||||
|
- Add support for static Blender (*.blend) scenes
|
||||||
|
- Add support for Q3BSP scenes
|
||||||
|
- Add a windows-based OpenGL sample featuring texturing & basic materials
|
||||||
|
- Add an experimental progress feedback interface.
|
||||||
|
- Vastly improved performance (up to 500%, depending on mesh size and
|
||||||
|
spatial structure) in some expensive postprocessing steps
|
||||||
|
- AssimpView now uses a reworked layout which leaves more space
|
||||||
|
to the scene hierarchy window
|
||||||
|
|
||||||
|
- Add C# bindings ('Assimp.NET')
|
||||||
|
- Keep BSD-licensed and otherwise free test files in separate
|
||||||
|
folders (./test/models and ./test/models-nonbsd).
|
||||||
|
|
||||||
|
FIXES:
|
||||||
|
- Many Collada bugfixes, improve fault tolerance
|
||||||
|
- Fix possible crashes in the Obj loader
|
||||||
|
- Improve the Ogre XML loader
|
||||||
|
- OpenGL-sample now works with MinGW
|
||||||
|
- Fix Importer::FindLoader failing on uppercase file extensions
|
||||||
|
- Fix flawed path handling when locating external files
|
||||||
|
- Limit the maximum number of vertices, faces, face indices and
|
||||||
|
weights that Assimp is able to handle. This is to avoid
|
||||||
|
crashes due to overflowing counters.
|
||||||
|
|
||||||
|
- Updated XCode project files
|
||||||
|
- Further CMAKE build improvements
|
||||||
|
|
||||||
|
|
||||||
|
API CHANGES:
|
||||||
|
- Add data structures for vertex-based animations (These are not
|
||||||
|
currently used, however ...)
|
||||||
|
- Some Assimp::Importer methods are const now.
|
||||||
|
|
||||||
|
|
||||||
|
1.1 (2010-04-17)
|
||||||
|
This is the list of relevant changes from the 1.0 (r412) release to 1.1 (r700).
|
||||||
|
|
||||||
|
FEATURES:
|
||||||
|
- Vastly improved Collada support
|
||||||
|
- Add MS3D (Milkshape 3D) support
|
||||||
|
- Add support for Ogre XML static meshes
|
||||||
|
- Add experimental COB (TrueSpace) support
|
||||||
|
- Automatic test suite to quickly locate regressions
|
||||||
|
- D bindings (`dAssimp`)
|
||||||
|
- Python 2.n bindings (`PyAssimp`)
|
||||||
|
- Add basic support for Unicode input files (utf8, utf16 and utf32)
|
||||||
|
- Add further utilities to the `assimp` tool (xml/binary dumps, quick file stats)
|
||||||
|
- Switch to a CMAKE-based build system including an install target for unix'es
|
||||||
|
- Automatic evaluation of subdivision surfaces for some formats.
|
||||||
|
- Add `Importer::ReadFileFromMemory` and the corresponding C-API `aiReadFileFromMemory`
|
||||||
|
- Expose further math utilities via the C-API (i.e. `aiMultiplyMatrix4`)
|
||||||
|
|
||||||
|
- Move noboost files away from the public include directory
|
||||||
|
- Many, many bugfixes and improvements in existing loaders and postprocessing steps
|
||||||
|
- Documentation improved and clarified in many places.
|
||||||
|
- Add a sample on using Assimp in conjunction with OpenGL
|
||||||
|
|
||||||
|
- Distribution/packaging: comfortable SDK installer for Windows
|
||||||
|
- Distribution/packaging: improved release packages for other architectures
|
||||||
|
|
||||||
|
CRITICAL FIXES:
|
||||||
|
- Resolve problems with clashing heap managers, STL ABIs and runtime libraries (win32)
|
||||||
|
- Fix automatic detection of file type if no file extension is given
|
||||||
|
- Improved exception safety and robustness, prevent leaking of exceptions through the C interface
|
||||||
|
- Fix possible heap corruption due to material properties pulled in incorrectly
|
||||||
|
- Avoid leaking in certain error scenarios
|
||||||
|
- Fix 64 bit compatibility problems in some loaders (i.e. MDL)
|
||||||
|
|
||||||
|
BREAKING API CHANGES:
|
||||||
|
- None -
|
||||||
|
|
||||||
|
MINOR API BEHAVIOUR CHANGES:
|
||||||
|
- Change quaternion orientation to suit to the more common convention (-w).
|
||||||
|
- aiString is utf8 now. Not yet consistent, however.
|
||||||
-3961
File diff suppressed because it is too large
Load Diff
+3
-3
@@ -1,6 +1,6 @@
|
|||||||
# Open Asset Import Library (assimp)
|
# Open Asset Import Library (assimp)
|
||||||
# ----------------------------------------------------------------------
|
# ----------------------------------------------------------------------
|
||||||
# Copyright (c) 2006-2026, assimp team
|
# Copyright (c) 2006-2025, assimp team
|
||||||
#
|
#
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
@@ -104,7 +104,7 @@ IF(ASSIMP_HUNTER_ENABLED)
|
|||||||
ADD_DEFINITIONS(-DASSIMP_USE_HUNTER)
|
ADD_DEFINITIONS(-DASSIMP_USE_HUNTER)
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
PROJECT(Assimp VERSION 6.0.5
|
PROJECT(Assimp VERSION 6.0.2
|
||||||
LANGUAGES C CXX
|
LANGUAGES C CXX
|
||||||
DESCRIPTION "Open Asset Import Library (Assimp) is a library to import various well-known 3D model formats in a uniform manner."
|
DESCRIPTION "Open Asset Import Library (Assimp) is a library to import various well-known 3D model formats in a uniform manner."
|
||||||
)
|
)
|
||||||
@@ -362,7 +362,7 @@ ELSEIF(MSVC)
|
|||||||
elseif((GENERATOR_IS_MULTI_CONFIG) OR (CMAKE_BUILD_TYPE MATCHES Release))
|
elseif((GENERATOR_IS_MULTI_CONFIG) OR (CMAKE_BUILD_TYPE MATCHES Release))
|
||||||
message("-- MSVC PDB generation disabled. Release binary will not be debuggable.")
|
message("-- MSVC PDB generation disabled. Release binary will not be debuggable.")
|
||||||
endif()
|
endif()
|
||||||
if(NOT CMAKE_CXX_FLAGS MATCHES "/utf-8")
|
if(NOT /utf-8 IN_LIST CMAKE_CXX_FLAGS)
|
||||||
# Source code is encoded in UTF-8
|
# Source code is encoded in UTF-8
|
||||||
ADD_COMPILE_OPTIONS(/source-charset:utf-8)
|
ADD_COMPILE_OPTIONS(/source-charset:utf-8)
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
@@ -14,16 +14,6 @@
|
|||||||
"ASSIMP_BUILD_ASSIMP_TOOLS": "OFF"
|
"ASSIMP_BUILD_ASSIMP_TOOLS": "OFF"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "assimp_static",
|
|
||||||
"binaryDir": "${sourceDir}",
|
|
||||||
"cacheVariables": {
|
|
||||||
"CMAKE_BUILD_TYPE": "Release",
|
|
||||||
"BUILD_SHARED_LIBS": "OFF",
|
|
||||||
"ASSIMP_BUILD_ASSIMP_TOOLS": "OFF",
|
|
||||||
"ASSIMP_DOUBLE_PRECISION": "ON"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "assimp_double_precision",
|
"name": "assimp_double_precision",
|
||||||
"binaryDir": "${sourceDir}",
|
"binaryDir": "${sourceDir}",
|
||||||
@@ -39,15 +29,6 @@
|
|||||||
"cacheVariables": {
|
"cacheVariables": {
|
||||||
"ASSIMP_BUILD_ASSIMP_TOOLS": "ON"
|
"ASSIMP_BUILD_ASSIMP_TOOLS": "ON"
|
||||||
}
|
}
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "assimp_all",
|
|
||||||
"binaryDir": "${sourceDir}",
|
|
||||||
"cacheVariables": {
|
|
||||||
"ASSIMP_BUILD_ASSIMP_TOOLS": "ON",
|
|
||||||
"ASSIMP_BUILD_SAMPLES": "ON",
|
|
||||||
"ASSIMP_BUILD_DOCS": "ON"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
Redistribution and use of this software in source and binary forms,
|
Redistribution and use of this software in source and binary forms,
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ Open Asset Import Library (assimp)
|
|||||||
|
|
||||||
Open Asset Import Library is a library that loads various 3D file formats into a shared, in-memory format. It supports more than __40 file formats__ for import and a growing selection of file formats for export.
|
Open Asset Import Library is a library that loads various 3D file formats into a shared, in-memory format. It supports more than __40 file formats__ for import and a growing selection of file formats for export.
|
||||||
|
|
||||||
## Current project status
|
### Current project status
|
||||||

|

|
||||||
[](https://www.codacy.com/gh/assimp/assimp/dashboard?utm_source=github.com&utm_medium=referral&utm_content=assimp/assimp&utm_campaign=Badge_Grade)
|
[](https://www.codacy.com/gh/assimp/assimp/dashboard?utm_source=github.com&utm_medium=referral&utm_content=assimp/assimp&utm_campaign=Badge_Grade)
|
||||||
[](https://sonarcloud.io/summary/new_code?id=assimp_assimp)
|
[](https://sonarcloud.io/summary/new_code?id=assimp_assimp)
|
||||||
@@ -19,38 +19,29 @@ Additionally, assimp features various __mesh post-processing tools__: normals an
|
|||||||
## Project activity
|
## Project activity
|
||||||

|

|
||||||
|
|
||||||
## Developer quickstart
|
### Documentation
|
||||||
```bash
|
|
||||||
git clone https://github.com/assimp/assimp
|
|
||||||
cd assimp
|
|
||||||
cmake -G Ninja -DASSIMP_BUILD_TESTS=off -DASSIMP_INSTALL=off -S . -B build
|
|
||||||
cd build
|
|
||||||
ninja
|
|
||||||
```
|
|
||||||
|
|
||||||
## Documentation
|
|
||||||
Read [our latest documentation](https://the-asset-importer-lib-documentation.readthedocs.io/en/latest/).
|
Read [our latest documentation](https://the-asset-importer-lib-documentation.readthedocs.io/en/latest/).
|
||||||
|
|
||||||
## Pre-built binaries
|
### Pre-built binaries
|
||||||
Download binaries from [our Itch Projectspace](https://kimkulling.itch.io/the-asset-importer-lib).
|
Download binaries from [our Itch Projectspace](https://kimkulling.itch.io/the-asset-importer-lib).
|
||||||
|
|
||||||
## Test data
|
### Test data
|
||||||
Clone [our model database for testing purposes](https://github.com/assimp/assimp-mdb).
|
Clone [our model database for testing purposes](https://github.com/assimp/assimp-mdb).
|
||||||
|
|
||||||
## Communities
|
### Communities
|
||||||
- Ask questions at [the Assimp Discussion Board](https://github.com/assimp/assimp/discussions).
|
- Ask questions at [the Assimp Discussion Board](https://github.com/assimp/assimp/discussions).
|
||||||
- Find us on [discord](https://discord.gg/kKazXMXDy2)
|
- Find us on [discord](https://discord.gg/kKazXMXDy2)
|
||||||
- Ask [the Assimp community on Reddit](https://www.reddit.com/r/Assimp/).
|
- Ask [the Assimp community on Reddit](https://www.reddit.com/r/Assimp/).
|
||||||
- Ask on [StackOverflow with the assimp-tag](http://stackoverflow.com/questions/tagged/assimp?sort=newest).
|
- Ask on [StackOverflow with the assimp-tag](http://stackoverflow.com/questions/tagged/assimp?sort=newest).
|
||||||
- Nothing has worked? File a question or an issue report at [The Assimp-Issue Tracker](https://github.com/assimp/assimp/issues)
|
- Nothing has worked? File a question or an issue report at [The Assimp-Issue Tracker](https://github.com/assimp/assimp/issues)
|
||||||
|
|
||||||
## Supported file formats
|
#### Supported file formats
|
||||||
See [the complete list of supported formats](https://github.com/assimp/assimp/blob/master/doc/Fileformats.md).
|
See [the complete list of supported formats](https://github.com/assimp/assimp/blob/master/doc/Fileformats.md).
|
||||||
|
|
||||||
## Building
|
### Building
|
||||||
Start by reading [our build instructions](https://github.com/assimp/assimp/blob/master/Build.md). We are available in vcpkg, and our build system is CMake; if you used CMake before there is a good chance you know what to do.
|
Start by reading [our build instructions](https://github.com/assimp/assimp/blob/master/Build.md). We are available in vcpkg, and our build system is CMake; if you used CMake before there is a good chance you know what to do.
|
||||||
|
|
||||||
## Ports
|
### Ports
|
||||||
* [Android](port/AndroidJNI/README.md)
|
* [Android](port/AndroidJNI/README.md)
|
||||||
* [Python](port/PyAssimp/README.md)
|
* [Python](port/PyAssimp/README.md)
|
||||||
* [.NET](https://github.com/Saalvage/AssimpNetter)
|
* [.NET](https://github.com/Saalvage/AssimpNetter)
|
||||||
@@ -63,11 +54,11 @@ Start by reading [our build instructions](https://github.com/assimp/assimp/blob/
|
|||||||
* [HAXE-Port](https://github.com/longde123/assimp-haxe) The Assimp-HAXE-port.
|
* [HAXE-Port](https://github.com/longde123/assimp-haxe) The Assimp-HAXE-port.
|
||||||
* [Rust](https://github.com/jkvargas/russimp)
|
* [Rust](https://github.com/jkvargas/russimp)
|
||||||
|
|
||||||
## Other tools
|
### Other tools
|
||||||
[Qt5-ModelViewer](https://github.com/sharjith/ModelViewer-Qt5) is a powerful viewer based on Qt5 and Assimp's import and export abilities.<br>
|
[Qt5-ModelViewer](https://github.com/sharjith/ModelViewer-Qt5) is a powerful viewer based on Qt5 and Assimp's import and export abilities.<br>
|
||||||
[Assimp-Viewer](https://github.com/assimp/assimp_view) is an experimental implementation for an Asset-Viewer based on ImGUI and Assimp (experimental).
|
[Assimp-Viewer](https://github.com/assimp/assimp_view) is an experimental implementation for an Asset-Viewer based on ImGUI and Assimp (experimental).
|
||||||
|
|
||||||
### Repository structure
|
#### Repository structure ####
|
||||||
Open Asset Import Library is implemented in C++. The directory structure looks like this:
|
Open Asset Import Library is implemented in C++. The directory structure looks like this:
|
||||||
|
|
||||||
```txt
|
```txt
|
||||||
@@ -94,7 +85,7 @@ test Unit- and regression tests, test suite of models
|
|||||||
tools Tools (old assimp viewer, command line `assimp`)
|
tools Tools (old assimp viewer, command line `assimp`)
|
||||||
samples Small number of samples to illustrate possible use cases for Assimp
|
samples Small number of samples to illustrate possible use cases for Assimp
|
||||||
```
|
```
|
||||||
## Contributing
|
### Contributing
|
||||||
|
|
||||||
We would greatly appreciate for you to contribute to assimp. The easiest way to get involved is to submit
|
We would greatly appreciate for you to contribute to assimp. The easiest way to get involved is to submit
|
||||||
a pull request with your changes against the main repository's `master` branch.
|
a pull request with your changes against the main repository's `master` branch.
|
||||||
@@ -122,7 +113,7 @@ You can support the project with your organization. Your logo will show up here
|
|||||||
|
|
||||||
<a href="https://opencollective.com/assimp/organization/0/website"><img src="https://opencollective.com/assimp/organization/0/avatar.svg"></a>
|
<a href="https://opencollective.com/assimp/organization/0/website"><img src="https://opencollective.com/assimp/organization/0/avatar.svg"></a>
|
||||||
|
|
||||||
## License ###
|
### License ###
|
||||||
Our license is based on the modified, __3-clause BSD__-License.
|
Our license is based on the modified, __3-clause BSD__-License.
|
||||||
|
|
||||||
An _informal_ summary is: do whatever you want, but include Assimp's license text with your product -
|
An _informal_ summary is: do whatever you want, but include Assimp's license text with your product -
|
||||||
|
|||||||
+1
-1
@@ -6,7 +6,7 @@ The current version of Assimp that's being supported with security updates:
|
|||||||
|
|
||||||
| Version | Supported |
|
| Version | Supported |
|
||||||
| ------- | ------------------ |
|
| ------- | ------------------ |
|
||||||
| 6.0.5 | :white_check_mark: |
|
| 6.0.2 | :white_check_mark: |
|
||||||
|
|
||||||
## Reporting a Vulnerability
|
## Reporting a Vulnerability
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,72 @@
|
|||||||
|
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||||
|
# file Copyright.txt or https://cmake.org/licensing for details.
|
||||||
|
|
||||||
|
#.rst:
|
||||||
|
# FindDevIL
|
||||||
|
# ---------
|
||||||
|
#
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# This module locates the developer's image library.
|
||||||
|
# http://openil.sourceforge.net/
|
||||||
|
#
|
||||||
|
# This module sets:
|
||||||
|
#
|
||||||
|
# ::
|
||||||
|
#
|
||||||
|
# IL_LIBRARIES - the name of the IL library. These include the full path to
|
||||||
|
# the core DevIL library. This one has to be linked into the
|
||||||
|
# application.
|
||||||
|
# ILU_LIBRARIES - the name of the ILU library. Again, the full path. This
|
||||||
|
# library is for filters and effects, not actual loading. It
|
||||||
|
# doesn't have to be linked if the functionality it provides
|
||||||
|
# is not used.
|
||||||
|
# ILUT_LIBRARIES - the name of the ILUT library. Full path. This part of the
|
||||||
|
# library interfaces with OpenGL. It is not strictly needed
|
||||||
|
# in applications.
|
||||||
|
# IL_INCLUDE_DIR - where to find the il.h, ilu.h and ilut.h files.
|
||||||
|
# IL_FOUND - this is set to TRUE if all the above variables were set.
|
||||||
|
# This will be set to false if ILU or ILUT are not found,
|
||||||
|
# even if they are not needed. In most systems, if one
|
||||||
|
# library is found all the others are as well. That's the
|
||||||
|
# way the DevIL developers release it.
|
||||||
|
|
||||||
|
# TODO: Add version support.
|
||||||
|
# Tested under Linux and Windows (MSVC)
|
||||||
|
|
||||||
|
#include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
|
||||||
|
include(FindPackageHandleStandardArgs)
|
||||||
|
|
||||||
|
find_path(IL_INCLUDE_DIR il.h
|
||||||
|
PATH_SUFFIXES include IL
|
||||||
|
DOC "The path to the directory that contains il.h"
|
||||||
|
)
|
||||||
|
|
||||||
|
#message("IL_INCLUDE_DIR is ${IL_INCLUDE_DIR}")
|
||||||
|
|
||||||
|
find_library(IL_LIBRARIES
|
||||||
|
NAMES IL DEVIL
|
||||||
|
PATH_SUFFIXES lib64 lib lib32
|
||||||
|
DOC "The file that corresponds to the base il library."
|
||||||
|
)
|
||||||
|
|
||||||
|
#message("IL_LIBRARIES is ${IL_LIBRARIES}")
|
||||||
|
|
||||||
|
find_library(ILUT_LIBRARIES
|
||||||
|
NAMES ILUT
|
||||||
|
PATH_SUFFIXES lib64 lib lib32
|
||||||
|
DOC "The file that corresponds to the il (system?) utility library."
|
||||||
|
)
|
||||||
|
|
||||||
|
#message("ILUT_LIBRARIES is ${ILUT_LIBRARIES}")
|
||||||
|
|
||||||
|
find_library(ILU_LIBRARIES
|
||||||
|
NAMES ILU
|
||||||
|
PATH_SUFFIXES lib64 lib lib32
|
||||||
|
DOC "The file that corresponds to the il utility library."
|
||||||
|
)
|
||||||
|
|
||||||
|
#message("ILU_LIBRARIES is ${ILU_LIBRARIES}")
|
||||||
|
|
||||||
|
FIND_PACKAGE_HANDLE_STANDARD_ARGS(IL DEFAULT_MSG
|
||||||
|
IL_LIBRARIES IL_INCLUDE_DIR)
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
---------------------------------------------------------------------------
|
---------------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
---------------------------------------------------------------------------
|
---------------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
---------------------------------------------------------------------------
|
---------------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
@@ -607,10 +607,6 @@ aiNode *AC3DImporter::ConvertObjectSection(Object &object,
|
|||||||
const Surface::SurfaceEntry &entry1 = src.entries[i];
|
const Surface::SurfaceEntry &entry1 = src.entries[i];
|
||||||
const Surface::SurfaceEntry &entry2 = src.entries[i + 1];
|
const Surface::SurfaceEntry &entry2 = src.entries[i + 1];
|
||||||
const Surface::SurfaceEntry &entry3 = src.entries[i + 2];
|
const Surface::SurfaceEntry &entry3 = src.entries[i + 2];
|
||||||
const unsigned int verticesNeeded = isDoubleSided ? 6 : 3;
|
|
||||||
if (static_cast<unsigned>(vertices - mesh->mVertices) + verticesNeeded > mesh->mNumVertices) {
|
|
||||||
throw DeadlyImportError("AC3D: Invalid number of vertices");
|
|
||||||
}
|
|
||||||
|
|
||||||
aiFace &face = *faces++;
|
aiFace &face = *faces++;
|
||||||
face.mNumIndices = 3;
|
face.mNumIndices = 3;
|
||||||
@@ -665,10 +661,6 @@ aiNode *AC3DImporter::ConvertObjectSection(Object &object,
|
|||||||
unsigned int tmp = (unsigned int)(*it).entries.size();
|
unsigned int tmp = (unsigned int)(*it).entries.size();
|
||||||
if (Surface::OpenLine == type) --tmp;
|
if (Surface::OpenLine == type) --tmp;
|
||||||
for (unsigned int m = 0; m < tmp; ++m) {
|
for (unsigned int m = 0; m < tmp; ++m) {
|
||||||
if (static_cast<unsigned>(vertices - mesh->mVertices) + 2 > mesh->mNumVertices) {
|
|
||||||
throw DeadlyImportError("AC3D: Invalid number of vertices");
|
|
||||||
}
|
|
||||||
|
|
||||||
aiFace &face = *faces++;
|
aiFace &face = *faces++;
|
||||||
|
|
||||||
face.mNumIndices = 2;
|
face.mNumIndices = 2;
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
---------------------------------------------------------------------------
|
---------------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
---------------------------------------------------------------------------
|
---------------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
---------------------------------------------------------------------------
|
---------------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
---------------------------------------------------------------------------
|
---------------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
---------------------------------------------------------------------------
|
---------------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
---------------------------------------------------------------------------
|
---------------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
---------------------------------------------------------------------------
|
---------------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
---------------------------------------------------------------------------
|
---------------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
---------------------------------------------------------------------------
|
---------------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
@@ -149,18 +149,11 @@ aiQuaternion Read<aiQuaternion>(IOStream *stream) {
|
|||||||
template <>
|
template <>
|
||||||
aiString Read<aiString>(IOStream *stream) {
|
aiString Read<aiString>(IOStream *stream) {
|
||||||
aiString s;
|
aiString s;
|
||||||
uint32_t len;
|
stream->Read(&s.length, 4, 1);
|
||||||
if (stream->Read(&len, 4, 1) != 1) {
|
if (s.length) {
|
||||||
throw DeadlyImportError("ASSBIN: Unexpected EOF reading string length");
|
stream->Read(s.data, s.length, 1);
|
||||||
}
|
}
|
||||||
if (len >= AI_MAXLEN) {
|
s.data[s.length] = 0;
|
||||||
throw DeadlyImportError("ASSBIN: String length too large, potential buffer overflow attempt");
|
|
||||||
}
|
|
||||||
s.length = len;
|
|
||||||
if ((s.length > 0) && (stream->Read(s.data, s.length, 1) != 1)) {
|
|
||||||
throw DeadlyImportError("ASSBIN: Unexpected EOF reading string data");
|
|
||||||
}
|
|
||||||
s.data[s.length] = '\0';
|
|
||||||
|
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
---------------------------------------------------------------------------
|
---------------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
@@ -469,11 +469,9 @@ void B3DImporter::ReadBONE(int id) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
void B3DImporter::ReadKEYS(AnimKeys& keys) {
|
void B3DImporter::ReadKEYS(aiNodeAnim *nodeAnim) {
|
||||||
vector<aiVectorKey>& trans = keys.positionKeys;
|
vector<aiVectorKey> trans, scale;
|
||||||
vector<aiVectorKey>& scale = keys.scalingKeys;
|
vector<aiQuatKey> rot;
|
||||||
vector<aiQuatKey>& rot = keys.rotationKeys;
|
|
||||||
|
|
||||||
int flags = ReadInt();
|
int flags = ReadInt();
|
||||||
while (ChunkSize()) {
|
while (ChunkSize()) {
|
||||||
int frame = ReadInt();
|
int frame = ReadInt();
|
||||||
@@ -487,6 +485,21 @@ void B3DImporter::ReadKEYS(AnimKeys& keys) {
|
|||||||
rot.emplace_back(frame, ReadQuat());
|
rot.emplace_back(frame, ReadQuat());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (flags & 1) {
|
||||||
|
nodeAnim->mNumPositionKeys = static_cast<unsigned int>(trans.size());
|
||||||
|
nodeAnim->mPositionKeys = to_array(trans);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (flags & 2) {
|
||||||
|
nodeAnim->mNumScalingKeys = static_cast<unsigned int>(scale.size());
|
||||||
|
nodeAnim->mScalingKeys = to_array(scale);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (flags & 4) {
|
||||||
|
nodeAnim->mNumRotationKeys = static_cast<unsigned int>(rot.size());
|
||||||
|
nodeAnim->mRotationKeys = to_array(rot);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
@@ -529,7 +542,6 @@ aiNode *B3DImporter::ReadNODE(aiNode *parent) {
|
|||||||
std::unique_ptr<aiNodeAnim> nodeAnim;
|
std::unique_ptr<aiNodeAnim> nodeAnim;
|
||||||
vector<unsigned> meshes;
|
vector<unsigned> meshes;
|
||||||
vector<aiNode *> children;
|
vector<aiNode *> children;
|
||||||
AnimKeys keys;
|
|
||||||
|
|
||||||
while (ChunkSize()) {
|
while (ChunkSize()) {
|
||||||
const string chunk = ReadChunk();
|
const string chunk = ReadChunk();
|
||||||
@@ -548,7 +560,7 @@ aiNode *B3DImporter::ReadNODE(aiNode *parent) {
|
|||||||
nodeAnim.reset(new aiNodeAnim);
|
nodeAnim.reset(new aiNodeAnim);
|
||||||
nodeAnim->mNodeName = node->mName;
|
nodeAnim->mNodeName = node->mName;
|
||||||
}
|
}
|
||||||
ReadKEYS(keys);
|
ReadKEYS(nodeAnim.get());
|
||||||
} else if (chunk == "NODE") {
|
} else if (chunk == "NODE") {
|
||||||
aiNode *child = ReadNODE(node);
|
aiNode *child = ReadNODE(node);
|
||||||
children.push_back(child);
|
children.push_back(child);
|
||||||
@@ -557,21 +569,6 @@ aiNode *B3DImporter::ReadNODE(aiNode *parent) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (nodeAnim) {
|
if (nodeAnim) {
|
||||||
if (!keys.positionKeys.empty()) {
|
|
||||||
nodeAnim->mNumPositionKeys = static_cast<unsigned int>(keys.positionKeys.size());
|
|
||||||
nodeAnim->mPositionKeys = to_array(keys.positionKeys);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!keys.scalingKeys.empty()) {
|
|
||||||
nodeAnim->mNumScalingKeys = static_cast<unsigned int>(keys.scalingKeys.size());
|
|
||||||
nodeAnim->mScalingKeys = to_array(keys.scalingKeys);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!keys.rotationKeys.empty()) {
|
|
||||||
nodeAnim->mNumRotationKeys = static_cast<unsigned int>(keys.rotationKeys.size());
|
|
||||||
nodeAnim->mRotationKeys = to_array(keys.rotationKeys);
|
|
||||||
}
|
|
||||||
|
|
||||||
_nodeAnims.emplace_back(std::move(nodeAnim));
|
_nodeAnims.emplace_back(std::move(nodeAnim));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
@@ -49,7 +49,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||||||
#include <assimp/types.h>
|
#include <assimp/types.h>
|
||||||
#include <assimp/mesh.h>
|
#include <assimp/mesh.h>
|
||||||
#include <assimp/material.h>
|
#include <assimp/material.h>
|
||||||
#include <assimp/anim.h>
|
|
||||||
#include <assimp/BaseImporter.h>
|
#include <assimp/BaseImporter.h>
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
@@ -95,12 +94,6 @@ private:
|
|||||||
float weights[4];
|
float weights[4];
|
||||||
};
|
};
|
||||||
|
|
||||||
struct AnimKeys {
|
|
||||||
std::vector<aiVectorKey> positionKeys;
|
|
||||||
std::vector<aiVectorKey> scalingKeys;
|
|
||||||
std::vector<aiQuatKey> rotationKeys;
|
|
||||||
};
|
|
||||||
|
|
||||||
AI_WONT_RETURN void Oops() AI_WONT_RETURN_SUFFIX;
|
AI_WONT_RETURN void Oops() AI_WONT_RETURN_SUFFIX;
|
||||||
AI_WONT_RETURN void Fail(const std::string &str) AI_WONT_RETURN_SUFFIX;
|
AI_WONT_RETURN void Fail(const std::string &str) AI_WONT_RETURN_SUFFIX;
|
||||||
|
|
||||||
@@ -111,7 +104,7 @@ private:
|
|||||||
void ReadTRIS( int v0 );
|
void ReadTRIS( int v0 );
|
||||||
void ReadMESH();
|
void ReadMESH();
|
||||||
void ReadBONE( int id );
|
void ReadBONE( int id );
|
||||||
void ReadKEYS( AnimKeys& keys );
|
void ReadKEYS( aiNodeAnim *nodeAnim );
|
||||||
void ReadANIM();
|
void ReadANIM();
|
||||||
|
|
||||||
aiNode *ReadNODE( aiNode *parent );
|
aiNode *ReadNODE( aiNode *parent );
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
---------------------------------------------------------------------------
|
---------------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
Redistribution and use of this software in source and binary forms,
|
Redistribution and use of this software in source and binary forms,
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
Redistribution and use of this software in source and binary forms,
|
Redistribution and use of this software in source and binary forms,
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
Redistribution and use of this software in source and binary forms,
|
Redistribution and use of this software in source and binary forms,
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
---------------------------------------------------------------------------
|
---------------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
---------------------------------------------------------------------------
|
---------------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
@@ -507,20 +507,16 @@ void ColladaLoader::BuildMeshesForNode(const ColladaParser &pParser, const Node
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (table && !table->mMap.empty()) {
|
if (table && !table->mMap.empty()) {
|
||||||
if (matIdx < newMats.size()) {
|
std::pair<Collada::Effect *, aiMaterial *> &mat = newMats[matIdx];
|
||||||
std::pair<Collada::Effect *, aiMaterial *> &mat = newMats[matIdx];
|
|
||||||
|
|
||||||
// Iterate through all texture channels assigned to the effect and
|
// Iterate through all texture channels assigned to the effect and
|
||||||
// check whether we have mapping information for it.
|
// check whether we have mapping information for it.
|
||||||
ApplyVertexToEffectSemanticMapping(mat.first->mTexDiffuse, *table);
|
ApplyVertexToEffectSemanticMapping(mat.first->mTexDiffuse, *table);
|
||||||
ApplyVertexToEffectSemanticMapping(mat.first->mTexAmbient, *table);
|
ApplyVertexToEffectSemanticMapping(mat.first->mTexAmbient, *table);
|
||||||
ApplyVertexToEffectSemanticMapping(mat.first->mTexSpecular, *table);
|
ApplyVertexToEffectSemanticMapping(mat.first->mTexSpecular, *table);
|
||||||
ApplyVertexToEffectSemanticMapping(mat.first->mTexEmissive, *table);
|
ApplyVertexToEffectSemanticMapping(mat.first->mTexEmissive, *table);
|
||||||
ApplyVertexToEffectSemanticMapping(mat.first->mTexTransparent, *table);
|
ApplyVertexToEffectSemanticMapping(mat.first->mTexTransparent, *table);
|
||||||
ApplyVertexToEffectSemanticMapping(mat.first->mTexBump, *table);
|
ApplyVertexToEffectSemanticMapping(mat.first->mTexBump, *table);
|
||||||
} else {
|
|
||||||
ASSIMP_LOG_WARN("Collada: Ignoring material mapping for mesh \"", mid.mMeshOrController, "\". Material index ", matIdx, " is out of bounds (newMats.size()=", newMats.size(), ").");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// built lookup index of the Mesh-Submesh-Material combination
|
// built lookup index of the Mesh-Submesh-Material combination
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
---------------------------------------------------------------------------
|
---------------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
---------------------------------------------------------------------------
|
---------------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
@@ -45,8 +45,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||||||
|
|
||||||
#ifndef ASSIMP_BUILD_NO_FBX_IMPORTER
|
#ifndef ASSIMP_BUILD_NO_FBX_IMPORTER
|
||||||
|
|
||||||
#include <algorithm>
|
|
||||||
|
|
||||||
#include "FBXParser.h"
|
#include "FBXParser.h"
|
||||||
#include "FBXDocument.h"
|
#include "FBXDocument.h"
|
||||||
#include "FBXMeshGeometry.h"
|
#include "FBXMeshGeometry.h"
|
||||||
@@ -146,10 +144,8 @@ BlendShape::BlendShape(uint64_t id, const Element& element, const Document& doc,
|
|||||||
for (const Connection* con : conns) {
|
for (const Connection* con : conns) {
|
||||||
const BlendShapeChannel* const bspc = ProcessSimpleConnection<BlendShapeChannel>(*con, false, "BlendShapeChannel -> BlendShape", element);
|
const BlendShapeChannel* const bspc = ProcessSimpleConnection<BlendShapeChannel>(*con, false, "BlendShapeChannel -> BlendShape", element);
|
||||||
if (bspc) {
|
if (bspc) {
|
||||||
// Only add a channel if it doesn't exist already
|
auto pr = blendShapeChannels.insert(bspc);
|
||||||
if (std::find(blendShapeChannels.begin(), blendShapeChannels.end(), bspc) == blendShapeChannels.end()) {
|
if (!pr.second) {
|
||||||
blendShapeChannels.push_back(bspc);
|
|
||||||
} else {
|
|
||||||
FBXImporter::LogWarn("there is the same blendShapeChannel id ", bspc->ID());
|
FBXImporter::LogWarn("there is the same blendShapeChannel id ", bspc->ID());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -174,10 +170,8 @@ BlendShapeChannel::BlendShapeChannel(uint64_t id, const Element& element, const
|
|||||||
for (const Connection* con : conns) {
|
for (const Connection* con : conns) {
|
||||||
const ShapeGeometry* const sg = ProcessSimpleConnection<ShapeGeometry>(*con, false, "Shape -> BlendShapeChannel", element);
|
const ShapeGeometry* const sg = ProcessSimpleConnection<ShapeGeometry>(*con, false, "Shape -> BlendShapeChannel", element);
|
||||||
if (sg) {
|
if (sg) {
|
||||||
// Only add a geometry if it doesn't exist already
|
auto pr = shapeGeometries.insert(sg);
|
||||||
if (std::find(shapeGeometries.begin(), shapeGeometries.end(), sg) == shapeGeometries.end()) {
|
if (!pr.second) {
|
||||||
shapeGeometries.push_back(sg);
|
|
||||||
} else {
|
|
||||||
FBXImporter::LogWarn("there is the same shapeGeometrie id ", sg->ID());
|
FBXImporter::LogWarn("there is the same shapeGeometrie id ", sg->ID());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
@@ -865,14 +865,14 @@ public:
|
|||||||
return fullWeights;
|
return fullWeights;
|
||||||
}
|
}
|
||||||
|
|
||||||
const std::vector<const ShapeGeometry*>& GetShapeGeometries() const {
|
const std::unordered_set<const ShapeGeometry*>& GetShapeGeometries() const {
|
||||||
return shapeGeometries;
|
return shapeGeometries;
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
float percent;
|
float percent;
|
||||||
WeightArray fullWeights;
|
WeightArray fullWeights;
|
||||||
std::vector<const ShapeGeometry*> shapeGeometries;
|
std::unordered_set<const ShapeGeometry*> shapeGeometries;
|
||||||
};
|
};
|
||||||
|
|
||||||
/** DOM class for BlendShape deformers */
|
/** DOM class for BlendShape deformers */
|
||||||
@@ -882,12 +882,12 @@ public:
|
|||||||
|
|
||||||
virtual ~BlendShape() = default;
|
virtual ~BlendShape() = default;
|
||||||
|
|
||||||
const std::vector<const BlendShapeChannel*>& BlendShapeChannels() const {
|
const std::unordered_set<const BlendShapeChannel*>& BlendShapeChannels() const {
|
||||||
return blendShapeChannels;
|
return blendShapeChannels;
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::vector<const BlendShapeChannel*> blendShapeChannels;
|
std::unordered_set<const BlendShapeChannel*> blendShapeChannels;
|
||||||
};
|
};
|
||||||
|
|
||||||
/** DOM class for skin deformer clusters (aka sub-deformers) */
|
/** DOM class for skin deformer clusters (aka sub-deformers) */
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2026, assimp team
|
Copyright (c) 2006-2025, assimp team
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
@@ -1766,8 +1766,8 @@ void FBXExporter::WriteObjects () {
|
|||||||
// can't easily determine which texture path will be correct,
|
// can't easily determine which texture path will be correct,
|
||||||
// so just store what we have in every field.
|
// so just store what we have in every field.
|
||||||
// these being incorrect is a common problem with FBX anyway.
|
// these being incorrect is a common problem with FBX anyway.
|
||||||
tnode.AddChild("FileName", tfile_path);
|
tnode.AddChild("FileName", tp_elem->second);
|
||||||
tnode.AddChild("RelativeFilename", tfile_path);
|
tnode.AddChild("RelativeFilename", tp_elem->second);
|
||||||
tnode.AddChild("ModelUVTranslation", double(0.0), double(0.0));
|
tnode.AddChild("ModelUVTranslation", double(0.0), double(0.0));
|
||||||
tnode.AddChild("ModelUVScaling", double(1.0), double(1.0));
|
tnode.AddChild("ModelUVScaling", double(1.0), double(1.0));
|
||||||
tnode.AddChild("Texture_Alpha_Source", "None");
|
tnode.AddChild("Texture_Alpha_Source", "None");
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user