MCPcopy Create free account
hub / github.com/DiligentGraphics/DiligentFX / GetTransform2dParam

Function GetTransform2dParam

Hydrogent/src/HnMaterialNetwork.cpp:650–712  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

648}
649
650static HnMaterialParameter GetTransform2dParam(
651 const pxr::HdMaterialNetwork2& Network,
652 const pxr::HdMaterialNode2& Node,
653 const pxr::SdfPath& NodePath,
654 const pxr::TfToken& ParamName)
655{
656 HnMaterialParameter Tr2dParam;
657 Tr2dParam.Type = HnMaterialParameter::ParamType::Transform2d;
658 Tr2dParam.Name = ParamName;
659 Tr2dParam.FallbackValue = GetParamFallbackValue(Network, Node, HnMaterialPrivateTokens->in);
660
661 // Find the input connection to the transform2d node
662 auto in_it = Node.inputConnections.find(HnMaterialPrivateTokens->in);
663 if (in_it != Node.inputConnections.end())
664 {
665 if (!in_it->second.empty())
666 {
667 const pxr::HdMaterialConnection2& Conn = in_it->second.front();
668
669 const auto pn_it = Network.nodes.find(Conn.upstreamNode);
670 const pxr::HdMaterialNode2& PrimvarNode = pn_it->second;
671 pxr::SdrRegistry& ShaderReg = pxr::SdrRegistry::GetInstance();
672 if (pxr::SdrShaderNodeConstPtr PrimvarSdr = ShaderReg.GetShaderNodeByIdentifierAndType(PrimvarNode.nodeTypeId, pxr::HioGlslfxTokens->glslfx))
673 {
674 auto PrimvarParam = GetPrimvarReaderParam(Network, PrimvarNode, Conn.upstreamNode, in_it->first);
675 Tr2dParam.SamplerCoords = std::move(PrimvarParam.SamplerCoords);
676 }
677 }
678 }
679 else
680 {
681 // See if input value was directly authored as value.
682 auto it = Node.parameters.find(HnMaterialPrivateTokens->in);
683 if (it != Node.parameters.end())
684 {
685 if (it->second.IsHolding<pxr::TfToken>())
686 {
687 const pxr::TfToken& SamplerCoord = it->second.UncheckedGet<pxr::TfToken>();
688 Tr2dParam.SamplerCoords.push_back(SamplerCoord);
689 }
690 }
691 }
692
693 pxr::VtValue RotationVal = GetParamFallbackValue(Network, Node, HnTokens->rotation);
694 if (RotationVal.IsHolding<float>())
695 {
696 Tr2dParam.Transform2d.Rotation = RotationVal.UncheckedGet<float>();
697 }
698
699 pxr::VtValue ScaleVal = GetParamFallbackValue(Network, Node, HnTokens->scale);
700 if (ScaleVal.IsHolding<pxr::GfVec2f>())
701 {
702 Tr2dParam.Transform2d.Scale = ScaleVal.UncheckedGet<pxr::GfVec2f>();
703 }
704
705 pxr::VtValue TranslationVal = GetParamFallbackValue(Network, Node, HnTokens->translation);
706 if (TranslationVal.IsHolding<pxr::GfVec2f>())
707 {

Callers 2

AddTextureParamMethod · 0.85
AddTransform2dParamMethod · 0.85

Calls 2

GetParamFallbackValueFunction · 0.85
GetPrimvarReaderParamFunction · 0.85

Tested by

no test coverage detected