Handle<Value> Layer::New(mapnik::layer & lay_ref) { HandleScope scope; Layer* l = new Layer(); // copy new mapnik::layer into the shared_ptr l->layer_ = layer_ptr(new mapnik::layer(lay_ref)); Handle<Value> ext = External::New(l); Handle<Object> obj = constructor->GetFunction()->NewInstance(1, &ext); return scope.Close(obj); }
LayerSharedPtr MLNetwork::add_layer(const std::string& name, bool directed) { LayerSharedPtr check = get_layer(name); if (check) return NULL; layer_id id = ++max_layer_id; LayerSharedPtr layer_ptr(new layer(id,name)); layers.insert(id,layer_ptr); cidx_layer_by_name[name] = layer_ptr; for (LayerSharedPtr layer : get_layers()) { sidx_edges_by_layer_pair[layer->id][layer_ptr->id]; // initialize an empty map } set_directed(layer_ptr,layer_ptr,directed); return layer_ptr; }