The //Raycast// node intersects rays from one geometry onto another. It computes hit points on the target mesh and returns normals, distances and any surface attribute specified by the user. A ray starts on each point of the input //Geometry//. Rays continue in the //Ray Direction// until they either hit the //Target Geometry// or reach the //Ray Length// limit. If the target is hit, the value of the //Is Hit// attribute in the output mesh will be true. //Hit Position//, //Hit Normal//, //Hit Distance// and //Hit Index// are the properties of the target mesh at the intersection point. In addition, a //Target Attribute// can be specified that is interpolated at the hit point and the result stored in //Hit Attribute//. Docs: D11620 Reviewed By: HooglyBoogly Differential Revision: https://developer.blender.org/D11619
		
			
				
	
	
		
			98 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			98 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
/*
 | 
						|
 * This program is free software; you can redistribute it and/or
 | 
						|
 * modify it under the terms of the GNU General Public License
 | 
						|
 * as published by the Free Software Foundation; either version 2
 | 
						|
 * of the License, or (at your option) any later version.
 | 
						|
 *
 | 
						|
 * This program is distributed in the hope that it will be useful,
 | 
						|
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
						|
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
						|
 * GNU General Public License for more details.
 | 
						|
 *
 | 
						|
 * You should have received a copy of the GNU General Public License
 | 
						|
 * along with this program; if not, write to the Free Software Foundation,
 | 
						|
 * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 | 
						|
 */
 | 
						|
 | 
						|
#pragma once
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
extern "C" {
 | 
						|
#endif
 | 
						|
 | 
						|
#include "BKE_node.h"
 | 
						|
 | 
						|
extern struct bNodeTreeType *ntreeType_Geometry;
 | 
						|
 | 
						|
void register_node_tree_type_geo(void);
 | 
						|
 | 
						|
void register_node_type_geo_group(void);
 | 
						|
void register_node_type_geo_custom_group(bNodeType *ntype);
 | 
						|
 | 
						|
void register_node_type_geo_align_rotation_to_vector(void);
 | 
						|
void register_node_type_geo_attribute_clamp(void);
 | 
						|
void register_node_type_geo_attribute_color_ramp(void);
 | 
						|
void register_node_type_geo_attribute_combine_xyz(void);
 | 
						|
void register_node_type_geo_attribute_compare(void);
 | 
						|
void register_node_type_geo_attribute_convert(void);
 | 
						|
void register_node_type_geo_attribute_curve_map(void);
 | 
						|
void register_node_type_geo_attribute_fill(void);
 | 
						|
void register_node_type_geo_attribute_map_range(void);
 | 
						|
void register_node_type_geo_attribute_math(void);
 | 
						|
void register_node_type_geo_attribute_mix(void);
 | 
						|
void register_node_type_geo_attribute_proximity(void);
 | 
						|
void register_node_type_geo_attribute_randomize(void);
 | 
						|
void register_node_type_geo_attribute_separate_xyz(void);
 | 
						|
void register_node_type_geo_attribute_transfer(void);
 | 
						|
void register_node_type_geo_attribute_vector_math(void);
 | 
						|
void register_node_type_geo_attribute_vector_rotate(void);
 | 
						|
void register_node_type_geo_attribute_remove(void);
 | 
						|
void register_node_type_geo_boolean(void);
 | 
						|
void register_node_type_geo_bounding_box(void);
 | 
						|
void register_node_type_geo_collection_info(void);
 | 
						|
void register_node_type_geo_convex_hull(void);
 | 
						|
void register_node_type_geo_curve_length(void);
 | 
						|
void register_node_type_geo_curve_to_mesh(void);
 | 
						|
void register_node_type_geo_curve_to_points(void);
 | 
						|
void register_node_type_geo_curve_resample(void);
 | 
						|
void register_node_type_geo_curve_reverse(void);
 | 
						|
void register_node_type_geo_curve_subdivide(void);
 | 
						|
void register_node_type_geo_delete_geometry(void);
 | 
						|
void register_node_type_geo_edge_split(void);
 | 
						|
void register_node_type_geo_input_material(void);
 | 
						|
void register_node_type_geo_is_viewport(void);
 | 
						|
void register_node_type_geo_join_geometry(void);
 | 
						|
void register_node_type_geo_material_assign(void);
 | 
						|
void register_node_type_geo_material_replace(void);
 | 
						|
void register_node_type_geo_mesh_primitive_circle(void);
 | 
						|
void register_node_type_geo_mesh_primitive_cone(void);
 | 
						|
void register_node_type_geo_mesh_primitive_cube(void);
 | 
						|
void register_node_type_geo_mesh_primitive_cylinder(void);
 | 
						|
void register_node_type_geo_mesh_primitive_grid(void);
 | 
						|
void register_node_type_geo_mesh_primitive_ico_sphere(void);
 | 
						|
void register_node_type_geo_mesh_primitive_line(void);
 | 
						|
void register_node_type_geo_mesh_primitive_uv_sphere(void);
 | 
						|
void register_node_type_geo_mesh_to_curve(void);
 | 
						|
void register_node_type_geo_object_info(void);
 | 
						|
void register_node_type_geo_point_distribute(void);
 | 
						|
void register_node_type_geo_point_instance(void);
 | 
						|
void register_node_type_geo_point_rotate(void);
 | 
						|
void register_node_type_geo_point_scale(void);
 | 
						|
void register_node_type_geo_point_separate(void);
 | 
						|
void register_node_type_geo_point_translate(void);
 | 
						|
void register_node_type_geo_points_to_volume(void);
 | 
						|
void register_node_type_geo_raycast(void);
 | 
						|
void register_node_type_geo_sample_texture(void);
 | 
						|
void register_node_type_geo_select_by_material(void);
 | 
						|
void register_node_type_geo_separate_components(void);
 | 
						|
void register_node_type_geo_subdivide(void);
 | 
						|
void register_node_type_geo_subdivision_surface(void);
 | 
						|
void register_node_type_geo_switch(void);
 | 
						|
void register_node_type_geo_transform(void);
 | 
						|
void register_node_type_geo_triangulate(void);
 | 
						|
void register_node_type_geo_volume_to_mesh(void);
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
}
 | 
						|
#endif
 |