summaryrefslogtreecommitdiff
path: root/indra/llprimitive
diff options
context:
space:
mode:
authorNat Goodspeed <nat@lindenlab.com>2023-03-31 11:39:06 -0400
committerNat Goodspeed <nat@lindenlab.com>2023-03-31 11:39:06 -0400
commit1be9d68468e51be7de5b632f0276dc6708e75dc6 (patch)
treeba80104fa9531a51291d2ad067b23fa75cb58fc9 /indra/llprimitive
parent0dd7b362a6e77d8f3dff450376ddf2d4ffaf752c (diff)
parentc7053a6928fd5eafdc935453742e92951ae4e0c1 (diff)
DRTVWR-573: Merge branch 'main' into fix-monterey
Diffstat (limited to 'indra/llprimitive')
-rw-r--r--indra/llprimitive/CMakeLists.txt47
-rw-r--r--indra/llprimitive/lldaeloader.cpp5
-rw-r--r--indra/llprimitive/llmodel.cpp10
-rw-r--r--indra/llprimitive/llmodel.h5
4 files changed, 32 insertions, 35 deletions
diff --git a/indra/llprimitive/CMakeLists.txt b/indra/llprimitive/CMakeLists.txt
index 7b6d04b096..d69cd958a0 100644
--- a/indra/llprimitive/CMakeLists.txt
+++ b/indra/llprimitive/CMakeLists.txt
@@ -4,27 +4,10 @@ project(llprimitive)
include(00-Common)
include(LLCommon)
-include(LLMath)
-include(LLMessage)
include(LLCoreHttp)
-include(LLXML)
include(LLPhysicsExtensions)
-include(LLCharacter)
-
-include_directories(
- ${LLCOMMON_INCLUDE_DIRS}
- ${LLMATH_INCLUDE_DIRS}
- ${LLMESSAGE_INCLUDE_DIRS}
- ${LLXML_INCLUDE_DIRS}
- ${LIBS_PREBUILT_DIR}/include/collada
- ${LIBS_PREBUILT_DIR}/include/collada/1.4
- ${LLCHARACTER_INCLUDE_DIRS}
- )
-include_directories(SYSTEM
- ${LLCOMMON_SYSTEM_INCLUDE_DIRS}
- ${LLXML_SYSTEM_INCLUDE_DIRS}
- ${LLPHYSICSEXTENSIONS_INCLUDE_DIRS}
- )
+include(LLPrimitive)
+include(GLH)
set(llprimitive_SOURCE_FILES
lldaeloader.cpp
@@ -64,26 +47,24 @@ set(llprimitive_HEADER_FILES
material_codes.h
object_flags.h
)
-
-set_source_files_properties(${llprimitive_HEADER_FILES}
- PROPERTIES HEADER_FILE_ONLY TRUE)
list(APPEND llprimitive_SOURCE_FILES ${llprimitive_HEADER_FILES})
add_library (llprimitive ${llprimitive_SOURCE_FILES})
+target_include_directories( llprimitive INTERFACE ${CMAKE_CURRENT_SOURCE_DIR})
target_link_libraries(llprimitive
- ${LLCOMMON_LIBRARIES}
- ${LLMATH_LIBRARIES}
- ${LLMESSAGE_LIBRARIES}
- ${LLCOREHTTP_LIBRARIES}
- ${LLXML_LIBRARIES}
- ${LLPHYSICSEXTENSIONS_LIBRARIES}
- ${LLCHARACTER_LIBRARIES}
- ${BOOST_FIBER_LIBRARY}
- ${BOOST_CONTEXT_LIBRARY}
- )
-
+ llcommon
+ llmath
+ llmessage
+ llcorehttp
+ llxml
+ llcharacter
+ llphysicsextensions_impl
+ ll::colladadom
+ ll::pcre
+ ll::glh_linear
+ )
#add unit tests
if (LL_TESTS)
diff --git a/indra/llprimitive/lldaeloader.cpp b/indra/llprimitive/lldaeloader.cpp
index 68654486a4..752a850d42 100644
--- a/indra/llprimitive/lldaeloader.cpp
+++ b/indra/llprimitive/lldaeloader.cpp
@@ -330,7 +330,10 @@ LLModel::EModelStatus load_face_from_dom_triangles(
// VFExtents change
face.mExtents[0].set(v[0], v[1], v[2]);
face.mExtents[1].set(v[0], v[1], v[2]);
- point_map.clear();
+
+ verts.clear();
+ indices.clear();
+ point_map.clear();
}
}
diff --git a/indra/llprimitive/llmodel.cpp b/indra/llprimitive/llmodel.cpp
index 805af55299..765a8cda22 100644
--- a/indra/llprimitive/llmodel.cpp
+++ b/indra/llprimitive/llmodel.cpp
@@ -1386,6 +1386,16 @@ LLMeshSkinInfo::LLMeshSkinInfo(LLSD& skin):
fromLLSD(skin);
}
+LLMeshSkinInfo::LLMeshSkinInfo(const LLUUID& mesh_id, LLSD& skin) :
+ mMeshID(mesh_id),
+ mPelvisOffset(0.0),
+ mLockScaleIfJointPosition(false),
+ mInvalidJointsScrubbed(false),
+ mJointNumsInitialized(false)
+{
+ fromLLSD(skin);
+}
+
void LLMeshSkinInfo::fromLLSD(LLSD& skin)
{
if (skin.has("joint_names"))
diff --git a/indra/llprimitive/llmodel.h b/indra/llprimitive/llmodel.h
index a6ab96ab18..4505d6b3b9 100644
--- a/indra/llprimitive/llmodel.h
+++ b/indra/llprimitive/llmodel.h
@@ -41,12 +41,13 @@ class domMesh;
#define MAX_MODEL_FACES 8
LL_ALIGN_PREFIX(16)
-class LLMeshSkinInfo
+class LLMeshSkinInfo : public LLRefCount
{
LL_ALIGN_NEW
public:
LLMeshSkinInfo();
LLMeshSkinInfo(LLSD& data);
+ LLMeshSkinInfo(const LLUUID& mesh_id, LLSD& data);
void fromLLSD(LLSD& data);
LLSD asLLSD(bool include_joints, bool lock_scale_if_joint_position) const;
void updateHash();
@@ -57,6 +58,8 @@ public:
mutable std::vector<S32> mJointNums;
typedef std::vector<LLMatrix4a, boost::alignment::aligned_allocator<LLMatrix4a, 16>> matrix_list_t;
matrix_list_t mInvBindMatrix;
+
+ // bones/joints position overrides
matrix_list_t mAlternateBindMatrix;
LL_ALIGN_16(LLMatrix4a mBindShapeMatrix);