void Example1_CurvesIn() { IArchive archive( Alembic::AbcCoreHDF5::ReadArchive(), "curves1.abc" ); std::cout << "Reading: " << archive.getName() << std::endl; std::cout <<"constructing curves" << std::endl; ICurves myCurves( IObject( archive, kTop) , "reallly_long_curves_name"); std::cout << "getting schema" << std::endl; ICurvesSchema &curves = myCurves.getSchema(); std::cout << "done getting schema" << std::endl; // get the samples from the curves ICurvesSchema::Sample curvesSample; curves.get( curvesSample ); // test the bounding box TESTING_ASSERT( curvesSample.getSelfBounds().min == V3d( -1.0, -1.0, -1.0 ) ); std::cout << "bounds max " << curvesSample.getSelfBounds().max << std::endl; TESTING_ASSERT( curvesSample.getSelfBounds().max == V3d( 1.0, 1.0, 1.0 ) ); // test other attributes TESTING_ASSERT( curvesSample.getPositions() -> size() == 12); IFloatGeomParam::Sample widthSample; curves.getWidthsParam().getExpanded( widthSample ); TESTING_ASSERT( widthSample.getVals()->size() == 12); TESTING_ASSERT( curves.getWidthsParam().valid() ); TESTING_ASSERT( widthSample.getScope() == kVertexScope ); }
void Example2_CurvesIn() { IArchive archive( Alembic::AbcCoreOgawa::ReadArchive(), "curves2.abc" ); ICurves myCurves( IObject( archive, kTop) , "nurbsCurve"); ICurvesSchema &curves = myCurves.getSchema(); // get the samples from the curves ICurvesSchema::Sample curvesSample; curves.get( curvesSample ); // test the bounding box TESTING_ASSERT( curvesSample.getSelfBounds().min == V3d( -1.0, -1.0, -1.0 ) ); TESTING_ASSERT( curvesSample.getSelfBounds().max == V3d( 1.0, 1.0, 1.0 ) ); // test other attributes TESTING_ASSERT( curvesSample.getPositions() -> size() == 12); TESTING_ASSERT( curvesSample.getType() == kVariableOrder ); TESTING_ASSERT( curvesSample.getWrap() == kNonPeriodic ); TESTING_ASSERT( curvesSample.getBasis() == kBezierBasis ); TESTING_ASSERT( ( *curvesSample.getOrders() )[0] == 4 ); TESTING_ASSERT( ( *curvesSample.getOrders() )[1] == 2 ); TESTING_ASSERT( curvesSample.getPositionWeights()->size() == 12 ); TESTING_ASSERT( curvesSample.getKnots()->size() == 18 ); IFloatGeomParam::Sample widthSample; curves.getWidthsParam().getExpanded( widthSample ); TESTING_ASSERT( widthSample.getVals()->size() == 12); TESTING_ASSERT( curves.getWidthsParam().valid() ); TESTING_ASSERT( widthSample.getScope() == kVertexScope ); IFloatArrayProperty knotsProp = curves.getKnotsProperty(); TESTING_ASSERT( knotsProp.getNumSamples() == 2 ); ArraySampleKey keyA, keyB; knotsProp.getKey( keyA, 0 ); knotsProp.getKey( keyB, 1 ); TESTING_ASSERT( keyA == keyB ); }