1 #include <../../nrnconf.h> 48 if (ho && ho->ctemplate->steer &&
ifarg(1)) {
113 nrn_point_prop_ = pnt->
prop;
115 nrn_point_prop_ = (
Prop*)0;
117 nrn_pnt_sec_for_need_ =
sec;
118 if (x == 0. || x == 1.) {
123 nrn_pnt_sec_for_need_ = (Section*)0;
125 nrn_point_prop_ = (
Prop*)0;
148 nrn_point_prop_ = (
Prop*)0;
166 if (oldnode)
for (p = oldnode->
prop; p; p = pn) {
170 if (oldsec == pnt->
sec) {
171 if (oldnode == node) {
177 printf(
"relocating a %s to %s(%d)\n",
193 *px =
chkarg(iarg, 0., 1.);
199 (*nrnpy_o2loc_p_)(
o, psec, px);
209 *px =
chkarg(iarg, 0., 1.);
215 (*nrnpy_o2loc2_p_)(
o, psec, px);
231 hoc_execerror(
"ARTIFICIAL_CELLs are not located in a section", (
char*)0);
249 hoc_execerror(
"point process not located in a section", (
char*)0);
252 hoc_execerror(
"ARTIFICIAL_CELLs are not located in a section", (
char*)0);
263 return (pnt->
sec != 0);
272 hoc_warning(
"point process not located in a section", (
char*)0);
276 hoc_execerror(
"point process not located in a section", (
char*)0);
347 }
else for (; p1; p1 = p1->
next) {
373 pnt->
sec = (Section *)0;
408 return ob->ctemplate->is_point_ != 0;
void nrn_loc_point_process(int pointtype, Point_process *pnt, Section *sec, Node *node)
double * point_process_pointer(Point_process *pnt, Symbol *sym, int index)
void nrn_relocate_old_points(Section *oldsec, Node *oldnode, Section *sec, Node *node)
void hoc_obj_notify(Object *ob)
void nrn_prop_data_free(int type, double *pd)
Prop * prop_alloc_disallow(Prop **pp, short type, Node *nd)
void * create_point_process(int pointtype, Object *ho)
short * nrn_is_artificial_
void hoc_template_notify(Object *ob, int message)
int hoc_is_double_arg(int narg)
double nrn_arc_position(Section *sec, Node *node)
Object * hoc_new_opoint(int)
int is_point_process(Object *ob)
void notify_freed_val_array(double *p, size_t size)
Object * nrn_new_pointprocess(Symbol *sym)
Object * hoc_new_object(Symbol *, void *)
static double ** cppp_pointer
Section * nrn_pnt_sec_for_need_
void clear_point_process_struct(Prop *p)
void hoc_level_pushsec(Section *sec)
void(* nrnpy_o2loc_p_)(Object *, Section **, double *)
void nrn_sec_ref(Section **, Section *)
void hoc_obj_unref(Object *obj)
void(* nrnpy_o2loc2_p_)(Object *, Section **, double *)
void nrn_prop_datum_free(int type, Datum *ppd)
const char * secname(Section *sec)
void hoc_warning(const char *, const char *)
void hoc_execerror(const char *, const char *)
void nrn_seg_or_x_arg2(int iarg, Section **psec, double *px)
char * emalloc(unsigned n)
Symlist * hoc_built_in_symlist
Prop * prop_alloc(Prop **, int, Node *)
double has_loc_point(void *v)
void nrn_seg_or_x_arg(int iarg, Section **psec, double *px)
double loc_point_process(int, void *)
struct Symbol::@52::@53 rng
static void create_artcell_prop(Point_process *pnt, short type)
void steer_point_process(void *v)
void connect_point_process_pointer(void)
void hoc_push_frame(Symbol *, int)
Symbol * hoc_table_lookup(const char *, Symlist *)
static int cppp_semaphore
void hoc_pushpx(double *d)
void destroy_point_process(void *v)
double get_loc_point_process(void *v)
static Node * node(Object *)
void section_unref(Section *)
Object ** hoc_objgetarg(int)
Section * chk_access(void)
int hoc_araypt(Symbol *, int)
Node * node_exact(Section *sec, double x)
double chkarg(int, double low, double high)
static void free_one_point(Point_process *pnt)