mirror of
https://github.com/overte-org/overte.git
synced 2025-08-04 07:43:35 +02:00
Merge branch 'master' of https://github.com/worklist/hifi
This commit is contained in:
commit
5368cbf79a
13 changed files with 114 additions and 52 deletions
|
@ -1,5 +1,7 @@
|
|||
cmake_minimum_required(VERSION 2.8)
|
||||
set(MACRO_DIR ../cmake/macros)
|
||||
|
||||
set(ROOT_DIR ../)
|
||||
set(MACRO_DIR ${ROOT_DIR}/cmake/macros)
|
||||
|
||||
set(TARGET_NAME audio-mixer)
|
||||
|
||||
|
@ -8,7 +10,7 @@ setup_hifi_project(${TARGET_NAME})
|
|||
|
||||
# link the shared hifi library
|
||||
include(${MACRO_DIR}/LinkHifiLibrary.cmake)
|
||||
link_hifi_library(shared ${TARGET_NAME})
|
||||
link_hifi_library(shared ${TARGET_NAME} ${ROOT_DIR})
|
||||
|
||||
# link the threads library
|
||||
find_package(Threads REQUIRED)
|
||||
|
|
|
@ -2,13 +2,16 @@ cmake_minimum_required(VERSION 2.8)
|
|||
|
||||
set(TARGET_NAME "avatar-mixer")
|
||||
|
||||
set(ROOT_DIR ../)
|
||||
set(MACRO_DIR ${ROOT_DIR}/cmake/macros)
|
||||
|
||||
# setup the project
|
||||
include(../cmake/macros/SetupHifiProject.cmake)
|
||||
include(${MACRO_DIR}/SetupHifiProject.cmake)
|
||||
setup_hifi_project(${TARGET_NAME})
|
||||
|
||||
# link the shared hifi library
|
||||
include(../cmake/macros/LinkHifiLibrary.cmake)
|
||||
link_hifi_library(shared ${TARGET_NAME})
|
||||
include(${MACRO_DIR}/LinkHifiLibrary.cmake)
|
||||
link_hifi_library(shared ${TARGET_NAME} ${ROOT_DIR})
|
||||
|
||||
# link the threads library
|
||||
find_package(Threads REQUIRED)
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
MACRO(LINK_HIFI_LIBRARY LIBRARY TARGET)
|
||||
MACRO(LINK_HIFI_LIBRARY LIBRARY TARGET ROOT_DIR)
|
||||
if (NOT TARGET ${LIBRARY})
|
||||
add_subdirectory(../libraries/${LIBRARY} ../libraries/${LIBRARY})
|
||||
add_subdirectory(${ROOT_DIR}/libraries/${LIBRARY} ${ROOT_DIR}/libraries/${LIBRARY})
|
||||
endif (NOT TARGET ${LIBRARY})
|
||||
|
||||
string(TOUPPER ${LIBRARY} UPPERCASED_LIBRARY_NAME)
|
||||
set(HIFI_LIBRARY_PROPERTY "HIFI_${UPPERCASED_LIBRARY_NAME}_LIBRARY")
|
||||
get_directory_property(HIFI_LIBRARY
|
||||
DIRECTORY ../libraries/${LIBRARY}
|
||||
DIRECTORY ${ROOT_DIR}/libraries/${LIBRARY}
|
||||
DEFINITION ${HIFI_LIBRARY_PROPERTY})
|
||||
|
||||
include_directories(../libraries/${LIBRARY}/src)
|
||||
include_directories(${ROOT_DIR}/libraries/${LIBRARY}/src)
|
||||
|
||||
add_dependencies(${TARGET} ${LIBRARY})
|
||||
target_link_libraries(${TARGET} ${LIBRARY})
|
||||
|
@ -19,4 +19,4 @@ MACRO(LINK_HIFI_LIBRARY LIBRARY TARGET)
|
|||
# link in required OS X framework
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework CoreServices")
|
||||
endif (APPLE)
|
||||
ENDMACRO(LINK_HIFI_LIBRARY _library _target)
|
||||
ENDMACRO(LINK_HIFI_LIBRARY _library _target _root_dir)
|
|
@ -1,5 +1,7 @@
|
|||
cmake_minimum_required(VERSION 2.8)
|
||||
set(MACRO_DIR ../cmake/macros)
|
||||
|
||||
set(ROOT_DIR ../)
|
||||
set(MACRO_DIR ${ROOT_DIR}/cmake/macros)
|
||||
|
||||
set(TARGET_NAME domain-server)
|
||||
|
||||
|
@ -8,4 +10,4 @@ setup_hifi_project(${TARGET_NAME})
|
|||
|
||||
# link the shared hifi library
|
||||
include(${MACRO_DIR}/LinkHifiLibrary.cmake)
|
||||
link_hifi_library(shared ${TARGET_NAME})
|
||||
link_hifi_library(shared ${TARGET_NAME} ${ROOT_DIR})
|
|
@ -1,16 +1,16 @@
|
|||
cmake_minimum_required(VERSION 2.8)
|
||||
|
||||
project(injector)
|
||||
set(ROOT_DIR ../)
|
||||
set(MACRO_DIR ${ROOT_DIR}/cmake/macros)
|
||||
|
||||
# grab the implemenation and header files
|
||||
file(GLOB INJECTOR_SRCS src/*.cpp src/*.h)
|
||||
set(TARGET_NAME injector)
|
||||
|
||||
# add the executable
|
||||
add_executable(injector ${INJECTOR_SRCS})
|
||||
include(${MACRO_DIR}/SetupHifiProject.cmake)
|
||||
setup_hifi_project(${TARGET_NAME})
|
||||
|
||||
# link the shared hifi library
|
||||
include(../cmake/macros/LinkHifiLibrary.cmake)
|
||||
link_hifi_library(shared injector)
|
||||
include(${MACRO_DIR}/LinkHifiLibrary.cmake)
|
||||
link_hifi_library(shared ${TARGET_NAME} ${ROOT_DIR})
|
||||
|
||||
# link the threads library
|
||||
find_package(Threads REQUIRED)
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
cmake_minimum_required(VERSION 2.8)
|
||||
|
||||
set(ROOT_DIR ../)
|
||||
set(MACRO_DIR ${ROOT_DIR}/cmake/macros)
|
||||
|
||||
set(TARGET_NAME interface)
|
||||
project(${TARGET_NAME})
|
||||
|
||||
|
@ -22,7 +25,6 @@ if (WIN32)
|
|||
endif (WIN32)
|
||||
|
||||
# set up the external glm library
|
||||
set(MACRO_DIR ../cmake/macros)
|
||||
include(${MACRO_DIR}/IncludeGLM.cmake)
|
||||
include_glm(${TARGET_NAME} ${MACRO_DIR})
|
||||
|
||||
|
@ -54,10 +56,10 @@ add_executable(${TARGET_NAME} MACOSX_BUNDLE ${INTERFACE_SRCS})
|
|||
|
||||
# link in the hifi shared library
|
||||
include(${MACRO_DIR}/LinkHifiLibrary.cmake)
|
||||
link_hifi_library(shared ${TARGET_NAME})
|
||||
link_hifi_library(shared ${TARGET_NAME} ${ROOT_DIR})
|
||||
|
||||
# link in the hifi voxels library
|
||||
link_hifi_library(voxels ${TARGET_NAME})
|
||||
link_hifi_library(voxels ${TARGET_NAME} ${ROOT_DIR})
|
||||
|
||||
# find required libraries
|
||||
find_package(GLM REQUIRED)
|
||||
|
|
|
@ -95,7 +95,6 @@ Head::Head() {
|
|||
usingSprings = false;
|
||||
|
||||
springForce = 6.0f;
|
||||
springToBodyTightness = 4.0f;
|
||||
springVelocityDecay = 16.0f;
|
||||
|
||||
hand = new Hand(glm::vec3(skinColor[0], skinColor[1], skinColor[2]));
|
||||
|
@ -782,23 +781,27 @@ void Head::setHandMovement( glm::vec3 movement ) {
|
|||
|
||||
|
||||
void Head::initializeAvatar() {
|
||||
//avatar.position = glm::vec3( 0.0, 0.0, 0.0 );
|
||||
avatar.velocity = glm::vec3( 0.0, 0.0, 0.0 );
|
||||
avatar.thrust = glm::vec3( 0.0, 0.0, 0.0 );
|
||||
avatar.orientation.setToIdentity();
|
||||
|
||||
closestOtherAvatar = 0;
|
||||
|
||||
bodyYaw = -90.0;
|
||||
bodyPitch = 0.0;
|
||||
bodyRoll = 0.0;
|
||||
|
||||
bodyYawDelta = 0.0;
|
||||
bodyYaw = -90.0;
|
||||
bodyPitch = 0.0;
|
||||
bodyRoll = 0.0;
|
||||
bodyYawDelta = 0.0;
|
||||
|
||||
for (int b=0; b<NUM_AVATAR_BONES; b++) {
|
||||
avatar.bone[b].position = glm::vec3( 0.0, 0.0, 0.0 );
|
||||
avatar.bone[b].springyPosition = glm::vec3( 0.0, 0.0, 0.0 );
|
||||
avatar.bone[b].springyVelocity = glm::vec3( 0.0, 0.0, 0.0 );
|
||||
avatar.bone[b].parent = AVATAR_BONE_NULL;
|
||||
avatar.bone[b].position = glm::vec3( 0.0, 0.0, 0.0 );
|
||||
avatar.bone[b].defaultPosePosition = glm::vec3( 0.0, 0.0, 0.0 );
|
||||
avatar.bone[b].springyPosition = glm::vec3( 0.0, 0.0, 0.0 );
|
||||
avatar.bone[b].springyVelocity = glm::vec3( 0.0, 0.0, 0.0 );
|
||||
avatar.bone[b].yaw = 0.0f;
|
||||
avatar.bone[b].pitch = 0.0f;
|
||||
avatar.bone[b].roll = 0.0f;
|
||||
avatar.bone[b].length = 0.0f;
|
||||
avatar.bone[b].orientation.setToIdentity();
|
||||
}
|
||||
|
||||
|
@ -877,6 +880,41 @@ void Head::initializeAvatar() {
|
|||
avatar.bone[ AVATAR_BONE_RIGHT_SHIN ].defaultPosePosition = glm::vec3( 0.0, -0.15, 0.0 );
|
||||
avatar.bone[ AVATAR_BONE_RIGHT_FOOT ].defaultPosePosition = glm::vec3( 0.0, 0.0, 0.04 );
|
||||
|
||||
|
||||
//----------------------------------------------------------------------------------------------------------------
|
||||
// set the spring body tightness (determines how tightly the springy positions stay on the bone positions
|
||||
//----------------------------------------------------------------------------------------------------------------
|
||||
for (int b=0; b<NUM_AVATAR_BONES; b++) {
|
||||
avatar.bone[b].springBodyTightness = 4.0f;
|
||||
}
|
||||
|
||||
/*
|
||||
avatar.bone[ AVATAR_BONE_NULL ].springBodyTightness = 0.8f;
|
||||
avatar.bone[ AVATAR_BONE_PELVIS_SPINE ].springBodyTightness = 0.0f;
|
||||
avatar.bone[ AVATAR_BONE_MID_SPINE ].springBodyTightness = 0.0f;
|
||||
avatar.bone[ AVATAR_BONE_CHEST_SPINE ].springBodyTightness = 0.0f;
|
||||
avatar.bone[ AVATAR_BONE_NECK ].springBodyTightness = 0.0f;
|
||||
avatar.bone[ AVATAR_BONE_HEAD ].springBodyTightness = 0.0f;
|
||||
avatar.bone[ AVATAR_BONE_LEFT_CHEST ].springBodyTightness = 0.0f;
|
||||
avatar.bone[ AVATAR_BONE_LEFT_SHOULDER ].springBodyTightness = 0.0f;
|
||||
avatar.bone[ AVATAR_BONE_LEFT_UPPER_ARM ].springBodyTightness = 0.0f;
|
||||
avatar.bone[ AVATAR_BONE_LEFT_FOREARM ].springBodyTightness = 0.0f;
|
||||
avatar.bone[ AVATAR_BONE_LEFT_HAND ].springBodyTightness = 0.0f;
|
||||
avatar.bone[ AVATAR_BONE_RIGHT_CHEST ].springBodyTightness = 0.0f;
|
||||
avatar.bone[ AVATAR_BONE_RIGHT_SHOULDER ].springBodyTightness = 0.0f;
|
||||
avatar.bone[ AVATAR_BONE_RIGHT_UPPER_ARM].springBodyTightness = 0.0f;
|
||||
avatar.bone[ AVATAR_BONE_RIGHT_FOREARM ].springBodyTightness = 0.0f;
|
||||
avatar.bone[ AVATAR_BONE_RIGHT_HAND ].springBodyTightness = 0.0f;
|
||||
avatar.bone[ AVATAR_BONE_LEFT_PELVIS ].springBodyTightness = 0.8f;
|
||||
avatar.bone[ AVATAR_BONE_LEFT_THIGH ].springBodyTightness = 0.8f;
|
||||
avatar.bone[ AVATAR_BONE_LEFT_SHIN ].springBodyTightness = 0.8f;
|
||||
avatar.bone[ AVATAR_BONE_LEFT_FOOT ].springBodyTightness = 0.8f;
|
||||
avatar.bone[ AVATAR_BONE_RIGHT_PELVIS ].springBodyTightness = 0.8f;
|
||||
avatar.bone[ AVATAR_BONE_RIGHT_THIGH ].springBodyTightness = 0.8f;
|
||||
avatar.bone[ AVATAR_BONE_RIGHT_SHIN ].springBodyTightness = 0.8f;
|
||||
avatar.bone[ AVATAR_BONE_RIGHT_FOOT ].springBodyTightness = 0.8f;
|
||||
*/
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// calculate bone length
|
||||
//----------------------------------------------------------------------------
|
||||
|
@ -957,14 +995,15 @@ void Head::updateAvatarSprings( float deltaTime ) {
|
|||
if ( length > 0.0f ) {
|
||||
glm::vec3 springDirection = springVector / length;
|
||||
|
||||
float force = ( length - avatar.bone[b].length ) * springForce * deltaTime;
|
||||
float force = ( length - avatar.bone[b].length ) * springForce * deltaTime;
|
||||
|
||||
avatar.bone[ b ].springyVelocity -= springDirection * force;
|
||||
avatar.bone[ avatar.bone[b].parent ].springyVelocity += springDirection * force;
|
||||
}
|
||||
|
||||
avatar.bone[b].springyVelocity += ( avatar.bone[b].position - avatar.bone[b].springyPosition ) * springToBodyTightness * deltaTime;
|
||||
|
||||
avatar.bone[b].springyVelocity += ( avatar.bone[b].position - avatar.bone[b].springyPosition ) *
|
||||
avatar.bone[b].springBodyTightness * deltaTime;
|
||||
|
||||
float decay = 1.0 - springVelocityDecay * deltaTime;
|
||||
|
||||
if ( decay > 0.0 ) {
|
||||
|
@ -1000,6 +1039,11 @@ glm::vec3 Head::getHeadLookatDirectionUp() {
|
|||
);
|
||||
}
|
||||
|
||||
glm::vec3 Head::getBonePosition( AvatarBones b )
|
||||
{
|
||||
return avatar.bone[b].position;
|
||||
}
|
||||
|
||||
glm::vec3 Head::getHeadLookatDirectionRight() {
|
||||
return glm::vec3
|
||||
(
|
||||
|
|
|
@ -109,6 +109,7 @@ struct AvatarBone
|
|||
glm::vec3 defaultPosePosition; // the parent relative position when the avatar is in the "T-pose"
|
||||
glm::vec3 springyPosition; // used for special effects (a 'flexible' variant of position)
|
||||
glm::dvec3 springyVelocity; // used for special effects ( the velocity of the springy position)
|
||||
float springBodyTightness; // how tightly (0 to 1) the springy position tries to stay on the position
|
||||
float yaw; // the yaw Euler angle of the bone rotation off the parent
|
||||
float pitch; // the pitch Euler angle of the bone rotation off the parent
|
||||
float roll; // the roll Euler angle of the bone rotation off the parent
|
||||
|
@ -159,6 +160,7 @@ class Head : public AgentData {
|
|||
glm::vec3 getHeadLookatDirectionUp();
|
||||
glm::vec3 getHeadLookatDirectionRight();
|
||||
glm::vec3 getHeadPosition();
|
||||
glm::vec3 getBonePosition( AvatarBones b );
|
||||
glm::vec3 getBodyPosition();
|
||||
|
||||
void render(int faceToFace, int isMine);
|
||||
|
@ -254,7 +256,7 @@ class Head : public AgentData {
|
|||
|
||||
float springVelocityDecay;
|
||||
float springForce;
|
||||
float springToBodyTightness;
|
||||
//float springToBodyTightness;
|
||||
|
||||
int eyeContact;
|
||||
eyeContactTargets eyeContactTarget;
|
||||
|
|
|
@ -24,7 +24,7 @@ static const double ONE_THIRD = 0.3333333;
|
|||
static const double PIE = 3.14159265359;
|
||||
static const double PI_TIMES_TWO = 3.14159265359 * 2.0;
|
||||
static const double PI_OVER_180 = 3.14159265359 / 180.0;
|
||||
static const double EPSILON = 0.00001; //smallish number - used as margin of error for some values
|
||||
static const double EPSILON = 0.00001; //smallish number - used as margin of error for some computations
|
||||
static const double SQUARE_ROOT_OF_2 = sqrt(2);
|
||||
static const double SQUARE_ROOT_OF_3 = sqrt(3);
|
||||
static const double METER = 1.0;
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
cmake_minimum_required(VERSION 2.8)
|
||||
|
||||
set(MACRO_DIR ../../cmake/macros)
|
||||
set(ROOT_DIR ../../)
|
||||
set(MACRO_DIR ${ROOT_DIR}/cmake/macros)
|
||||
|
||||
# setup for find modules
|
||||
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/../../cmake/modules/")
|
||||
|
@ -18,5 +19,8 @@ file(GLOB HIFI_VOXELS_SRCS src/*.h src/*.cpp)
|
|||
|
||||
# create a library and set the property so it can be referenced later
|
||||
add_library(${TARGET_NAME} ${HIFI_VOXELS_SRCS})
|
||||
include_directories(${TARGET_NAME} ../shared/src)
|
||||
|
||||
include(${MACRO_DIR}/LinkHifiLibrary.cmake)
|
||||
link_hifi_library(shared ${TARGET_NAME} ${ROOT_DIR})
|
||||
|
||||
set(HIFI_VOXELS_LIBRARY ${TARGET_NAME})
|
|
@ -19,15 +19,10 @@ const int MAX_TREE_SLICE_BYTES = 26;
|
|||
const int TREE_SCALE = 10;
|
||||
|
||||
class VoxelTree {
|
||||
VoxelNode * nodeForOctalCode(VoxelNode *ancestorNode, unsigned char * needleCode, VoxelNode** parentOfFoundNode);
|
||||
VoxelNode * createMissingNode(VoxelNode *lastParentNode, unsigned char *deepestCodeToCreate);
|
||||
int readNodeData(VoxelNode *destinationNode, unsigned char * nodeData, int bufferSizeBytes);
|
||||
|
||||
|
||||
public:
|
||||
long int voxelsCreated;
|
||||
long int voxelsColored;
|
||||
long int voxelsBytesRead;
|
||||
long voxelsCreated;
|
||||
long voxelsColored;
|
||||
long voxelsBytesRead;
|
||||
|
||||
CounterStatHistory voxelsCreatedStats;
|
||||
CounterStatHistory voxelsColoredStats;
|
||||
|
@ -56,6 +51,10 @@ public:
|
|||
|
||||
void loadVoxelsFile(const char* fileName, bool wantColorRandomizer);
|
||||
void createSphere(float r,float xc, float yc, float zc, float s, bool solid, bool wantColorRandomizer);
|
||||
private:
|
||||
VoxelNode * nodeForOctalCode(VoxelNode *ancestorNode, unsigned char * needleCode, VoxelNode** parentOfFoundNode);
|
||||
VoxelNode * createMissingNode(VoxelNode *lastParentNode, unsigned char *deepestCodeToCreate);
|
||||
int readNodeData(VoxelNode *destinationNode, unsigned char * nodeData, int bufferSizeBytes);
|
||||
};
|
||||
|
||||
int boundaryDistanceForRenderLevel(unsigned int renderLevel);
|
||||
|
|
|
@ -1,11 +1,13 @@
|
|||
cmake_minimum_required(VERSION 2.8)
|
||||
|
||||
set(ROOT_DIR ../)
|
||||
set(MACRO_DIR ${ROOT_DIR}/cmake/macros)
|
||||
|
||||
set(TARGET_NAME space-server)
|
||||
|
||||
set(MACRO_DIR ../cmake/macros)
|
||||
include(${MACRO_DIR}/SetupHifiProject.cmake)
|
||||
|
||||
setup_hifi_project(${TARGET_NAME})
|
||||
|
||||
include(${MACRO_DIR}/LinkHifiLibrary.cmake)
|
||||
link_hifi_library(shared ${TARGET_NAME})
|
||||
link_hifi_library(shared ${TARGET_NAME} ${ROOT_DIR})
|
|
@ -2,14 +2,16 @@ cmake_minimum_required(VERSION 2.8)
|
|||
|
||||
set(TARGET_NAME voxel-server)
|
||||
|
||||
set(MACRO_DIR ../cmake/macros)
|
||||
set(ROOT_DIR ../)
|
||||
set(MACRO_DIR ${ROOT_DIR}/cmake/macros)
|
||||
|
||||
include(${MACRO_DIR}/SetupHifiProject.cmake)
|
||||
|
||||
setup_hifi_project(${TARGET_NAME})
|
||||
|
||||
# link in the shared library
|
||||
include(${MACRO_DIR}/LinkHifiLibrary.cmake)
|
||||
link_hifi_library(shared ${TARGET_NAME})
|
||||
link_hifi_library(shared ${TARGET_NAME} ${ROOT_DIR})
|
||||
|
||||
# link in the hifi voxels library
|
||||
link_hifi_library(voxels ${TARGET_NAME})
|
||||
link_hifi_library(voxels ${TARGET_NAME} ${ROOT_DIR})
|
Loading…
Reference in a new issue