Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members   Examples  

/home/xchen/xia/src/glrender/demoSrfCmpletion_complicated_poly.cc

#include <View.H>
#include <TensorBlossom.H>

using namespace xchen;

void srf_cmpl(View* v)
{
  TensorBlossom<1,3> *boundary = new TensorBlossom<1,3>(3, 30);

  boundary->ControlMesh() =
    E3(17,390), E3(125,419), E3(117, 365), E3(46, 251), E3(109, 249), E3(72, 167), E3(103, 130), E3(106,  21), E3(162,121), E3( 132, 144), E3(171,197),
    E3(185,205), E3(291,78), E3(295,113), E3(264,188), E3(201, 237), E3(212,296), E3(249, 291), E3(439, 237), E3(499, 281), E3(361, 316), E3(287, 338),
    E3(317, 385), E3(424, 415), E3(442, 455), E3(327, 484), E3(271, 417), E3(229, 403), E3(164, 481), E3(74,488);
  
  boundary->SetPeriodicEnd();

    
  E3 
    mpt0 = E3(92,449), mpt1 = mpt0, mpt2 = E3(145, 446), mpt3 = E3(181, 356), mpt4 = E3(146, 297), mpt5 = E3(152, 243), mpt6 = E3(110,172),
    mpt7 = E3(117, 133), mpt8 = E3(127, 113), mpt9 = mpt8, mpt10= mpt7, mpt11= E3( 139, 224), mpt12= E3( 188, 224), mpt13= E3(278, 113),
    mpt14= mpt13, mpt15= E3(241, 173), mpt16= mpt12, mpt17= mpt3, mpt18= E3(251, 329), mpt19= E3(430, 269), mpt20= mpt19, mpt21= E3(352, 290),
    mpt22= E3(233, 349), mpt23= E3(302, 410), mpt24= E3(401, 437), mpt25= mpt24, mpt26= E3(342, 435), mpt27= E3(283, 390), mpt28= mpt22, mpt29= E3(145, 446);

  E3 
    mpt5a =  mpt11, mpt10a = mpt6, mpt11a = mpt5, mpt12a = mpt15, mpt16a = mpt5, mpt16b = mpt4, mpt17a = mpt22, mpt18a = mpt21, mpt21a = mpt18, mpt22a = mpt27,
    mpt23a = mpt26, mpt26a = mpt23, mpt28a = mpt3;

  TensorBlossom<1,3> *maxis1 = new TensorBlossom<1,3>(1, 30);
  maxis1->ControlMesh() = 
    mpt0,mpt1,mpt2,mpt3,mpt4,mpt5,mpt6,mpt7,mpt8,mpt9,mpt10,mpt11,mpt12,mpt13,mpt14,mpt15,mpt16,
    mpt17,mpt18,mpt19,mpt20,mpt21,mpt22,mpt23,mpt24,mpt25,mpt26,mpt27,mpt28,mpt29;
  
  maxis1->SetPeriodicEnd();


  TensorBlossom<1,3> *maxis2 = new TensorBlossom<1,3>(1, 43);
  maxis2->ControlMesh() = 
    mpt0,mpt1,mpt2,mpt3,mpt4,mpt5,mpt5a,mpt6,mpt7,mpt8,mpt9,mpt10,mpt10a,mpt11,mpt11a,mpt12,mpt12a,mpt13,mpt14,mpt15,mpt16,mpt16a,mpt16b,
    mpt17,mpt17a,mpt18,mpt18a,mpt19,mpt20,mpt21,mpt21a,mpt22,mpt22a,mpt23,mpt23a,mpt24,mpt25,mpt26,mpt26a,mpt27,mpt28,mpt28a,mpt29;
  
  maxis2->SetPeriodicEnd();
  maxis2->KnotVector() = 
    0.,1,2,3,4,5,5.2,6,7,8,9,10,10.4,11,11.33,12,12.5,13,14,15,16,16.3,16.6,17,17.6,18,18.5,19,20,21,21.8,22,22.8,23,23.4,24,25,26,26.75,27,28,28.33,29,30;

  maxis2->Transform(scale(.002));
  boundary->Transform(scale(.002));

  TensorBlossom<2,3> *srf = new TensorBlossom<2,3>(ruled, boundary, maxis2);

  new glModel(v, srf);
  //  new glModel(v, boundary);
  //  new glModel(v, maxis1);
  //  new glModel(v, maxis2);
}
  
void new_glModel(View* v) 
{
  srf_cmpl(v);
}












// curve1 : curve( 2, "ec_periodic", "kv_uniform", array(pt0,pt1,pt2,pt3,pt4,pt5,pt6,pt7,pt8,pt9,pt10,pt11,pt12,pt13,pt14,pt15,pt16,pt17,pt18,pt19,pt20,pt21,pt22,pt23,pt24,pt25,pt26,pt27,pt28,pt29) );
// show(curve1);

// mcurve1 : curve( 2, "ec_periodic", "kv_uniform", array(mpt0,mpt1,mpt2,mpt3,mpt4,mpt5,mpt6,mpt7,mpt8,mpt9,mpt10,mpt11,mpt12,mpt13,mpt14,mpt15,mpt16,mpt17,mpt18,mpt19,mpt20,mpt21,mpt22,mpt23,mpt24,mpt25,mpt26,mpt27,mpt28,mpt29) );
// show(mcurve1);

// mpt5a:  mpt11;
// mpt10a: mpt6;
// mpt11a: mpt5;
// mpt12a: mpt15;
// mpt16a: mpt5;
// mpt16b: mpt4;
// mpt17a: mpt22;
// mpt18a: mpt21;
// mpt21a: mpt18;
// mpt22a: mpt27;
// mpt23a: mpt26;
// mpt26a: mpt23;
// mpt28a: mpt3;
// ref_kv: knotVector(5.2, 10.4, 11.33, 12.5, 16.3, 16.6, 17.6, 18.5, 21.8, 22.8, 23.4, 26.75, 28.33);
// merged_ma_kv: knotVector(0,1,2,3,4,5,5.2,6,7,8,9,10,10.4,11,11.33,12,12.5,13,14,15,16,16.3,16.6,17,17.6,18,18.5,19,20,21,21.8,22,22.8,23,23.4,24,25,26,26.75,27,28,28.33,29,30);
// ref_ma_pts: array(mpt0,mpt1,mpt2,mpt3,mpt4,mpt5,mpt5a,mpt6,mpt7,mpt8,mpt9,mpt10,mpt10a,mpt11,mpt11a,mpt12,mpt12a,mpt13,mpt14,mpt15,mpt16,mpt16a,mpt16b,mpt17,mpt17a,mpt18,mpt18a,mpt19,mpt20,mpt21,mpt21a,mpt22,mpt22a,mpt23,mpt23a,mpt24,mpt25,mpt26,mpt26a,mpt27,mpt28,mpt28a,mpt29);

// mcurve2 : curve( 2, "ec_periodic", merged_ma_kv, ref_ma_pts );
// show(mcurve2);

// ref_curve1: cRefine(curve1,ref_kv,true);

// surf: ruledSrf(ref_curve1,mcurve2);

// isocrv0: crvInSrf(surf,"row",0);
// show(isocrv0);

// isocrv1: crvInSrf(surf,"row",.25);
// show(isocrv1);

// isocrv2: crvInSrf(surf,"row",.5);
// show(isocrv2);

// isocrv3: crvInSrf(surf,"row",.75);
// show(isocrv3);

// isocrv4: crvInSrf(surf,"row",1.0);
// show(isocrv4);


// curve4 : curve( 4, "ec_periodic", "kv_uniform", array(pt0,pt1,pt2,pt3,pt4,pt5,pt6,pt7,pt8,pt9,pt10,pt11,pt12,pt13,pt14,pt15,pt16,pt17,pt18,pt19,pt20,pt21,pt22,pt23,pt24,pt25,pt26,pt27,pt28,pt29) );
// show(curve4);

// open_mcurve2: crvOpen(mcurve2);
// raised_mcurve2: raiseCrvOrder(open_mcurve2,4);
// open_curve4 : crvOpen(curve4);
// ref_curve4: cRefine(open_curve4,cKv(raised_mcurve2),false);
// surf4: ruledSrf(ref_curve4,raised_mcurve2);

// cisocrv0: crvInSrf(surf4,"row",0);
// show(cisocrv0);

// cisocrv1: crvInSrf(surf4,"row",.25);
// show(cisocrv1);

// cisocrv2: crvInSrf(surf4,"row",.5);
// show(cisocrv2);

// cisocrv3: crvInSrf(surf4,"row",.75);
// show(cisocrv3);

// cisocrv4: crvInSrf(surf4,"row",1.0);
// show(cisocrv4);

Generated on Wed Apr 7 21:40:48 2004 by doxygen1.2.18