FOLD (โครงสร้างข้อมูลรายการพับกระดาษแบบยืดหยุ่น) เป็นรูปแบบไฟล์ (ที่มีนามสกุล .fold
fold ) สำหรับการอธิบาย แบบจำลองการพับกระดาษ : รูปแบบรอยพับ รูปแบบหุบเขาภูเขา สถานะการพับ ฯลฯ โดยหลักแล้ว ไฟล์ FOLD สามารถจัดเก็บ ตาข่าย ที่ มีจุดยอด ขอบ ใบหน้า และการเชื่อมโยงระหว่างสิ่งเหล่านั้นด้วยรูปทรงเรขาคณิต 2D หรือ 3D ที่เป็นตัวเลือก บวกกับ ลำดับการซ้อน โทโพโลยีของใบหน้าที่ทับซ้อนกันทางเรขาคณิต Mesh ยังสามารถจัดเก็บข้อมูลที่ผู้ใช้กำหนดเพิ่มเติมได้อย่างง่ายดาย ไฟล์ FOLD หนึ่งไฟล์ยังสามารถจัดเก็บเมชดังกล่าวหลายรายการใน " เฟรม " (แต่ฟีเจอร์นี้ยังไม่รองรับในโค้ดใด ๆ )
พื้นที่เก็บข้อมูลนี้ บันทึก ทั้งรูปแบบ FOLD (ซึ่งยังอยู่ในช่วงเริ่มต้น ดังนั้นคำจำกัดความจึงมีการพัฒนา) และมี เครื่องมือซอฟต์แวร์ เว็บและ ไลบรารี JavaScript เพื่อช่วยในการจัดการไฟล์ FOLD FOLD สร้างขึ้นจาก JSON (JavaScript Object Notation) ดังนั้น parsers จึงพร้อมใช้งานในภาษาการเขียนโปรแกรมทุกภาษา เมื่อแยกวิเคราะห์แล้ว รูปแบบยังทำหน้าที่เป็นโครงสร้างข้อมูลทั่วไปที่คุณต้องการแสดงถึงการพับในซอฟต์แวร์ของคุณ ไลบรารีของเรายังช่วยสร้างโครงสร้างข้อมูลสำรองที่มีประโยชน์สำหรับการนำทางในเครือข่าย
FOLD มีความคล้ายคลึงกับรูปแบบ OBJ (และรูปแบบอื่นที่คล้ายคลึงกัน) สำหรับการจัดเก็บตาข่าย 3 มิติ คุณสมบัติที่โดดเด่นหลักๆ คือ การแยกวิเคราะห์ได้ง่าย ความสามารถใน การขยายได้ง่าย ความสามารถในการแยกแยะ ใบหน้าที่ทับซ้อนกัน ด้วยลำดับการซ้อน และความสามารถในการกำหนดขอบและทำให้คุณสมบัติของขอบ (เช่น การมอบหมายงานในหุบเขาบนภูเขา) และ คอมเพล็กซ์รูปทรงหลายเหลี่ยมตามอำเภอใจ (หากไม่มีขอบ OBJ จะไม่สามารถแยกแยะระหว่างสองใบหน้าที่ใช้จุดยอดสองจุดติดต่อกันจากใบหน้าที่ใช้ขอบร่วมกัน) นอกจากนี้ FOLD ยังสามารถรองรับ การเชื่อมโยง (ที่มีขอบ 1D แต่ไม่มีใบหน้า 2D)
นี่คือซอฟต์แวร์ที่รองรับรูปแบบ FOLD ซึ่งสร้างขึ้นทั้งภายในโครงการนี้และโดยบุคคลอื่น:
สำหรับเว็บแอปแบบง่าย ให้เพิ่มแท็กนี้ใน HTML ของคุณ: <script src="https://edemaine.github.io/fold/dist/fold.js"></script>
(หรือบันทึกสำเนาของ dist/fold.js
ในเครื่อง dist/fold.js
และใช้สิ่งนั้น) จากนั้น หากคุณเพิ่ม FOLD = require('fold')
ลงในโค้ด JavaScript/CoffeeScript คุณจะสามารถเข้าถึงไลบรารีได้ผ่านทาง FOLD.moduleName.functionName
เช่น FOLD.filter.collapseNearbyVertices
สำหรับแอป Node เพียง npm install --save fold
; จากนั้นเพิ่ม FOLD = require('fold')
ให้กับโค้ด JavaScript/CoffeeScript ของคุณ จากนั้นเข้าถึงไลบรารีผ่าน FOLD.moduleName.functionName
เช่น FOLD.filter.collapseNearbyVertices
API ไลบรารี FOLD จัดทำเอกสารโมดูลและฟังก์ชันที่พร้อมใช้งานสำหรับการจัดการอ็อบเจ็กต์ FOLD หากคุณมีไฟล์ .fold
ให้แยกวิเคราะห์ด้วย JSON.parse(fileContents)
ก่อนเพื่อรับออบเจ็กต์ FOLD
ไลบรารี JavaScript ยังมีอินเทอร์เฟซบรรทัดคำสั่งที่เรียกว่า fold-convert
หากต้องการใช้งาน ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง Node.js แล้ว จากนั้นเรียกใช้ npm install -g fold
จากบรรทัดคำสั่ง จากนั้นคุณสามารถใช้คุณสมบัติต่อไปนี้:
fold-convert -o .fold *.opx
: แปลงไฟล์ ORIPA .opx
เป็น .fold
fold-convert --flat-fold -o B.fold A.fold
: รูปแบบรอยพับแบบเรียบ A
ให้เป็นทรงเรขาคณิตแบบพับ B
รูปแบบ FOLD ถูกคิดค้นโดยคนสามคน:
เรายินดีรับข้อเสนอแนะและข้อเสนอแนะของคุณ! เป้าหมายคือเพื่อให้ซอฟต์แวร์ทั้งหมดใน origami คำนวณเพื่อรองรับ FOLD เป็นรูปแบบการแลกเปลี่ยนทั่วไป