本文整理汇总了C++中vsx_module_param_float::get方法的典型用法代码示例。如果您正苦于以下问题:C++ vsx_module_param_float::get方法的具体用法?C++ vsx_module_param_float::get怎么用?C++ vsx_module_param_float::get使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类vsx_module_param_float
的用法示例。
在下文中一共展示了vsx_module_param_float::get方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: output
void output(vsx_module_param_abs* param)
{
VSX_UNUSED(param);
particles = in_particlesystem->get_addr();
if (particles) {
if (prev_num_particles != particles->particles->size())
{
// remove all the old ones
/*for (unsigned long i = 0; i < gr.size(); i++)
{
delete gr[i];
}
gr.reset_used(0);*/
//printf("num particles: %d\n",particles->particles->size());
//printf("prev_num: %d\n",prev_num_particles);
for (unsigned long i = prev_num_particles; i < particles->particles->size(); ++i) {
//if (i == prev_num_particles) printf("allocating again\n");
gr[i] = new gravity_strip;
//printf("i: %d\n",i);
gr[i]->init();
gr[i]->init_strip();
}
prev_num_particles = particles->particles->size();
}
//printf("done alloc %d\n",particles->particles->size());
for (unsigned long i = 0; i < particles->particles->size(); ++i) {
//gr[i].length = 0.0f;
gr[i]->width = ribbon_width->get();
//gr[i].masses[1].mass = gr[i].masses[0].mass + ribbon_width->get();
gr[i]->length = length->get();
gr[i]->friction = friction->get();
float tt = ((*particles->particles)[i].time/(*particles->particles)[i].lifetime);
if (tt < 0.0f) tt = 0.0f;
if (tt > 1.0f) tt = 1.0f;
gr[i]->color0[0] = color0->get(0)*tt;
gr[i]->color0[1] = color0->get(1)*tt;
gr[i]->color0[2] = color0->get(2)*tt;
gr[i]->color0[3] = color0->get(3)*tt;
gr[i]->color1[0] = color1->get(0);
gr[i]->color1[1] = color1->get(1);
gr[i]->color1[2] = color1->get(2);
gr[i]->step_freq = 10.0f * step_length->get();
//if (last_update != engine->vtime) {
gr[i]->update(engine->dtime, (*(particles->particles))[i].pos.x, (*(particles->particles))[i].pos.y, (*(particles->particles))[i].pos.z);
//last_upd ate = engine->vtime;
//}
//printf("%f, %f, %f\n", (*particles->particles)[i].pos.x, (*particles->particles)[i].pos.y, (*particles->particles)[i].pos.z);
gr[i]->render();
// printf("%d %d;;; %d\n",__LINE__,i, particles->particles->size());
// add the delta-time to the time of the particle
/*(*particles->particles)[i].pos.x += px*engine->dtime;
(*particles->particles)[i].pos.y += py*engine->dtime;
(*particles->particles)[i].pos.z += pz*engine->dtime;*/
}
//printf("done drawing\n");
}
render_result->set(1);
}
示例2: setup_font
void setup_font()
{
if
(
(cur_font != font_in->get()) ||
(cur_render_type !=render_type->get()) ||
(cur_glyph_size != glyph_size->get())
)
{
vsx::file *fp;
if ((fp = engine_state->filesystem->f_open(font_in->get().c_str())) == NULL)
{
printf("font not found: %s\n",cur_font.c_str());
return;
}
cur_font = font_in->get();
cur_render_type = render_type->get();
cur_glyph_size = glyph_size->get();
if (ftfont) {
delete ftfont;
ftfont = 0;
}
if (ftfont2) {
delete ftfont2;
ftfont2 = 0;
}
unsigned long size = engine_state->filesystem->f_get_size(fp);
char* fdata = (char*)malloc(size);
unsigned long bread = engine_state->filesystem->f_read((void*)fdata, size, fp);
if (bread == size)
{
switch (cur_render_type)
{
case 0:
ftfont = new FTGLTextureFont((unsigned char*)fdata, size);
break;
case 1:
ftfont = new FTGLPolygonFont((unsigned char*)fdata, size);
ftfont2 = new FTGLOutlineFont((unsigned char*)fdata, size);
break;
}
ftfont->FaceSize((unsigned int)round(cur_glyph_size));
ftfont->CharMap(ft_encoding_unicode);
if (ftfont2) {
ftfont2->FaceSize((unsigned int)round(cur_glyph_size));
ftfont2->CharMap(ft_encoding_unicode);
}
loading_done = true;
}
engine_state->filesystem->f_close(fp);
}
}
示例3: run
void run() {
if (p_updates != param_updates) {
p_updates = param_updates;
if (directory_path->get() != "") {
if (old_path != directory_path->get()) {
old_path = directory_path->get();
std::list<vsx_string> files;
//vsxfst tt;
vsx_string engine_resources_base_path = engine->filesystem->get_base_path();
get_files_recursive(engine_resources_base_path + DIRECTORY_SEPARATOR + directory_path->get(), &files);
files_list.reset_used(0);
for (std::list<vsx_string>::iterator it = files.begin(); it != files.end(); ++it) {
if ((*it).find(".svn/") == -1)
{
files_list.push_back( (*it).substr(engine_resources_base_path.size()+1));
}
}
}
}
if (files_list.size()) {
filename_count->set((float)files_list.size());
unsigned long fid = (unsigned long)floor(file_id->get());
if (fid >= files_list.size()) fid = files_list.size()-1;
filename_result->set(files_list[fid]);
}
}
}
示例4: run
void vsx_module_texture_rotate::run() {
//printf("rotate_begin\n");
vsx_texture** texture_info_in = texture_info_param_in->get_addr();
//printf("validness: %d\n",texture_info_param_in->valid);
// if (texture_info_in->valid)
if (texture_info_in)
{
texture_out->valid = (*texture_info_in)->valid;
// if (texture_info_in->texture_info) {
texture_out->texture_info = (*texture_info_in)->texture_info;
// }
float x = rotation_axis->get(0);
float y = rotation_axis->get(1);
float z = rotation_axis->get(2);
float a = rotation_angle->get()*360;
vsx_transform_obj* prev_transform = (*texture_info_in)->get_transform();
transform.set_previous_transform(prev_transform);
transform.update(a, x, y, z);
// if (texture_out)
texture_out->set_transform(&transform);
((vsx_module_param_texture*)texture_result)->set(texture_out);
} else {
//printf("fooble\n");
texture_result->valid = false;
}
}
示例5: map
void map()
{
unsigned long new_pts = floor(abs(points->get()));
if(pts != new_pts)
{
unsigned int res = 0;
if(pts < new_pts || pts > 4 * new_pts) res = new_pts * 2;
pts = new_pts;
for(int i = 0; i < 7; i++)
{
map(i, res);
}
}
else
{
for(int i = 0; i < 7; i++)
{
if(seqs[i]->updates)
{
seqs[i]->updates = 0;
map(i);
}
}
}
}
示例6: output
void output(vsx_module_param_abs* param)
{
vsx_texture** t_a;
t_a = texture_a_in->get_addr();
vsx_texture** t_b;
t_b = texture_b_in->get_addr();
if (t_a && t_b) {
((vsx_module_param_texture*)texture_a_out)->set(*t_a);
((vsx_module_param_texture*)texture_b_out)->set(*t_b);
}
if (fade_pos_from_engine->get() != 0.0f)
{
fade_pos_out->set(fade_pos_in->get());
} else
{
fade_pos_out->set((float)fmod(engine->real_vtime, 1.0f));
}
}
示例7: output
void output(vsx_module_param_abs* param) {
gr.friction = friction->get();
gr.color0[0] = color0->get(0);
gr.color0[1] = color0->get(1);
gr.color0[2] = color0->get(2);
gr.color0[3] = color0->get(3);
gr.color1[0] = color1->get(0);
gr.color1[1] = color1->get(1);
gr.color1[2] = color1->get(2);
gr.step_freq = 10.0f * step_length->get();
if (last_updated != engine->vtime)
{
gr.update(engine->dtime, pos->get(0), pos->get(1), pos->get(2));
last_updated = engine->vtime;
}
gr.render();
render_result->set(1);
}
示例8: output
// this is run for each connection to this in-param.
void output(vsx_module_param_abs* param)
{
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
// translation
glTranslatef(position->get(0),position->get(1),position->get(2));
// rotation
glRotatef(
(float)angle->get()*360,
rotation_axis->get(0),
rotation_axis->get(1),
rotation_axis->get(2)
);
// scaling
glScalef(size->get(0), size->get(1), size->get(2));
// color
glColor4f(
color_rgb->get(0),
color_rgb->get(1),
color_rgb->get(2),
color_rgb->get(3)
);
glBegin(GL_QUADS);
glTexCoord2f(0.0f,0.0f);
glVertex3f(-1.0f, -1.0f, 0.0f);
glTexCoord2f(0.0f,1.0f);
glVertex3f(-1.0f, 1.0f, 0.0f);
glTexCoord2f(1.0f,1.0f);
glVertex3f( 1.0f, 1.0f, 0.0f);
glTexCoord2f(1.0f,0.0f);
glVertex3f( 1.0f, -1.0f, 0.0f);
glEnd();
if (border->get())
{
glEnable(GL_LINE_SMOOTH);
glLineWidth(1.5);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glBegin(GL_LINE_STRIP);
glColor3f(0, 0, 0);
glVertex3f(-2, -0.4f, 0);
glVertex3f(-2, -0.2f, 0);
glVertex3f( 2, -0.2f, 0);
glVertex3f( 2, -0.4f, 0);
glVertex3f(-2, -0.4f, 0);
glEnd();
}
glPopMatrix();
render_result->set(1);
loading_done = true;
}
示例9: run
void run()
{
if (drive->get() == 0)
current_frame = (int)(engine->vtime * get_frame_rate());
else
current_frame = (int)(time->get() * get_frame_rate());
if (current_frame != previous_frame) {
//printf("r-");
bitm.data=(long unsigned int*)get_frame_data(current_frame);
bitm.timestamp++;
previous_frame = current_frame;
// printf("t-");
}
if (bitm.valid && bitm_timestamp != bitm.timestamp)
{
bitm_timestamp = bitm.timestamp;
result1->set(bitm);
loading_done = true;
}
if (current_frame>num_frames) current_frame=0;
}
示例10: run
void run() {
vsx_mesh* p = mesh_in->get_addr();
if (!p)
{
mesh_empty.timestamp = (int)(engine->real_vtime*1000.0f);
mesh_out->set_p(mesh_empty);
prev_timestamp = 0xFFFFFFFF;
return;
}
debug = false;
bool newMeshLoaded = false;
//after a mesh change clone the mesh
if (p && (prev_timestamp != p->timestamp)) {
prev_timestamp = p->timestamp;
mesh.data->vertices.reset_used(0);
mesh.data->vertex_normals.reset_used(0);
mesh.data->vertex_tex_coords.reset_used(0);
mesh.data->vertex_colors.reset_used(0);
mesh.data->faces.reset_used(0);
for (unsigned int i = 0; i < p->data->vertices.size(); i++)
{
mesh.data->vertices[i] = p->data->vertices[i] + v;
verticesSpeed[i] = vsx_vector(0, 0, 0);
}
for (unsigned int i = 0; i < p->data->vertex_normals.size(); i++) mesh.data->vertex_normals[i] = p->data->vertex_normals[i];
for (unsigned int i = 0; i < p->data->vertex_tangents.size(); i++) mesh.data->vertex_tangents[i] = p->data->vertex_tangents[i];
for (unsigned int i = 0; i < p->data->vertex_tex_coords.size(); i++) mesh.data->vertex_tex_coords[i] = p->data->vertex_tex_coords[i];
for (unsigned int i = 0; i < p->data->vertex_colors.size(); i++) mesh.data->vertex_colors[i] = p->data->vertex_colors[i];
for (unsigned int i = 0; i < p->data->faces.size(); i++) mesh.data->faces[i] = p->data->faces[i];
//calc and store original face lengths
faceLengths.reset_used();
vsx_vector normal;
vsx_vector len;
vsx_vector hypVec;
for (unsigned int i = 0; i < p->data->faces.size(); i++) {
vsx_face& f = mesh.data->faces[i];
vsx_vector& v0 = mesh.data->vertices[f.a];
vsx_vector& v1 = mesh.data->vertices[f.b];
vsx_vector& v2 = mesh.data->vertices[f.c];
//calc face area
normal.assign_face_normal(&v0, &v1, &v2);
float area = normal.length() / 2.0f;
faceAreas[i] = area;
//facelengths a, b, c stored in vector x, y, z
len.x = (v1 - v0).length();
len.y = (v2 - v1).length();
len.z = (v0 - v2).length();
faceLengths.push_back(len);
}
mesh.timestamp++;
param_updates = 0;
newMeshLoaded = true;
dtimeRest = 0.0f;
}
float stepSize = step_size->get();
//float stepsPerSecond = steps_per_second->get();
float gasExpansionFactor = gas_expansion_factor->get();
float gridStiffnessFactor = grid_stiffness_factor->get();
float dampingFactor = damping_factor->get();
float materialWeight = material_weight->get();
float lowerBoundary = lower_boundary->get();
//use engine->dtime; and dtimeRest
//to repeat the calculation several times ((dtime + rest) * stepsPerSecond)
//calculate volume
float volume = 0.0f;
vsx_face* face_p = mesh.data->faces.get_pointer();
vsx_vector* vertex_p = mesh.data->vertices.get_pointer();
vsx_vector* faces_length_p = faceLengths.get_pointer();
verticesSpeed.allocate(mesh.data->vertices.size());
vsx_vector* vertices_speed_p = verticesSpeed.get_pointer();
float onedivsix = (1.0f / 6.0f);
for(unsigned int i = 0; i < mesh.data->faces.size(); i++) {
vsx_face& f = face_p[i];//mesh.data->faces[i];
vsx_vector& v0 = vertex_p[f.a];
vsx_vector& v2 = vertex_p[f.b];
vsx_vector& v1 = vertex_p[f.c];
volume += (v0.x * (v1.y - v2.y) +
v1.x * (v2.y - v0.y) +
v2.x * (v0.y - v1.y)) * (v0.z + v1.z + v2.z) * onedivsix;
}
//default gas_amount to volume of a new mesh i.e. no pressure
if(newMeshLoaded) {
gas_amount->set(volume);
//.........这里部分代码省略.........
示例11: output
void output(vsx_module_param_abs* param)
{
VSX_UNUSED(param);
if (text_in->updates)
{
if (process_lines())
text_in->updates = 0;
}
if (text_alpha->get() <= 0)
return;
if (!ftfont)
{
user_message = "module||error loading font "+cur_font;
return;
}
if (text_in->get() == "_")
return;
float obj_size = size->get();
gl_state->matrix_mode (VSX_GL_MODELVIEW_MATRIX );
gl_state->matrix_push();
gl_state->matrix_rotate_f( (float)angle->get()*360, rotation_axis->get(0), rotation_axis->get(1), rotation_axis->get(2) );
if (obj_size < 0)
obj_size = 0;
gl_state->matrix_scale_f( obj_size*0.8*0.01, obj_size*0.01, obj_size*0.01 );
int l_align = align->get();
float l_leading = leading->get();
float ypos = 0;
if (cur_render_type == 0)
glEnable(GL_TEXTURE_2D);
glColor4f(red->get(),green->get(),blue->get(),text_alpha->get());
for (unsigned long i = 0; i < lines.size(); ++i)
{
float ll = limit_line->get();
if (ll != -1.0f)
{
if (trunc(ll) != i) continue;
}
gl_state->matrix_push();
if (l_align == 0)
{
gl_state->matrix_translate_f( 0, ypos, 0 );
} else
if (l_align == 1)
{
gl_state->matrix_translate_f( -lines[i].size_x*0.5f,ypos,0 );
}
if (l_align == 2)
{
gl_state->matrix_translate_f( -lines[i].size_x,ypos,0 );
}
if (cur_render_type == 1)
{
if (outline_alpha->get() > 0.0f && ftfont2) {
float pre_linew;
pre_linew = gl_state->line_width_get();
gl_state->line_width_set( outline_thickness->get() );
glColor4f(outline_color->get(0),outline_color->get(1),outline_color->get(2),outline_alpha->get()*outline_color->get(3));
ftfont2->Render(lines[i].string.c_str());
gl_state->line_width_set( pre_linew );
}
glColor4f(red->get(),green->get(),blue->get(),text_alpha->get());
}
ftfont->Render(lines[i].string.c_str());
gl_state->matrix_pop();
ypos += l_leading;
}
if (cur_render_type == 0)
glDisable(GL_TEXTURE_2D);
gl_state->matrix_pop();
render_result->set(1);
loading_done = true;
}