Revision: 55835
http://sourceforge.net/p/brlcad/code/55835
Author: phoenixyjll
Date: 2013-06-25 07:43:03 +0000 (Tue, 25 Jun 2013)
Log Message:
-----------
Add the new CCI and CSI functions to brep_debug.cpp.
Modified Paths:
--------------
brlcad/trunk/src/librt/primitives/brep/brep_debug.cpp
Modified: brlcad/trunk/src/librt/primitives/brep/brep_debug.cpp
===================================================================
--- brlcad/trunk/src/librt/primitives/brep/brep_debug.cpp 2013-06-25
07:32:26 UTC (rev 55834)
+++ brlcad/trunk/src/librt/primitives/brep/brep_debug.cpp 2013-06-25
07:43:03 UTC (rev 55835)
@@ -2889,18 +2889,78 @@
int
-brep_intersect_curve_curve(struct rt_db_internal *, struct rt_db_internal *,
int, int)
+brep_intersect_curve_curve(struct rt_db_internal *intern1, struct
rt_db_internal *intern2, int i, int j)
{
- // Curve-curve intersection is to be implemented.
- return -1;
+ RT_CK_DB_INTERNAL(intern1);
+ RT_CK_DB_INTERNAL(intern2);
+ struct rt_brep_internal *bi1, *bi2;
+ bi1 = (struct rt_brep_internal *)intern1->idb_ptr;
+ bi2 = (struct rt_brep_internal *)intern2->idb_ptr;
+ RT_BREP_CK_MAGIC(bi1);
+ RT_BREP_CK_MAGIC(bi2);
+
+ ON_Brep *brep1 = bi1->brep;
+ ON_Brep *brep2 = bi2->brep;
+
+ if (i < 0 || i >= brep1->m_C3.Count() || j < 0 || j >=
brep2->m_C3.Count()) {
+ bu_log("Out of range: \n");
+ bu_log("\t0 <= i <= %d\n", brep1->m_C3.Count() - 1);
+ bu_log("\t0 <= j <= %d\n", brep2->m_C3.Count() - 1);
+ return -1;
+ }
+
+ ON_SimpleArray<ON_X_EVENT> events;
+ if (ON_Intersect(brep1->m_C3[i], brep2->m_C3[j], events)) {
+ for (int k = 0; k < events.Count(); k++) {
+ ON_wString wstr;
+ ON_TextLog textlog(wstr);
+ events[i].Dump(textlog);
+ ON_String str = ON_String(wstr);
+ bu_log("Intersection event %d:\n %s", k + 1, str.Array());
+ }
+ } else {
+ bu_log("No intersection.\n");
+ }
+
+ return 0;
}
int
-brep_intersect_curve_surface(struct rt_db_internal *, struct rt_db_internal *,
int, int)
+brep_intersect_curve_surface(struct rt_db_internal *intern1, struct
rt_db_internal *intern2, int i, int j)
{
- // Curve-surface intersection is to be implemented.
- return -1;
+ RT_CK_DB_INTERNAL(intern1);
+ RT_CK_DB_INTERNAL(intern2);
+ struct rt_brep_internal *bi1, *bi2;
+ bi1 = (struct rt_brep_internal *)intern1->idb_ptr;
+ bi2 = (struct rt_brep_internal *)intern2->idb_ptr;
+ RT_BREP_CK_MAGIC(bi1);
+ RT_BREP_CK_MAGIC(bi2);
+
+ ON_Brep *brep1 = bi1->brep;
+ ON_Brep *brep2 = bi2->brep;
+
+ if (i < 0 || i >= brep1->m_C3.Count() || j < 0 || j >= brep2->m_S.Count())
{
+ bu_log("Out of range: \n");
+ bu_log("\t0 <= i <= %d\n", brep1->m_C3.Count() - 1);
+ bu_log("\t0 <= j <= %d\n", brep2->m_S.Count() - 1);
+ return -1;
+ }
+
+ ON_SimpleArray<ON_X_EVENT> events;
+ if (ON_Intersect(brep1->m_C3[i], brep2->m_S[j], events)) {
+ for (int k = 0; k < events.Count(); k++) {
+ ON_wString wstr;
+ ON_TextLog textlog(wstr);
+ events[i].Dump(textlog);
+ ON_String str = ON_String(wstr);
+ bu_log("Intersection event %d:\n %s", k + 1, str.Array());
+ }
+ } else {
+ bu_log("No intersection.\n");
+ }
+
+ return 0;
}
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
This SF.net email is sponsored by Windows:
Build for Windows Store.
http://p.sf.net/sfu/windows-dev2dev
_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits