@@ -26,30 +26,7 @@ struct PoseConstraint {
2626 // / map would be more semantically correct) since it stores an index to the model parameters
2727 std::vector<std::pair<size_t , float >> parameterIdValue;
2828
29- inline bool operator ==(const PoseConstraint& poseConstraint) const {
30- // Compare the parameterIdValue as sets
31- std::map<size_t , float > paramIdToValue1;
32- std::copy (
33- parameterIdValue.begin (),
34- parameterIdValue.end (),
35- std::inserter (paramIdToValue1, paramIdToValue1.begin ()));
36-
37- std::map<size_t , float > paramIdToValue2;
38- std::copy (
39- poseConstraint.parameterIdValue .begin (),
40- poseConstraint.parameterIdValue .end (),
41- std::inserter (paramIdToValue2, paramIdToValue2.begin ()));
42-
43- if (paramIdToValue1.size () != paramIdToValue2.size ()) {
44- return false ;
45- }
46-
47- auto pred = [](const auto & l, const auto & r) {
48- return ((l.first == r.first ) && isApprox (l.second , r.second ));
49- };
50- return std::equal (
51- paramIdToValue1.begin (), paramIdToValue1.end (), paramIdToValue2.begin (), pred);
52- }
29+ bool operator ==(const PoseConstraint& poseConstraint) const ;
5330};
5431
5532using ParameterSets = std::unordered_map<std::string, ParameterSet>;
@@ -181,27 +158,7 @@ struct ParameterTransformT {
181158 numSkinnedLocatorParameters ();
182159 }
183160
184- [[nodiscard]] inline bool isApprox (const ParameterTransformT<T>& parameterTransform) const {
185- // special handling of zero sparse matrix
186- bool isTransformEqual = false ;
187- if (transform.cols () > 0 && transform.rows () > 0 && parameterTransform.transform .cols () > 0 &&
188- parameterTransform.transform .rows () > 0 ) {
189- isTransformEqual = transform.isApprox (parameterTransform.transform );
190- } else {
191- isTransformEqual = (transform.cols () == parameterTransform.transform .cols ()) &&
192- (transform.rows () == parameterTransform.transform .rows ());
193- }
194- if (!isTransformEqual) {
195- return false ;
196- }
197-
198- return (
199- (name == parameterTransform.name ) &&
200- activeJointParams.isApprox (parameterTransform.activeJointParams ) &&
201- (parameterSets == parameterTransform.parameterSets ) &&
202- (poseConstraints == parameterTransform.poseConstraints ) &&
203- (blendShapeParameters == parameterTransform.blendShapeParameters ));
204- }
161+ [[nodiscard]] bool isApprox (const ParameterTransformT<T>& parameterTransform) const ;
205162};
206163
207164using ParameterTransform = ParameterTransformT<float >;
0 commit comments