Javascript XML3D getLocalBoundingBox给出;this.renderNode.getObjectSpaceBoundingBox不是函数;错误

Javascript XML3D getLocalBoundingBox给出;this.renderNode.getObjectSpaceBoundingBox不是函数;错误,javascript,fiware,xml3d,Javascript,Fiware,Xml3d,这很难理解,我正在使用当前的xml3D.js版本5.2 我使用*BoundingBox()函数简化资产和相机的定位。如果内容加载正确,则在卸载xml3D资产文件时会出现错误。是否有任何特定于xml3D资产的内容 xml3D内容 以下是从 0.6 0.6 0.6 //将事件附加到网格 document.querySelector(“#xmlmodel”).addEventListener(“单击”,函数(){ var模型=document.getElementById(“xmlmodel”);

这很难理解,我正在使用当前的xml3D.js版本5.2

我使用*BoundingBox()函数简化资产和相机的定位。如果内容加载正确,则在卸载xml3D资产文件时会出现错误。是否有任何特定于xml3D资产的内容

xml3D内容 以下是从


0.6 0.6 0.6
//将事件附加到网格
document.querySelector(“#xmlmodel”).addEventListener(“单击”,函数(){
var模型=document.getElementById(“xmlmodel”);
警报(“我的中心是”+model.getLocalBoundingBox().center().toDOMString());
});
因此,当我单击模型时,它会运行对getLocalBoundingBox()的指定调用并抛出错误:

getLocalBoundingBox-xml3d.js:15685类型错误: this.renderNode.getObjectSpaceBoundingBox不是函数。(在 'this.renderNode.getObjectSpaceBoundingBox(bbox)', “this.renderNode.getObjectSpaceBoundingBox”未定义)


很抱歉,您在这方面遇到了问题,在最近的一次更新中似乎出现了一个bug。我已经为即将发布的5.2.2修补程序推送了一个补丁,并上传了一个预览版本供您尝试:


如果要使用此选项来定位摄影机,尽管您可能希望使用
getWorldBoundingBox
,因为局部边界框不考虑来自层次中更高层次的任何变换(例如,您的
。因此,您可以获得模型本身的边界框,但它可能不在场景中的同一位置。

我不确定定位是如何工作的。如果我将相机的
检查点:
值设置为
模型。getWorldBoundingBox().center()
,看起来旋转原点设置在相机和模型之间。我希望此旋转原点是模型的中心,以便模型可以“自行旋转”拖动鼠标时。有任何建议吗?请尝试删除相机父元素上的变换。此变换基本上是在相机自身变换(包括检查点)后,在z轴上将相机再移动40个单位已计算。这就是旋转中心似乎关闭的原因。您也可以尝试使用
摄影机。检查(模型)
功能。这是一个方便的功能,但您仍必须删除父变换。
<body>
<xml3d class="xml3d" view="#defaultView">
    <defs>
      <!-- camera position -->
      <transform id="t_camera" translation="0 0 40" rotation="0 1 0 0"></transform>
      <transform id="m_transform" scale="0.1 0.1 0.1"></transform>
      <transform id="t_Lamp" translation="0 0 -400"></transform>
      <transform id="r_Lamp" rotation="1 0 0 -0.2"></transform>

      <!-- permanent light -->
      <lightshader id="ls_directional" script="urn:xml3d:lightshader:directional">
          <float3 name="intensity">0.6 0.6 0.6</float3>
      </lightshader>
      <transform id="t_directional" rotation="1 0 0 -0.2" />
      <!-- //permanent light -->
    </defs>

    <!-- Our viewpoint from where we see the 3D content -->
    <group id="viewGroup" transform="#t_camera">
        <view id="defaultView"></view>
    </group>

    <!-- permanent light -->
    <group transform="#t_directional">
        <light shader="#ls_directional"></light>
    </group>
    <!-- //permanent light -->

     <!-- our model include -->
    <group transform="#m_transform">
     <model id="xmlmodel" src="ciccio.xml#ciccio"></model>
    </group>
</xml3d>
</body>
<script>
  // attach event to the mesh
document.querySelector("#xmlmodel").addEventListener("click", function() {
    var model = document.getElementById("xmlmodel");
    alert("my center is " + model.getLocalBoundingBox().center().toDOMString());
});
</script>