{"id":2537,"date":"2016-12-20T22:59:52","date_gmt":"2016-12-20T13:59:52","guid":{"rendered":"http:\/\/fdada.info\/?page_id=2537"},"modified":"2017-04-06T14:51:24","modified_gmt":"2017-04-06T05:51:24","slug":"temp_u1_3d","status":"publish","type":"page","link":"https:\/\/fdada.info\/fdada\/home\/vis_3d\/temp_u1_3d\/","title":{"rendered":"<!--05-01-->\u6e29\u5ea6\u5206\u5e03\uff081\u53f7\u6a5f\uff09"},"content":{"rendered":"<h1>\u6e29\u5ea6\u5206\u5e03\uff081\u53f7\u6a5f\uff09<\/h1>\r\n\r\n    <script type=\"text\/javascript\" src=\"\/3d\/threejs\/three.js\"><\/script>\r\n    <script type=\"text\/javascript\" src=\"\/3d\/threejs\/loaders\/OBJLoader.js\"><\/script>\r\n    <script type=\"text\/javascript\" src=\"\/3d\/threejs\/loaders\/MTLLoader.js\"><\/script>\r\n    <script type=\"text\/javascript\" src=\"\/3d\/threejs\/renderers\/Projector.js\"><\/script>\r\n    <script type=\"text\/javascript\" src=\"\/3d\/threejs\/controls\/OrbitControls.js\"><\/script>\r\n    <script type=\"text\/javascript\" src=\"\/3d\/threejs\/math\/Lut.js\"><\/script>\r\n\r\n<!-- Ignite UI Required Combined CSS Files -->\r\n<link href=\"\/igniteui\/css\/themes\/infragistics\/infragistics.theme.css\" rel=\"stylesheet\" \/>\r\n<link href=\"\/igniteui\/css\/structure\/infragistics.css\" rel=\"stylesheet\" \/>\r\n<!-- JavaScript Library Dependencies -->\r\n<script src=\"\/\/ajax.aspnetcdn.com\/ajax\/modernizr\/modernizr-2.8.3.js\"><\/script>\r\n<script src=\"\/\/code.jquery.com\/jquery-1.9.1.min.js\"><\/script>\r\n<script src=\"\/\/code.jquery.com\/ui\/1.10.3\/jquery-ui.min.js\"><\/script>\r\n<!-- Ignite UI Required Combined JavaScript Files -->\r\n<script src=\"\/igniteui\/js\/infragistics.core.js\"><\/script>\r\n<script src=\"\/igniteui\/js\/infragistics.dv.js\"><\/script>\r\n<script src=\"\/igniteui\/js\/infragistics.lob.js\"><\/script>\r\n\r\n        <style type=\"text\/css\">\r\n            .sliderBounds {\r\n                width: 95px;\r\n                margin: 6px 3px 6px 6px;\r\n                display: inline-block;\r\n            }\r\n            .optionContainer {\r\n                width: 200px;\r\n                margin: 2px;\r\n                padding: 2px;\r\n                display: inline-block;\r\n                border: 1px solid #e0e0e0;\r\n                -moz-border-radius: 4px;\r\n                -webkit-border-radius: 4px;\r\n                border-radius: 4px;\r\n            }\r\n            .selectBounds {\r\n                min-width: 120px;\r\n                max-width: 132px;\r\n            }\r\n        <\/style>\r\n    <style>\r\n        #time-area {\r\n            display: none;\r\n        }\r\n    <\/style>\r\n<\/div>\r\n    <table border=\"0\">\r\n        <tr>\r\n            <td>\r\n                <!-- Div which will hold the Output -->\r\n                <div id=\"WebGL-output\">\r\n                <\/div>\r\n            <\/td>\r\n            <td>\r\n                <div style=\"height:700px; overflow-y:auto;\">\r\n                    <table id=\"grid\"><\/table>\r\n                <\/div>\r\n            <\/td>\r\n        <\/tr>\r\n        <tr>\r\n            <td><form><label><input id=\"chkClipping\" type=\"checkbox\" onClick=\"clipping()\"\/>\u5207\u65ad\u9762\u8868\u793a<\/label><\/form>\r\n                    <div class=\"optionContainer\">\r\n                        \u5207\u65ad\u9762\u306e\u6cd5\u7dda\u65b9\u5411\u306e\u4f4d\u7f6e\r\n                        <div id=\"yAxisAngleSlider1\" class=\"sliderBounds\"><\/div>\r\n                        <label id=\"yAxisAngleLabel1\">0<\/label>\r\n                    <\/div>\r\n                    <div class=\"optionContainer\">\r\n                        <p><button id=\"show-btn\">\u6642\u523b\u306e\u8868\u793a<\/button><\/p>\r\n                        <div id=\"time-area\">\r\n                            <p><div id=\"yAxisAngleSlider2\" class=\"sliderBounds\"><\/div><button id=\"play-btn\">\u518d\u751f<\/button><\/p>\r\n                            <p><label>\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\uff1a<\/label><label id=\"yAxisAngleLabel2c\">0<\/label><\/p>\r\n                            <p><label>\u6642\u523b\uff1a<\/label><label id=\"yAxisAngleLabel2d\"><\/label><\/p>\r\n                            <p><label id=\"yAxisAngleLabel2a\">0<\/label><label>\u304b\u3089<\/label><\/p>\r\n                            <p><label id=\"yAxisAngleLabel2b\">0<\/label><label>\u307e\u3067<\/label><\/p>\r\n                        <\/div>\r\n                    <\/div>\r\n            <\/td>\r\n            <td>\r\n                <div id=\"container2\">\r\n                <\/div>\r\n            <\/td>\r\n        <\/tr>\r\n    <\/table>\r\n\r\n<script type=\"text\/javascript\">\r\n\r\n    function clipping() {\r\n        webGLRenderer.localClippingEnabled = $(\"#chkClipping\").is(\":checked\");\r\n        console.log(\"function clipping was called !!\");\r\n    }\r\n\r\n    var show_btn, time_area;\r\n    var tableRows = [];\r\n    var timelineDataSource = {};\r\n    var timeLine = [];\r\n\r\n    var maxTemperature = 100;\r\n    var minTemperature = 0;\r\n\r\n    function showTimeSliderEtc() {\r\n\r\n        show_btn.hide();\r\n\r\n        var a = [];\r\n        Object.keys( timelineDataSource ).forEach( function(v) { timelineDataSource[ v ].Value.forEach( function(v2) { a[ a.length ] = v2.x; } ); } );\r\n\r\n        var aa = {};\r\n        a.forEach( function(x) { aa[ x ] = 0; } );\r\n\r\n        a = Object.keys( aa );\r\n\r\n        a.sort();\r\n        console.log(a);\r\n        timeLine = a;\r\n\r\n        $(\"#yAxisAngleSlider2\").slider({\r\n            min: 0,\r\n            max: a.length - 1,\r\n            value: 0,\r\n            slide: function (event, ui) {\r\n                $(\"#yAxisAngleLabel2c\").text(ui.value);\r\n                $(\"#yAxisAngleLabel2d\").text(timeLine[ ui.value ]);\r\n                setMeasurementColors(ui.value);\r\n            }\r\n        });\r\n\r\n        $(\"#yAxisAngleLabel2a\").text(a[ 0 ]);\r\n        $(\"#yAxisAngleLabel2b\").text(a[ a.length - 1 ]);\r\n\r\n        time_area.show();\r\n    }\r\n\r\n    var webGLRenderer;\r\n    var scene;\r\n    var selectables = [];\r\n    var mouse = new THREE.Vector2();\r\n    var lut, colorMap, numberOfColors, legendLayout;\r\n\r\n    function setMeasurementColors( tidx ) {\r\n        var sources = Object.keys( timelineDataSource );\r\n        for( var i = 0; i < sources.length; i++ ) {\r\n            var meshName = sources[ i ];\r\n            var aMesh = scene.getObjectByName( meshName, true );\r\n            var i2 = getTableRowNumber( sources[ i ] );\r\n            if ( typeof timelineDataSource[ sources[ i ] ][ timeLine[ tidx ] ] === 'undefined' ) {\r\n                aMesh.material.color = new THREE.Color(0x000000);\r\n                if ( i2 >= 0 ) {\r\n                    tableRows[ i2 ][ 'T' ] = '';\r\n                }\r\n            }\r\n            else if ( timelineDataSource[ sources[ i ] ][ timeLine[ tidx ] ] == null ) {\r\n                aMesh.material.color = new THREE.Color(0x000000);\r\n                if ( i2 >= 0 ) {\r\n                    tableRows[ i2 ][ 'T' ] = '';\r\n                }\r\n            }\r\n            else {\r\n                var y2 = timelineDataSource[ sources[ i ] ][ timeLine[ tidx ] ];\r\n                console.log(y2);\r\n                if ( y2 == '' ) {\r\n                    aMesh.material.color = new THREE.Color(0x000000);\r\n                }\r\n                else {\r\n                    aMesh.material.color = lut.getColor( y2 );\r\n                }\r\n                if ( i2 >= 0 ) {\r\n                    tableRows[ i2 ][ 'T' ] = y2.toString();\r\n                }\r\n            }\r\n        }\r\n        $(\"#grid\").igGrid('option', 'dataSource', tableRows);\r\n        $(\"#grid\").igGrid('dataBind');\r\n    }\r\n\r\n    \/* \u30bf\u30a4\u30de\u30fc\u95a2\u9023 *\/\r\n    var h = null;\r\n    var interval = 50; \/\/ ms\r\n\r\n    function playButtonClick() {\r\n        if ( h != null ) {\r\n            clearInterval( h );\r\n            h = null;\r\n        }\r\n        else {\r\n            h = setInterval( sliderProgress, interval);\r\n        }\r\n    }\r\n\r\n    function sliderProgress() {\r\n        var index = $(\"#yAxisAngleSlider2\").slider('option', 'value');\r\n        if ( index >= ( timeLine.length - 1 )) {\r\n            clearInterval( h );\r\n            h = null;\r\n            return;\r\n        }\r\n        $(\"#yAxisAngleSlider2\").slider('option', 'value', ++index);\r\n        $(\"#yAxisAngleLabel2c\").text(index);\r\n        $(\"#yAxisAngleLabel2d\").text(timeLine[ index ]);\r\n        setMeasurementColors( index );\r\n    }\r\n    \/* \u30bf\u30a4\u30de\u30fc\u95a2\u9023\u7d42\u4e86 *\/\r\n\r\n    function getTableRowNumber( source ) {\r\n        for( var i = 0; i < tableRows.length; i++ ) {\r\n            if ( source == tableRows[ i ].Source ) return  i;\r\n        }\r\n        return ( -1 );\r\n    }\r\n\r\n    \/\/ once everything is loaded, we run our Three.js stuff.\r\n    function init() {\r\n\r\n\r\n        var clock = new THREE.Clock();\r\n\r\n        \/\/ create a scene, that will hold all our elements such as objects, cameras and lights.\r\n        scene = new THREE.Scene();\r\n\r\n        \/\/ create a camera, which defines where we're looking at.\r\n\/\/      var camera = new THREE.PerspectiveCamera(45, window.innerWidth \/ window.innerHeight, 0.1, 1000);\r\n        var camera = new THREE.PerspectiveCamera(45, 700 \/ 700, 0.1, 1000);\r\n\r\n\r\n        \/\/ create a render and set the size\r\n        webGLRenderer = new THREE.WebGLRenderer();\r\n        webGLRenderer.setClearColor(new THREE.Color(0xFFFFFF));\r\n\/\/      webGLRenderer.setSize(window.innerWidth, window.innerHeight);\r\n        webGLRenderer.setSize(700, 700);\r\n        webGLRenderer.shadowMap.enabled = true;\r\n\r\n        var projector = new THREE.Projector();\r\n        var container = document.getElementById('WebGL-output');\r\n        container.addEventListener('mousedown', onDocumentMouseDown, false);\r\n        container.addEventListener( 'mousemove', onDocumentMouseMove, false );\r\n\r\n\r\n        \/\/ position and point the camera to the center of the scene\r\n        camera.position.x = 50;\r\n        camera.position.y = 50;\r\n        camera.position.z = 50;\r\n        camera.lookAt(new THREE.Vector3(0, 0, 0));\r\n\r\n\r\n        var orbitControls = new THREE.OrbitControls(camera, container);\r\n\r\n        orbitControls.userRotate = true;\r\n        orbitControls.userRotateSpeed = 3.0;\r\n        orbitControls.userZoom = true;\r\n        orbitControls.userZoomSpeed = 1.0;\r\n        orbitControls.userPan = true;\r\n        orbitControls.userPanSpeed = 1.0;\r\n        orbitControls.minPolarAngle = 0;\r\n        orbitControls.maxPolarAngle = Math.PI;\r\n        orbitControls.minDistance = 0;\r\n        orbitControls.maxDistance = Infinity;\r\n        orbitControls.keyPanSpeed = 0;\r\n\r\n        var ambientLight = new THREE.AmbientLight(0x383838);\r\n        scene.add(ambientLight);\r\n\r\n        \/\/ add spotlight for the shadows\r\n        var spotLight = new THREE.SpotLight(0xffffff);\r\n        spotLight.position.set(300, 300, 300);\r\n        spotLight.intensity = 1;\r\n        scene.add(spotLight);\r\n\r\n        var localPlane = new THREE.Plane( new THREE.Vector3( 0, 0, -1 ), 0 );\r\n        var globalPlane = new THREE.Plane( new THREE.Vector3( 0, -1, 0 ), 25 );\r\n\r\n        \/\/ add the output of the renderer to the html element\r\n        document.getElementById(\"WebGL-output\").appendChild(webGLRenderer.domElement);\r\n\r\n        \/\/ call the render function\r\n        var step = 0;\r\n\r\n\r\n        var mesh;\r\n        var meshMaterials;\r\n\r\n\r\n        var load = function (object) {\r\n            mesh = object;\r\n            addSelectables(object);\r\n            scene.add(mesh);\r\n        };\r\n\r\n\r\n        var mtlLoader = new THREE.MTLLoader();\r\n        mtlLoader.setPath(\"\/data\/3d.models\/\");\r\n        mtlLoader.load('RPV1.mtl', function(materials) {\r\n            materials.preload();\r\n\r\n            var objLoader = new THREE.OBJLoader();\r\n            objLoader.setMaterials(materials);\r\n            meshMaterials = materials;\r\n            objLoader.setPath(\"\/data\/3d.models\/\");\r\n            objLoader.load('RPV1.obj', load);\r\n        });\r\n\r\n        var grid = new THREE.GridHelper( 20, 1 );\r\n        scene.add( grid );\r\n\r\n        var axes = new THREE.AxisHelper(20);\r\n        scene.add(axes);\r\n\r\n        colorMap = 'rainbow';\r\n        numberOfColors = 512;\r\n        legendLayout = 'horizontal';\r\n\r\n        lut = new THREE.Lut( colorMap, numberOfColors );\r\n        lut.setMax( maxTemperature );\r\n        lut.setMin( minTemperature );\r\n\r\n        webGLRenderer.clippingPlanes = [];\r\n        webGLRenderer.localClippingEnabled  = false;\r\n        $(\"#chkClipping\").prop(\"checked\", false);\r\n\r\n\r\n        render();\r\n\r\n        init2();\r\n        animate2();\r\n\r\n        function addSelectables(object) {\r\n            var children = object.children;\r\n\r\n\r\n            if (children && children.length > 0) {\r\n                children.forEach(function (e) {\r\n                    addSelectables(e)\r\n                });\r\n            } else {\r\n                \/\/ no children assume contains a mesh\r\n                if (object instanceof THREE.Mesh) {\r\n                    _setSelectables(object.material);\r\n                }\r\n            }\r\n        }\r\n\r\n        function _setSelectables(material) {\r\n            if (material instanceof THREE.MultiMaterial) {\r\n                material.materials.forEach(function(mat) {\r\n                    _setSelectables(mat);\r\n                });\r\n            }\r\n            else {\r\n                material.clippingPlanes = [ localPlane ];\r\n                material.clipShadow = true;\r\n                \/\/ \u534a\u900f\u660e\u8a2d\u5b9a\r\n                material.opacity = 0.3;\r\n                material.transparent = true;\r\n                material.depthTest = false;\r\n                material.side = THREE.DoubleSide;\r\n            }\r\n        }\r\n\r\n        function render() {\r\n            orbitControls.update();\r\n            requestAnimationFrame(render);\r\n            webGLRenderer.render(scene, camera)\r\n        }\r\n\r\n        $(\"#yAxisAngleSlider1\").slider({\r\n            min: -10,\r\n            max: 10,\r\n            value: 0,\r\n            step: 0.1,\r\n            slide: function (event, ui) {\r\n                localPlane.constant = ui.value + 0;\r\n                $(\"#yAxisAngleLabel1\").text(ui.value);\r\n            }\r\n        });\r\n\r\n        function addSphere( x, y, z, source ) {\r\n            var sphereGeometry1 = new THREE.SphereGeometry(0.5, 20, 20);\r\n            var sphereMaterial1 = new THREE.MeshLambertMaterial({ color: 0x7777ff, name: source });\r\n            var sphere1 = new THREE.Mesh(sphereGeometry1, sphereMaterial1);\r\n            sphere1.name = source;\r\n\r\n            sphere1.position.x = x;\r\n            sphere1.position.y = y;\r\n            sphere1.position.z = z;\r\n\r\n            console.log(x);\r\n            console.log(y);\r\n            console.log(z);\r\n\r\n            selectables[ selectables.length ] = sphere1;\r\n            scene.add(sphere1);\r\n\r\n        }\r\n\r\n        $.getJSON(\"\/data\/3d\/temp_u1.json\", function( d ) {\r\n\r\n            $(\"#grid\").igGrid({\r\n                width: '100%',\r\n                columns: [\r\n                    { headerText: \"Name\", key: \"DataName\", dataType: \"string\", width: \"80%\" },\r\n                    { headerText: \"\u6e29\u5ea6\", key: \"T\", dataType: \"string\", width: \"20%\" }\r\n                ],\r\n                dataSource: d,\r\n                autoGenerateColumns: false,\r\n                autofitLastColumn: false,\r\n                features: [\r\n                    {\r\n                        name: \"Selection\",\r\n                        mode: \"row\",\r\n                        multipleSelection: false,\r\n                        activation: true\r\n                    },\r\n                    {\r\n                        name: \"Selection\"\r\n                    }\r\n                ]\r\n            });\r\n            $(\"#grid\").click( function(evt) {\r\n                var row = $(\"#grid\").igGridSelection(\"selectedRow\");\r\n                var mesh = scene.getObjectByName( d[row.index].Source, true );\r\n                mesh.material.emissive.setHex( 0xffffff );\r\n                setTimeout( function() { mesh.material.emissive.setHex( 0x000000 ); }, 150 );\r\n            });\r\n            d.forEach( function(v) { addSphere(v.X, v.Y, v.Z, v.Source); } );\r\n\r\n            tableRows = d;\r\n\r\n            d.forEach( function(v) {\r\n                $.getJSON( v.Source, function( dd ) {\r\n                    timelineDataSource[ v.Source ] = dd;\r\n                    dd.Value.forEach( function(x) { timelineDataSource[ v.Source ][ x.x ] = x.y; } );\r\n                });\r\n            } );\r\n\r\n            render();\r\n       });\r\n\r\n        function onDocumentMouseDown(event) {\r\n\r\n            var element = document.getElementById(\"WebGL-output\");\r\n            var rect = element.getBoundingClientRect();\r\n            \r\n            var positionX = rect.left ;\t\/\/ \u8981\u7d20\u306eX\u5ea7\u6a19\r\n            var positionY = rect.top  ;\t\/\/ \u8981\u7d20\u306eY\u5ea7\u6a19\r\n\r\n            \/\/ \u8981\u7d20\u306e\u5de6\u4e0a\u304b\u3089\u306e\u8ddd\u96e2\u3092\u8a08\u7b97\r\n            var offsetX = event.clientX - positionX ;\r\n            var offsetY = event.clientY - positionY ;\r\n\r\n            var vector = new THREE.Vector3(( offsetX \/ 700 ) * 2 - 1, -( offsetY \/ 700 ) * 2 + 1, 0.5);\r\n\r\n            vector = vector.unproject(camera);\r\n\r\n            var raycaster = new THREE.Raycaster(camera.position, vector.sub(camera.position).normalize());\r\n\r\n            var intersects = raycaster.intersectObjects( selectables );\r\n\r\n            if (intersects.length > 0) {\r\n\r\n                console.log(intersects[0].object.material.name);\r\n                console.log(intersects[0]);\r\n\r\n                var len = tableRows.length;\r\n                for ( var i = 0; i < len; i++ ) {\r\n                    if ( intersects[0].object.material.name == tableRows[i].Source ) {\r\n                        $(\"#grid\").igGridSelection(\"selectRow\", i);\r\n                    }\r\n                }\r\n            }\r\n        }\r\n        function onDocumentMouseMove( event ) {\r\n            event.preventDefault();\r\n            mouse.x = ( event.clientX \/ 700 ) * 2 - 1;\r\n            mouse.y = - ( event.clientY \/ 700 ) * 2 + 1;\r\n        }\r\n    }\r\n    window.onload = init;\r\n\r\n    $(function () {\r\n        show_btn = $(\"#show-btn\");\r\n        time_area = $(\"#time-area\");\r\n        $(\"#show-btn\").on(\"click\", showTimeSliderEtc);\r\n        $(\"#play-btn\").on(\"click\", playButtonClick);\r\n    });\r\n\r\n\/\/\/\/\/\/\r\n    var container2;\r\n\r\n    var camera2, scene2, renderer2, legendLayout2;\r\n\r\n    var position2;\r\n\r\n    var colorMap2;\r\n    var numberOfColors2;\r\n\r\n    function init2() {\r\n\r\n        container2 = document.getElementById( 'container2' );\r\n\r\n        \/\/ SCENE\r\n        scene2 = new THREE.Scene();\r\n\r\n        \/\/ CAMERA\r\n        camera2 = new THREE.PerspectiveCamera( 20, 300 \/ 200, 1, 10000 );\r\n        camera2.name = 'camera2';\r\n        scene2.add( camera2 );\r\n\r\n        \/\/ LIGHT\r\n        var ambientLight2 = new THREE.AmbientLight( 0x444444 );\r\n        ambientLight2.name = 'ambientLight2';\r\n        scene2.add( ambientLight2 );\r\n\r\n        colorMap2 = 'rainbow';\r\n        numberOfColors2 = 512;\r\n\r\n        legendLayout2 = 'horizontal';\r\n\r\n        loadModel2( colorMap2, numberOfColors2, legendLayout2 );\r\n\r\n        camera2.position.x = 17 + 4;\r\n        camera2.position.y = 9 - 4;\r\n        camera2.position.z = 32 - 20;\r\n\r\n        var directionalLight2 = new THREE.DirectionalLight( 0xffffff, 0.7 );\r\n        directionalLight2.position.x = 17;\r\n        directionalLight2.position.y = 9;\r\n        directionalLight2.position.z = 30;\r\n        directionalLight2.name = 'directionalLight2';\r\n        scene2.add( directionalLight2 );\r\n\r\n        renderer2 = new THREE.WebGLRenderer( { antialias: true } );\r\n        renderer2.setClearColor( 0xffffff );\r\n        renderer2.setPixelRatio( window.devicePixelRatio );\r\n        renderer2.setSize(  300,  200 );\r\n        container2.appendChild( renderer2.domElement );\r\n    }\r\n\r\n    function animate2() {\r\n        requestAnimationFrame( animate2 );\r\n        render2();\r\n    }\r\n\r\n    function render2() {\r\n        renderer2.render( scene2, camera2 );\r\n    }\r\n\r\n    function loadModel2 ( colorMap, numberOfColors, legendLayout ) {\r\n\r\n        var legend = lut.setLegendOn( { 'layout':'horizontal', 'position': { 'x': 20.5, 'y': 6, 'z': 3 } } );\r\n        scene2.add ( legend );\r\n        var labels = lut.setLegendLabels( { 'title': '\u6e29\u5ea6', 'um': '\u2103', 'ticks': 5 } );\r\n        scene2.add ( labels['title'] );\r\n        for ( var i = 0; i < Object.keys( labels[ 'ticks' ] ).length; i++ ) {\r\n            scene2.add ( labels[ 'ticks' ][ i ] );\r\n            scene2.add ( labels[ 'lines' ][ i ] );\r\n        }\r\n\r\n    }\r\n\r\n\r\n<\/script>","protected":false},"excerpt":{"rendered":"\u6e29\u5ea6\u5206\u5e03\uff081\u53f7\u6a5f\uff09 \u5207\u65ad\u9762\u8868\u793a \u5207\u65ad\u9762\u306e\u6cd5\u7dda\u65b9\u5411\u306e\u4f4d\u7f6e 0 \u6642\u523b\u306e\u8868\u793a \u518d\u751f \u30a4\u30f3\u30c7\u30c3\u30af\u30b9\uff1a0 \u6642\u523b\uff1a 0\u304b\u3089 0\u307e\u3067","protected":false},"author":1,"featured_media":0,"parent":2535,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"footnotes":""},"class_list":["post-2537","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/fdada.info\/fdada\/wp-json\/wp\/v2\/pages\/2537","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fdada.info\/fdada\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/fdada.info\/fdada\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/fdada.info\/fdada\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fdada.info\/fdada\/wp-json\/wp\/v2\/comments?post=2537"}],"version-history":[{"count":7,"href":"https:\/\/fdada.info\/fdada\/wp-json\/wp\/v2\/pages\/2537\/revisions"}],"predecessor-version":[{"id":3536,"href":"https:\/\/fdada.info\/fdada\/wp-json\/wp\/v2\/pages\/2537\/revisions\/3536"}],"up":[{"embeddable":true,"href":"https:\/\/fdada.info\/fdada\/wp-json\/wp\/v2\/pages\/2535"}],"wp:attachment":[{"href":"https:\/\/fdada.info\/fdada\/wp-json\/wp\/v2\/media?parent=2537"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}