Ejemplo n.º 1
0
bool PickingShaderForPointCloud::PrepareBinding(const Geometry &geometry,
        const RenderOption &option, const ViewControl &view,
        std::vector<Eigen::Vector3f> &points,
        std::vector<float> &indices)
{
    if (geometry.GetGeometryType() !=
            Geometry::GeometryType::PointCloud) {
        PrintShaderWarning("Rendering type is not PointCloud.");
        return false;
    }
    const PointCloud &pointcloud = (const PointCloud &)geometry;
    if (pointcloud.HasPoints() == false) {
        PrintShaderWarning("Binding failed with empty pointcloud.");
        return false;
    }
    points.resize(pointcloud.points_.size());
    indices.resize(pointcloud.points_.size());
    for (size_t i = 0; i < pointcloud.points_.size(); i++) {
        const auto &point = pointcloud.points_[i];
        points[i] = point.cast<float>();
        indices[i] = (float)i;
    }
    draw_arrays_mode_ = GL_POINTS;
    draw_arrays_size_ = GLsizei(points.size());
    return true;
}
Ejemplo n.º 2
0
/**
 * Get the type of primitives this geometry contains
 *
 * @method getGeometryType
 * @for Geometry
 * @return {integer} Type of primitives this geometry contains
 * @example
 *      // returns one of the following
 *      dali.GEOMETRY_POINTS
 *      dali.GEOMETRY_LINES
 *      dali.GEOMETRY_LINE_LOOP
 *      dali.GEOMETRY_LINE_STRIP
 *      dali.GEOMETRY_TRIANGLES
 *      dali.GEOMETRY_TRIANGLE_FAN
 *      dali.GEOMETRY_TRIANGLE_STRIP
 */
void GeometryApi::GetGeometryType( const v8::FunctionCallbackInfo< v8::Value >& args )
{
  v8::Isolate* isolate = args.GetIsolate();
  v8::HandleScope handleScope( isolate );

  Geometry geometry = GetGeometry( isolate, args );

  args.GetReturnValue().Set( v8::Integer::New( isolate, geometry.GetGeometryType() ) );
}
Ejemplo n.º 3
0
bool PickingShaderForPointCloud::PrepareRendering(const Geometry &geometry,
        const RenderOption &option, const ViewControl &view)
{
    if (geometry.GetGeometryType() !=
            Geometry::GeometryType::PointCloud) {
        PrintShaderWarning("Rendering type is not PointCloud.");
        return false;
    }
    glPointSize(GLfloat(option.point_size_));
    glEnable(GL_DEPTH_TEST);
    glDepthFunc(GL_LESS);
    return true;
}