OverviewFilesCommitsIssuesDocsReleasesPeers

proc-nodes / src / nodes / point_nodes.h

62 lines · c ref:
#ifndef PROC_NODES_POINT_NODES_H
#define PROC_NODES_POINT_NODES_H

#include "../graph/proc_node.h"

namespace godot {

// Create N points at origin (or random positions)
class PointsNode : public ProcNode {
	GDCLASS(PointsNode, ProcNode);

protected:
	static void _bind_methods();

public:
	StringName get_node_type() const override { return "Points"; }
	String get_node_title() const override { return "Points"; }
	String get_node_category() const override { return "Point"; }

	void execute(ProcEvalContext &p_ctx, int p_node_idx) override;

	PointsNode();
};

// Convert ProcPointCloud -> ProcMesh (each point becomes a vertex)
class PointsToVerticesNode : public ProcNode {
	GDCLASS(PointsToVerticesNode, ProcNode);

protected:
	static void _bind_methods();

public:
	StringName get_node_type() const override { return "PointsToVertices"; }
	String get_node_title() const override { return "Points to Vertices"; }
	String get_node_category() const override { return "Point"; }

	void execute(ProcEvalContext &p_ctx, int p_node_idx) override;

	PointsToVerticesNode();
};

// Distribute random points on mesh faces
class DistributePointsOnFacesNode : public ProcNode {
	GDCLASS(DistributePointsOnFacesNode, ProcNode);

protected:
	static void _bind_methods();

public:
	StringName get_node_type() const override { return "DistributePointsOnFaces"; }
	String get_node_title() const override { return "Distribute Points on Faces"; }
	String get_node_category() const override { return "Point"; }

	void execute(ProcEvalContext &p_ctx, int p_node_idx) override;

	DistributePointsOnFacesNode();
};

} // namespace godot

#endif // PROC_NODES_POINT_NODES_H