#include #include #include using std::cout; #include "RslPlugin.h" #ifdef __cplusplus extern "C" { #endif RtPointer ConvertParameters(RtString params) { RtFloat *data; data = (RtFloat *)malloc(sizeof(RtFloat)); *data = atof(params); return (RtPointer)data; } RtVoid Subdivide(RtPointer data, RtFloat detail) { RtFloat *seed = (RtFloat *)data; int numOfDots = 10; float radious = 4; float dotScale = 1; RtToken RI_P = RiDeclare("P","point"); RtFloat pointPosition[3]; RtToken width = RiDeclare("constantwidth","uniform float"); RtFloat w[1] = {dotScale}; srand((int)*seed); for(int n = 0; n < numOfDots ; n++){ pointPosition[0] = (((rand()%1000)*0.001)-0.5)*radious; pointPosition[1] = (((rand()%1000)*0.001)-0.5)*radious; pointPosition[2] = (((rand()%1000)*0.001)-0.5)*radious; RiPoints(1,RI_P,(RtPointer)pointPosition,width,(RtFloat*)&w,RI_NULL); } } RtVoid Free(RtPointer data) { free(data); } #ifdef __cplusplus } #endif