ฉันกำลังเผชิญกับปัญหาที่ฉันหวังว่าคนอื่นๆ เคยเจอมาก่อนเพราะฉันหาทางออกไม่ได้ !
ฉันมีรูปสามเหลี่ยมปกติใน CGAL ซึ่งฉันต้องการแทรกจุดที่ถ่วงน้ำหนักด้วยข้อมูล std::pair<myweightpoint, myinfo>
ทีละจุด และเพื่อให้จุดจับไปที่จุดยอด (Vertex_handle
) เมื่อแทรกแล้ว! ประเด็นก็คือไม่มีฟังก์ชั่นดังกล่าว มีหลายฟังก์ชันให้แทรก:
Vertex_handle
Regular_triangulation::insert
( const Weighted_point & p ) ;
นั่นส่งคืน Vertex_handle
ซึ่งเจ๋งแต่ไม่ได้ใช้คะแนนถ่วงน้ำหนักด้วย INFO ซึ่งสำคัญมากสำหรับฉันและสิ่งที่ฉันทำกับจุดยอดเหล่านั้น
std::ptrdiff_t
Regular_triangulation::insert
( WeightedPointWithInfoInputIterator first, WeightedPointWithInfoInputIterator last ) ;
ซึ่งช่วยให้ฉันสามารถแทรกจุดถ่วงน้ำหนักด้วยข้อมูล (ซึ่งดี) แต่ไม่ได้ช่วยให้ฉันจัดการจุดยอดที่แทรกไว้ได้ นอกจากนี้ เนื่องจากฉันกำลังแทรกจุดทีละจุด ตอนนี้ฉันกำลังทำสิ่งนี้:
v_wpoints.resize(1) ;
v_wpoints[0] = std::make_pair(myweightpoint, myinfo) ;
rt.insert(v_wpoints.begin(), v_wpoints.end()) ;
ซึ่งดูสกปรกจริงๆ ดังนั้นคำถามของฉันคือ: ทำไมไม่มีฟังก์ชั่นแบบนั้น:
Vertex_handle Regular_triangulation::insert( const Weighted_point_with_info & p ) ;
และฉันจะทำอย่างไรเพื่อแทรกจุดถ่วงน้ำหนักพร้อมข้อมูลในสมการสามเหลี่ยมปกติและนำจุดจับไปที่จุดยอดที่แทรกไว้
ขอบคุณมาก.