Jump to content

Search the Community

Showing results for tags 'bezier'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • General
    • Lounge/General chat
    • Education
    • Jobs
    • Marketplace
  • Houdini
    • General Houdini Questions
    • Effects
    • Modeling
    • Animation & Rigging
    • Lighting & Rendering
    • Compositing
    • Games
    • Tools (HDA's etc.)
  • Coders Corner
    • HDK : Houdini Development Kit
    • Scripting
    • Shaders
  • Art and Challenges
    • Finished Work
    • Work in Progress
    • VFX Challenge
    • Effects Challenge Archive
  • Systems and Other Applications
    • Other 3d Packages
    • Operating Systems
    • Hardware
    • Pipeline
  • od|force
    • Feedback, Suggestions, Bugs

Found 3 results

  1. Hi, With the following code, I can write out a single bezier curve but anything more than one, the second bezier curves are not in the bgeo file being written out. The point count indicates that it is aware of additional points associated with the second curve. #include <string> #include <GU/GU_Detail.h> #include <GU/GU_PrimRBezCurve.h> #include <UT/UT_Version.h> #include <GEO/GEO_Point.h> #include <OpenEXR/ImathVec.h> #include <vector> typedef std::vector<Imath::V3d> V3dContainer; void create_single_bezier_curve(const std::string& bgeo_filename) { GU_Detail gdp; V3dContainer cvs; cvs.push_back(Imath::V3d(0,0,0)); cvs.push_back(Imath::V3d(1,1,0)); cvs.push_back(Imath::V3d(2,1,0)); cvs.push_back(Imath::V3d(3,0,0)); GA_Size num_points = cvs.size(); for ( size_t i = 0; i < num_points; ++i ) { GA_Offset pt = gdp.appendPointOffset(); gdp.setPos3(pt, cvs[i][0], cvs[i][1], cvs[i][2]); } GU_PrimRBezCurve* bezier_curve = GU_PrimRBezCurve::build(&gdp,num_points); if (bezier_curve) { for ( size_t i = 0; i < num_points; ++i ) { bezier_curve->setVertexPoint(i,gdp.pointOffset(i)); } gdp.save(bgeo_filename.c_str(), NULL); } } void create_multilpe_bezier_curves(const std::string& bgeo_filename) { GU_Detail gdp; V3dContainer cvs; // Curve 0 cvs.push_back(Imath::V3d(0,0,0)); cvs.push_back(Imath::V3d(1,1,0)); cvs.push_back(Imath::V3d(2,1,0)); cvs.push_back(Imath::V3d(3,0,0)); // Curve 1 double y_offset = 2.0; cvs.push_back(Imath::V3d(0,0 + y_offset,0)); cvs.push_back(Imath::V3d(1,1 + y_offset,0)); cvs.push_back(Imath::V3d(2,1 + y_offset,0)); cvs.push_back(Imath::V3d(3,0 + y_offset,0)); cvs.push_back(Imath::V3d(4,0 + y_offset,0)); // Store all the points GA_Size num_points = cvs.size(); for ( size_t i = 0; i < num_points; ++i ) { GA_Offset pt = gdp.appendPointOffset(); gdp.setPos3(pt, cvs[i][0], cvs[i][1], cvs[i][2]); } // Setup curve 0 GA_Size num_points_curve_0 = 4; GU_PrimRBezCurve* bezier_curve_0 = GU_PrimRBezCurve::build(&gdp,num_points_curve_0); if (bezier_curve_0) { for ( size_t i = 0; i < num_points_curve_0; ++i ) { bezier_curve_0->setVertexPoint(i,gdp.pointOffset(i)); } } // Setup curve 1 GA_Size num_points_curve_1 = 5; GA_Offset curve_offset_1 = 4; // because the first 4 points is for curve 0 GU_PrimRBezCurve* bezier_curve_1 = GU_PrimRBezCurve::build(&gdp,num_points_curve_1); if (bezier_curve_1) { for ( size_t i = 0; i < num_points_curve_1; ++i ) { bezier_curve_1->setVertexPoint(i,gdp.pointOffset(i+curve_offset_1)); // bezier_curve_1->setVertexPoint(i,curve_offset_1); } } gdp.save(bgeo_filename.c_str(), NULL); } int main(int argc, char *argv[]) { create_single_bezier_curve("single_bezier_curve.bgeo"); create_multilpe_bezier_curves("multiple_bezier_curves.bgeo"); return 0; }
  2. Bezier Handle State

    My implementation of a bezier handle using new custom states in H17. Please don't hesitate to criticize/suggest features. Thanks! ao_utility__bezierhandle__1_0.hdalc
  3. Bezier Plexus

    Hey everyone, I'm slowly starting to learn Houdini and I've had a bunch of help from the forums so I wanted to give back and share a hip that I just finished. It's not the most complicated thing in the world, but I learned a lot while making it, so maybe it'll help someone else out. Feel free to offer any suggestions/improvements on it (especially when it comes to how I coded the vex in the attr wrangles). Mike mb_bezier_plexus.hiplc
×