package SPVM::Point3D; 1; =head1 Name SPVM::Point3D - Point 3D =head1 Usage use Point3D; my $point = Point3D->new; my $point = Point3D->new(1, 2, 3); my $x = $point->x; my $y = $point->y; my $z = $point->z; my $point_string = $point->to_string; =head1 Description C<Point3D> is a class for a point 3D. =head1 Super Class L<Point|SPVM::Point> is the super class of C<Point3D>. =head1 Fields C<Point3D> inherits the fields of L<Point|SPVM::Point/"Fields">. =head2 z has z : ro int; C<z>. =head1 Class Methods =head2 new C<static method new : L<Point3D|SPVM::Point3D> ($x : int = 0, $y : int = 0, $z : int = 0);> Creates a new C<Point3D> object with $x, $y, $z. =head1 Instance Methods C<Point3D> inherits the instance methods of L<Point|SPVM::Point/"Instance Methods">. =head2 init protected method init : Point3D ($x : int = 0, $y : int = 0, $z : int = 0) Initializes L</"x">, L</"y">, and L</"z">. =head2 clear C<method clear : void ();> Sets L<x|SPVM::Point/"x">, L<y|SPVM::Point/"y">, and L</"z"> to 0. =head2 clone C<method clone : L<Point3D|SPVM::Point3D> ();> Creates a new C<Point3D> object that clones myself. =head2 to_string C<method to_string : string ();> Stringifies C<Point3D> object as the following format. (1,2,3) =head2 eq C<method eq : int ($a : Point, $b : Point);> If $a is equal to $b, returns 1, otherwise returns 0. Implementation: If $a and $b is defined and L</"x"> and L</"y"> fields in $a are equals to L</"x"> and L</"y"> fields in $b, returns 1. If only $a is not defined, returns 0. If only $b is not defined, returns 0. If both $a and $b is not defined, returns 1. =head1 Copyright & License Copyright (c) 2023 Yuki Kimoto MIT License