コード例 #1
0
void bindLookup(const char *bindName)
{
	class_< Lookup<T,U>, boost::noncopyable>(bindName, no_init)
		.def(init<>())
		.def( "init", &initLookup<T,U>, ( arg_( "self" ), arg_( "func" ), arg_( "xMin" ) = 0, arg_( "xMax" )= 1, arg_( "numSamples" )=100 ) )
		.def("__call__", &Lookup<T,U>::operator() )
		.def("__call__", &vectorLookup<T,U> )
		;
}
コード例 #2
0
void bindDeepImageWriter()
{
	RunTimeTypedClass<DeepImageWriter>()
		.def( "writePixel", &DeepImageWriter::writePixel, ( arg_( "x" ), arg_( "y" ), arg_( "pixel" ) ) )
		.def( "create", &DeepImageWriter::create ).staticmethod( "create" )
		.def( "supportedExtensions", ( list(*)( ) )&supportedExtensions )
		.def( "supportedExtensions", ( list(*)( TypeId ) )&supportedExtensions )
		.staticmethod( "supportedExtensions" )
	;
}
コード例 #3
0
void bindColorAlgo()
{
	object module( borrowed( PyImport_AddModule( "IECoreImage.ColorAlgo" ) ) );
	scope().attr( "ColorAlgo" ) = module;

	scope moduleScope( module );

	def( "transformImage", &ColorAlgo::transformImage, ( arg_( "image" ), arg_( "inputSpace" ), arg_( "outputSpace" ) ) );
	def( "transformChannel", &ColorAlgo::transformChannel, ( arg_( "channel" ), arg_( "inputSpace" ), arg_( "outputSpace" ) ) );
}
コード例 #4
0
void bindDeepImageReader()
{
	RunTimeTypedClass<DeepImageReader>()
		.def( "isComplete", &DeepImageReader::isComplete )
		.def( "channelNames", &channelNames )
		.def( "dataWindow", &DeepImageReader::dataWindow )
		.def( "displayWindow", &DeepImageReader::displayWindow )
		.def( "worldToCameraMatrix", &DeepImageReader::worldToCameraMatrix )
		.def( "worldToNDCMatrix", &DeepImageReader::worldToNDCMatrix )
		.def( "readPixel", &DeepImageReader::readPixel, ( arg_( "x" ), arg_( "y" ) ) )
	;
}
コード例 #5
0
	void bindMeshPrimitive()
	{
		RunTimeTypedClass<MeshPrimitive>()
			.def( init<>() )
			.def( init<IntVectorDataPtr, IntVectorDataPtr, optional<const std::string &, V3fVectorDataPtr> >() )
			.def( "numFaces", &MeshPrimitive::numFaces )
			/// \todo I'd rather see these bound as functions rather than properties so they match the C++ interface.
			/// I think this is particularly important for verticesPerFace and vertexIds as it's pretty unintuitive that a property
			/// should return a copy. This is something we need to be more consistent about throughout cortex.
			.add_property( "verticesPerFace", &verticesPerFace, "A copy of the mesh's list of vertices per face." )
			.add_property( "vertexIds", &vertexIds, "A copy of the mesh's list of vertex ids." )
			.add_property( "interpolation", make_function( &MeshPrimitive::interpolation, return_value_policy<copy_const_reference>() ), &MeshPrimitive::setInterpolation )
			.def( "setTopology", &MeshPrimitive::setTopology )
			.def( "createBox", &MeshPrimitive::createBox, ( arg_( "bounds" ) ) ).staticmethod( "createBox" )
			.def( "createPlane", &MeshPrimitive::createPlane, ( arg_( "bounds" ), arg_( "divisions" ) = Imath::V2i( 1 ) ) ).staticmethod( "createPlane" )
			.def( "createSphere", &MeshPrimitive::createSphere, ( arg_( "radius" ), arg_( "zMin" ) = -1.0f, arg_( "zMax" ) = 1.0f, arg_( "thetaMax" ) = 360.0f, arg_( "divisions" ) = Imath::V2i( 20, 40 ) ) ).staticmethod( "createSphere" )
		;
	}
コード例 #6
0
void bindCameraController()
{

    class_<CameraController, boost::noncopyable> cls( "CameraController", init<CameraPtr>() );
    scope s( cls );

    // define enums first, because they are needed for default argument definitions

    enum_<CameraController::ScreenWindowAdjustment>( "ScreenWindowAdjustment" )
    .value( "CropScreenWindow", CameraController::CropScreenWindow )
    .value( "ScaleScreenWindow", CameraController::ScaleScreenWindow )
    ;

    enum_<CameraController::MotionType>( "MotionType" )
    .value( "None", CameraController::None )
    .value( "Track", CameraController::Track )
    .value( "Tumble", CameraController::Tumble )
    .value( "Dolly", CameraController::Dolly )
    ;

    cls.def( "setCamera", &CameraController::setCamera )
    .def( "getCamera", (CameraPtr (CameraController::*)())&CameraController::getCamera )
    .def( "setCentreOfInterest", &CameraController::setCentreOfInterest )
    .def( "getCentreOfInterest", &CameraController::getCentreOfInterest )
    .def(
        "setResolution",
        (void (CameraController::*)( const Imath::V2i &, CameraController::ScreenWindowAdjustment ))&CameraController::setResolution,
        (
            arg_( "resolution" ),
            arg_( "adjustment" ) = CameraController::ScaleScreenWindow
        )
    )
    .def( "getResolution", &CameraController::getResolution, return_value_policy<copy_const_reference>() )
    .def( "frame", (void (CameraController::*)( const Imath::Box3f & ))&CameraController::frame )
    .def( "frame", (void (CameraController::*)( const Imath::Box3f &, const Imath::V3f &, const Imath::V3f & ))&CameraController::frame )
    .def( "unproject", &unproject )
    .def( "project", &CameraController::project )
    .def( "motionStart", &CameraController::motionStart )
    .def( "motionUpdate", &CameraController::motionUpdate )
    .def( "motionEnd", &CameraController::motionEnd )
    ;

}
コード例 #7
0
void bindCurvesAlgo()
{
	object curveAlgoModule( borrowed( PyImport_AddModule( "IECore.CurvesAlgo" ) ) );
	scope().attr( "CurvesAlgo" ) = curveAlgoModule;

	scope meshAlgoScope( curveAlgoModule );

	def( "resamplePrimitiveVariable", &CurvesAlgo::resamplePrimitiveVariable );
	def( "deleteCurves", &CurvesAlgo::deleteCurves, arg_( "invert" ) = false );
	def( "segment", ::segment, segmentOverLoads());
	def( "updateEndpointMultiplicity", &CurvesAlgo::updateEndpointMultiplicity );
}
コード例 #8
0
ファイル: message.cpp プロジェクト: andyzhshg/rippled
 explicit
 value_type(Arg1&& arg)
 {
     Arg1 arg_(std::move(arg));
 }
コード例 #9
0
void bindMeshAlgo()
{
	object meshAlgoModule( borrowed( PyImport_AddModule( "IECore.MeshAlgo" ) ) );
	scope().attr( "MeshAlgo" ) = meshAlgoModule;

	scope meshAlgoScope( meshAlgoModule );

	StdPairToTupleConverter<PrimitiveVariable, PrimitiveVariable>();

	def( "calculateTangents", &MeshAlgo::calculateTangents, ( arg_( "mesh" ), arg_( "uvSet" ) = "uv", arg_( "orthoTangents" ) = true, arg_( "position" ) = "P" ) );
	def( "calculateFaceArea", &MeshAlgo::calculateFaceArea, ( arg_( "mesh" ), arg_( "position" ) = "P" ) );
	def( "calculateFaceTextureArea", &MeshAlgo::calculateFaceTextureArea, ( arg_( "mesh" ), arg_( "uvSet" ) = "uv", arg_( "position" ) = "P" ) );
	def( "calculateDistortion", &MeshAlgo::calculateDistortion, ( arg_( "mesh" ), arg_( "uvSet" ) = "uv", arg_( "referencePosition" ) = "Pref", arg_( "position" ) = "P" ) );
	def( "resamplePrimitiveVariable", &MeshAlgo::resamplePrimitiveVariable );
	def( "deleteFaces", &MeshAlgo::deleteFaces, arg_( "invert" ) = false );
	def( "reverseWinding", &MeshAlgo::reverseWinding );
	def( "reorderVertices", &MeshAlgo::reorderVertices, ( arg_( "mesh" ), arg_( "id0" ), arg_( "id1" ), arg_( "id2" ) ) );
	def( "distributePoints", &MeshAlgo::distributePoints, ( arg_( "mesh" ), arg_( "density" ) = 100.0, arg_( "offset" ) = Imath::V2f( 0 ), arg_( "densityMask" ) = "density", arg_( "uvSet" ) = "uv", arg_( "position" ) = "P" ) );
	def( "segment", &::segment, segmentOverLoads() );
}