-
Notifications
You must be signed in to change notification settings - Fork 176
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Native client library avatar mixer APIs. #1655
Closed
Closed
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
since it's not working on windows and mac automated builds.
since automated build environments for mac and windows don't seem to have it in the standard library.
specifically orientation, bounding box and scale.
specifically look at position, audio loudness, sensor to world matrix additional flags, parent info and local position.
specifically hand controllers, face tracker info and joint data.
The following links are available:
build (macOS-10.15, full) build (windows-2019, full) |
specifically far grab joints, skeleton data and grab data.
The following links are available: |
The following links are available: |
4 tasks
QA consists of running the new unit tests and also testing avatars on a Domain with the native Interface. |
# for free
to join this conversation on GitHub.
Already have an account?
# to comment
Labels
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Existing client and server code reworked to make use of the new library.This does not include APIs for avatar entities, since those require serialization code from entities library that will be included in a separate PR.
Most of the code is copied from the
libraries/avatars
tolibraries/avatars-core
, with some changes to allow reuse in client library, mainly using CRTP. There are a number ofFIXME: CRTP
comments left with code snippets to aid the reintegration of the new templates into the existing codebase as the final step of refactoring.To summarize:
avatars-core/src/AssociatedTraitValues
is identical toavatars/src/AssociatedTraitValues
and is meant to replace it.avatars-core/src/AvatarLogging
is identical toavatars/src/AvatarLogging
and is meant to replace it.avatars-core/src/AvatarDataStream
is meant to become a base class ofavatars/src/AvatarData
, handling de/serialization of network packets and sending of client's avatar packets. It is a base ofvircadia-client/src/internal/avatars/AvatarData
.AvatarData.h
moved toAvatarDataStream.h
stripped down and turned into a template.AvatarData.cpp
moved toAvatarDataStream.hpp
for the template implementation with modifications and toAvatarDataStream.cpp
for a few non template functions without modifications.avatars-core/src/AvatarPackedHandler
is meant to become a base class ofavatars/src/AvatarHashMap
handling the reception of network packets. It is a base ofvircadia-client/src/internal/avatars/AvatarManager
.AvatarHashMap.h
moved toAvatarPacketHandler.h
and turned into a template.AvatarHashMap.cpp
moved toAvatarPacketHandler.hpp
with modifications.avatars-core/src/ClientTraitsHandler
is meant to become a base ofavatars/src/ClientTraitsHandler
. The code is identical just templated on avatar pointer type. It is a base ofvircadia-client/src/internal/avatars/ClientTraitsHandler
.ClientTraitsHandler.h
moved and turned into a template.ClientTraitsHandler.cpp
moved toClientTraitsHandler.hpp
with template definitions, the actual implementation code is unchanged.avatars-core/src/AvatarTraits
is a replacement foravatars/src/AvatarTraits
.AvatarTraits.h
moved and turned some function turned into templates.AvatarTraits.cpp
moved toAvatarTraits.hpp
for the templated parts andAvatarTraits.cpp
for non templated parts, without modification to the actual implementation.The unit tests are not comprehensive, but they cover the basic functionality (name, model URL, bounds, position, rotation, scale and joints) and can be extended further as other use cases come up.
Instructions for building the client library and running it's tests: https://github.com/vircadia/vircadia/tree/unity-sdk/libraries/vircadia-client. For full test coverage there should be a server running on localhost. Also the avatar tests consist of two parts, sender and receiver that should ran in parallel with
ctest -j4
.