コード例 #1
0
 void MultiLayerMieApplied<FloatType>::ConvertToSP() {
   this->MarkUncalculated();
   if (target_width_.size() + coating_width_.size() == 0)
     return;  // Nothing to convert, we suppose that SP was set directly
   GenerateSizeParameter();
   GenerateIndex();
   if (this->size_param_.size() != this->refractive_index_.size())
     throw std::invalid_argument("Ivalid conversion of width to size parameter units!/n");
 }
コード例 #2
0
ファイル: mesh_ripple.cpp プロジェクト: wuyuehang/yuehan9
int main()
{
	start_time = clock();

	GlRunner *runner = new GlRunner(RenderCB);

	glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);

	VS = runner->BuildShaderProgram("shaders/mesh_ripple.vert", GL_VERTEX_SHADER);
	FS = runner->BuildShaderProgram("shaders/mesh_ripple.frag", GL_FRAGMENT_SHADER);
	GLuint PPO = runner->BuildProgramPipeline();
	glUseProgramStages(PPO, GL_VERTEX_SHADER_BIT, VS);
	glUseProgramStages(PPO, GL_FRAGMENT_SHADER_BIT, FS);

	GLfloat *pMesh = GenerateVertexMesh();
	//PrintVertexMesh(pMesh);

	GLuint VAO, VBO[2];
	glGenVertexArrays(1, &VAO);
	glGenBuffers(2, VBO);
	glBindVertexArray(VAO);

	glBindBuffer(GL_ARRAY_BUFFER, VBO[0]);
	glBufferData(GL_ARRAY_BUFFER, 2*sizeof(GLfloat)*xmesh*ymesh, pMesh, GL_STATIC_DRAW);

	glEnableVertexAttribArray(0);
	glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, 2*sizeof(GLfloat), 0);

	GLuint *pIndex = GenerateIndex();

	glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, VBO[1]);
	glBufferData(GL_ELEMENT_ARRAY_BUFFER, 2*sizeof(GLuint)*xmesh*(ymesh-1), pIndex, GL_STATIC_DRAW);

	glPointSize(4.0);

	/* setup matrixs */
	glm::mat4 model_mat = glm::scale(glm::vec3(3.0));
	glm::mat4 proj_mat = glm::perspective(glm::radians(75.0f), 1.0f, 0.01f, 100.0f);

	glm::vec3 camera_location(0, 2.5, 5);

	glm::mat4 view_mat = glm::lookAt(
			camera_location,
			glm::vec3(0, 0, 0),
			glm::vec3(0, 1, 0)
	);

	glm::mat4 mvp_mat = proj_mat * view_mat * model_mat;

	glProgramUniformMatrix4fv(VS, glGetUniformLocation(VS, "uMVP"), 1, GL_FALSE, &mvp_mat[0][0]);

	runner->OnRender();

	return 0;
}
コード例 #3
0
ファイル: CWorker.cpp プロジェクト: Nessphoro/KaggleNN
int main(int argc, char* argv[])
{
	if (argc < 2)
	{
		std::cout << "Usage cworker [command] [param1] [param2] ...." << std::endl;
		std::cout << "For a list of commands use the 'help' command" << std::endl;
		return 0;
	}
	switch (toCommand(std::string(argv[1])))
	{
	case help:
		std::cout << "Commands:" << std::endl;
		std::cout << "help \n\t Print this message" << std::endl;
		std::cout << "database [gamma] \n\t Generates a precomputed edges database with a specific gamma" << std::endl;
		std::cout << "index [gamma] \n\t Generates a graph indexing file which is used to load the correct samples. Gamma can be adjusted, but must not be bigger than the one the database was generated with"<<std::endl;
		break;
	case database:
		if (argc == 3)
		{
			float gamma = atof(argv[2]);
			std::cout << "Generating database with gamma = " << gamma << std::endl;
			GenerateDatabase(gamma);
		}
		else
		{
			std::cout << "You must supply a gamma" << std::endl;
		}
		break;
	case index:
		if (argc == 3)
		{
			float gamma = atof(argv[2]);
			std::cout << "Generating index with gamma = " << gamma << std::endl;
			GenerateIndex(gamma);
		}
		else
		{
			std::cout << "You must supply a gamma" << std::endl;
		}
		break;
		break;
	default:
		std::cout << "Not a valid command" << std::endl;
		break;
	}

}