 __device__ void getSamplePosNormalAreaNotSupported(
 	aten::hitable::SamplePosNormalPdfResult* result,
 	Context* ctxt, 
-	aten::ShapeParameter* shape,
+	const aten::ShapeParameter* shape,
 	aten::sampler* smpl)
 {
 	printf("Sample PosNormalArea Not Supported[%d]\n", shape->type);

__device__ void getTriangleSamplePosNormalArea(
	aten::hitable::SamplePosNormalPdfResult* result,
	Context* ctxt, 
	aten::ShapeParameter* shape,
	aten::sampler* sampler)
{
	int r = sampler->nextSample();

	aten::LightSampleResult*, Context*, const aten::LightParameter*, const aten::vec3&, aten::sampler*);

typedef void(*FuncGetSamplePosNormalArea)(
	aten::hitable::SamplePosNormalPdfResult*, Context*, const aten::ShapeParameter*, aten::sampler*);

__device__ void getSphereSamplePosNormalArea(
	aten::hitable::SamplePosNormalPdfResult* result,
	Context* ctxt, 
	const aten::ShapeParameter* shape,
	aten::sampler* smpl)
{
	AT_NAME::sphere::getSamplePosNormalArea(result, shape, smpl);
