Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove SingleLayerInfluenceMask due to Serialization Issues and Dependency Conflicts. A Custom Solution Not Suited for Core #2317

Open
capdevon opened this issue Oct 23, 2024 · 2 comments

Comments

@capdevon
Copy link
Contributor

capdevon commented Oct 23, 2024

The recent change to ArmatureMask implementing Savable has caused an issue with SingleLayerInfluenceMask (which extends ArmatureMask) serialization.
Due to its dependencies on AnimControl and SkinningControl, serialization is now impossible and the class exhibits inconsistent behavior.

Given its reliance on these external controls and potential for conflicts, I believe SingleLayerInfluenceMask is a custom solution best suited for specific needs. Its presence in the jME engine core can lead to maintenance issues and hinder the future evolution of animation base classes.

We recommend its removal from the jME engine core.
NOTE: this class was introduced in the latest 3.7.0-stable release.

https://github.com/jMonkeyEngine/jmonkeyengine/blob/master/jme3-core/src/main/java/com/jme3/anim/SingleLayerInfluenceMask.java#L42

@codex128
Copy link
Contributor

Hmm, that's a shame. I think it is a particularly useful class. Perhaps this would work, along with some documentation?

@Override
public void write(JmeExporter ex) throws IOException {
    throw new UnsupportedOperationException("Read/write not supported.");
}
@Override
public void read(JmeImporter im) throws IOException {
    throw new UnsupportedOperationException("Read/write not supported.");
}

If not, I can move SingleLayerInfluenceMask to a utility library.

@capdevon
Copy link
Contributor Author

Personally, I do not think this is an acceptable solution. This class is not necessary for the proper functioning of the engine. It is a utility class and should be in an external library.

To maintain flexibility and avoid potential conflicts, I propose that SingleLayerInfluenceMask be moved to an external library. This would allow for more focused development and maintenance, while also preserving its accessibility for those who find it useful.

@capdevon capdevon changed the title Removal of SingleLayerInfluenceMask from jME Core due to Serialization issues Remove SingleLayerInfluenceMask due to Serialization Issues and Dependency Conflicts. A Custom Solution Not Suited for Core Nov 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants