Editing User:Plussai/GSoC 2012 log
From BRL-CAD
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.
The edit can be undone.
Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
− | |||
− | |||
== 7 May 2012== | == 7 May 2012== | ||
*build the brl-cad svn on VM successfully. | *build the brl-cad svn on VM successfully. | ||
Line 15: | Line 13: | ||
ON_BrepTrimArray m_T;//trims | ON_BrepTrimArray m_T;//trims | ||
ON_BrepVertexArray m_V;//vertexs | ON_BrepVertexArray m_V;//vertexs | ||
− | + | figure:[http://brlcad.org/w/images/5/5e/Brep.jpg] | |
− | figure:[http://brlcad.org/w/images/5/5e/Brep.jpg] | ||
== 9 May 2012 == | == 9 May 2012 == | ||
Line 43: | Line 40: | ||
*submit a patch of brep_debug.cpp.check if the index is in the range and string of letter. | *submit a patch of brep_debug.cpp.check if the index is in the range and string of letter. | ||
− | + | == 23 May 2012 == | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
*update the patch of brep_debug.cpp.add the sub command 'info T','info E' for display the information of trims and edges in brep.Also, make the 'info' dispaly the information in a range of indexed elements for keeping sync with the 'plot'. | *update the patch of brep_debug.cpp.add the sub command 'info T','info E' for display the information of trims and edges in brep.Also, make the 'info' dispaly the information in a range of indexed elements for keeping sync with the 'plot'. | ||
− | + | == 25 May 2012 == | |
*add a subcommand 'plot SCV' to display nurbs control point net | *add a subcommand 'plot SCV' to display nurbs control point net | ||
− | + | == 27 May 2012 == | |
*waste a lot of time to test the opennurbs' API of: | *waste a lot of time to test the opennurbs' API of: | ||
int CreateMesh(const ON_MeshParameters& mp, ON_SimpleArray<ON_Mesh*>& mesh_list) const; | int CreateMesh(const ON_MeshParameters& mp, ON_SimpleArray<ON_Mesh*>& mesh_list) const; | ||
Line 67: | Line 58: | ||
} | } | ||
− | + | == 29 May 2012 == | |
− | |||
− | |||
*do some works on converting nurbs curve and surface to bezier | *do some works on converting nurbs curve and surface to bezier | ||
− | + | == 31 May 2012 == | |
*do some works on comput the intersection between a line and a bezier curve/surface | *do some works on comput the intersection between a line and a bezier curve/surface | ||
*some materials: the nurbs book and Curves and Surfaces for Computer Aided Geometric Design: A Practical Guide. | *some materials: the nurbs book and Curves and Surfaces for Computer Aided Geometric Design: A Practical Guide. | ||
− | + | ||
+ | == 1 June 2012 == | ||
*implement RT_ADD_VLIST(vhead, pt1, BN_VLIST_POINT_DRAW) in src/libdm/dm-plot.c but it seems that dm-plot.c has nothing relation with the brep_debug.cpp | *implement RT_ADD_VLIST(vhead, pt1, BN_VLIST_POINT_DRAW) in src/libdm/dm-plot.c but it seems that dm-plot.c has nothing relation with the brep_debug.cpp | ||
− | + | == 2 June 2012 == | |
*implement RT_ADD_VLIST(vhead, pt1, BN_VLIST_POINT_DRAW) in src/libdm/dm-ogl.c and upload the patch. | *implement RT_ADD_VLIST(vhead, pt1, BN_VLIST_POINT_DRAW) in src/libdm/dm-ogl.c and upload the patch. | ||
*make progress for subcommand 'plot SCV' in mged.The patch can display not only the control net,but the control point. | *make progress for subcommand 'plot SCV' in mged.The patch can display not only the control net,but the control point. | ||
− | + | == 4 June 2012 == | |
− | |||
− | |||
*one step that make 2d trimming curve into 3d can be skip because the BREP struct has the edge in 3d corresponding to the 3d trimming curve. | *one step that make 2d trimming curve into 3d can be skip because the BREP struct has the edge in 3d corresponding to the 3d trimming curve. | ||
*study the qd tree and kd tree for subdivision of nurbs surface in paper and the approximation error for the subdivision. | *study the qd tree and kd tree for subdivision of nurbs surface in paper and the approximation error for the subdivision. | ||
− | + | == 6 June 2012 == | |
*figure out the coving triangles to avoid cracks when making boundary curve tessellation. | *figure out the coving triangles to avoid cracks when making boundary curve tessellation. | ||
*figure out the trimming curve tracing when splitting the trimming curve into bezier patch.(the active edge,active leaftree) | *figure out the trimming curve tracing when splitting the trimming curve into bezier patch.(the active edge,active leaftree) | ||
− | + | == 8 June 2012 == | |
*read the opennurbs API and find the ON_NurbsCurve::MakePiecewiseBezier() can clamps ends and adds knots so the NURBS curve has bezier spans (all distinct knots have multiplitity = degree) ,the ON_NurbsSurface also has the same member method.It is a better way to convert trimming curve and surface into bezier | *read the opennurbs API and find the ON_NurbsCurve::MakePiecewiseBezier() can clamps ends and adds knots so the NURBS curve has bezier spans (all distinct knots have multiplitity = degree) ,the ON_NurbsSurface also has the same member method.It is a better way to convert trimming curve and surface into bezier | ||
*read the opennurbs API and find the ON_NurbsCurve::InsertKnot() can make the conversion between Nurbs and Bezier if setting the parameter multiplicity equal to degree.,the ON_NurbsSurface also has the same member method. | *read the opennurbs API and find the ON_NurbsCurve::InsertKnot() can make the conversion between Nurbs and Bezier if setting the parameter multiplicity equal to degree.,the ON_NurbsSurface also has the same member method. | ||
− | + | == 10 June 2012 == | |
*add 'info TB' 'SB' to display information piecewise bezier of trimcurve and surface.patch has been upload | *add 'info TB' 'SB' to display information piecewise bezier of trimcurve and surface.patch has been upload | ||
*add 'plot TESS index plotres' to draw the trimesh of a nurbs surface. the tess has not taken apporimmation into consideration and just simply subdivide u,v into plotres steps; | *add 'plot TESS index plotres' to draw the trimesh of a nurbs surface. the tess has not taken apporimmation into consideration and just simply subdivide u,v into plotres steps; | ||
− | + | == 12 June 2012 == | |
− | |||
− | |||
*upload the patch to implement the adaptive bezier subdivision and triangle mesh display which includes the function bezierApporixmation(...),bezierSubdivision_kdtree.. | *upload the patch to implement the adaptive bezier subdivision and triangle mesh display which includes the function bezierApporixmation(...),bezierSubdivision_kdtree.. | ||
*read opennurbs_ext.cpp,especially figuring out the function of | *read opennurbs_ext.cpp,especially figuring out the function of | ||
Line 112: | Line 98: | ||
*SurfaceTree::subdivideSurfaceByKnots and BBNode* SurfaceTree::subdivideSurface can help me to create the kd/qdtree as a represent of bezier subdivision.But the recursion termination condition is different. | *SurfaceTree::subdivideSurfaceByKnots and BBNode* SurfaceTree::subdivideSurface can help me to create the kd/qdtree as a represent of bezier subdivision.But the recursion termination condition is different. | ||
− | + | ==14 June 2014 == | |
*In function of SurfaceTree::subdivideSurface() at src/opennurbs_exp.cpp,line 1528 to 1531: | *In function of SurfaceTree::subdivideSurface() at src/opennurbs_exp.cpp,line 1528 to 1531: | ||
const ON_Surface* surf = m_face->SurfaceOf(); | const ON_Surface* surf = m_face->SurfaceOf(); | ||
Line 122: | Line 108: | ||
*Read the BBNode structure in opennurbs_exp.cpp, BBNode will be used to represent the node in qd/kd tree and handling the trimcurve. | *Read the BBNode structure in opennurbs_exp.cpp, BBNode will be used to represent the node in qd/kd tree and handling the trimcurve. | ||
− | + | ==16 June 2014 == | |
*upload a patch in opennurbs_ext.cpp | *upload a patch in opennurbs_ext.cpp | ||
*add three functions below to subdivide bezier,in opennurbs_ext.cpp | *add three functions below to subdivide bezier,in opennurbs_ext.cpp | ||
Line 132: | Line 118: | ||
BBNode* createBezierTreeNode(); | BBNode* createBezierTreeNode(); | ||
− | + | ==18 June 2014 == | |
− | |||
− | |||
*compare surface split between | *compare surface split between | ||
BBNode* subdivideSurfaceToBezier(...) | BBNode* subdivideSurfaceToBezier(...) | ||
Line 144: | Line 128: | ||
*understand SurfaceTree::subdivideSurface() at src/opennurbs_exp.cpp,line 1528 to 1531, it comes to the same result when replacing localsurf into surf because the localsurf's domain is change along with the split. | *understand SurfaceTree::subdivideSurface() at src/opennurbs_exp.cpp,line 1528 to 1531, it comes to the same result when replacing localsurf into surf because the localsurf's domain is change along with the split. | ||
− | + | ==20 June 2014 == | |
*figure out the functions below in brep_debug.cpp which is used to draw trimmed BBNode of surface.But these functions seem not be able to remark the intersections of BRNode and trimcurve | *figure out the functions below in brep_debug.cpp which is used to draw trimmed BBNode of surface.But these functions seem not be able to remark the intersections of BRNode and trimcurve | ||
void drawBBNode(....) | void drawBBNode(....) | ||
Line 156: | Line 140: | ||
it need to be check again and compute the interections if needed. | it need to be check again and compute the interections if needed. | ||
− | + | ==22 June 2014 == | |
*figure out the functions below in opennurbs_ext.h which can help me to comput the intersection between BBNode and trimcurve. | *figure out the functions below in opennurbs_ext.h which can help me to comput the intersection between BBNode and trimcurve. | ||
fastf_t BANode<BA>::getCurveEstimateOfU(fastf_t v, fastf_t tol) const | fastf_t BANode<BA>::getCurveEstimateOfU(fastf_t v, fastf_t tol) const | ||
Line 166: | Line 150: | ||
sortT(BRNode* first, BRNode* second); | sortT(BRNode* first, BRNode* second); | ||
− | + | ==24 June 2014 == | |
*implement TrimNode and TrimLoop to represent the struct of untrimmed regions in parameter area.some functions included below: | *implement TrimNode and TrimLoop to represent the struct of untrimmed regions in parameter area.some functions included below: | ||
TrimLoop(ON_Interval m_u,ON_Interval m_v):tol(0.000001);//construct | TrimLoop(ON_Interval m_u,ON_Interval m_v):tol(0.000001);//construct | ||
Line 175: | Line 159: | ||
TrimNode* travelLoop(TrimNode* n,int step);//travel from a trimnode to form a close loop | TrimNode* travelLoop(TrimNode* n,int step);//travel from a trimnode to form a close loop | ||
− | + | ==26 June 2014 == | |
− | |||
− | |||
*start to implement BVNode<BV>::doTrimming function in opennurbs_ext.cpp. | *start to implement BVNode<BV>::doTrimming function in opennurbs_ext.cpp. | ||
*implement getLeavesIntersection(....) to find the bboxings of curveleaves which have intersections with the BBNode in UV region | *implement getLeavesIntersection(....) to find the bboxings of curveleaves which have intersections with the BBNode in UV region | ||
*calculate the intersection between edge of bboxing and trimcurve's leaves(bottom,top,left,right) | *calculate the intersection between edge of bboxing and trimcurve's leaves(bottom,top,left,right) | ||
*solve some special sitiuations: intersection on the conner of bboxing. | *solve some special sitiuations: intersection on the conner of bboxing. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |