File: RandomOrigin.h

package info (click to toggle)
darkradiant 3.9.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 41,080 kB
  • sloc: cpp: 264,743; ansic: 10,659; python: 1,852; xml: 1,650; sh: 92; makefile: 21
file content (30 lines) | stat: -rw-r--r-- 826 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#pragma once

#include "math/Vector3.h"

#include <cstdlib>
#include <string>

/**
 * Utility class containing a method to generate a random vector within a
 * certain distance of the world origin.
 */
class RandomOrigin
{
public:

    /**
     * Generate a random vector within <maxDist> of the world origin, returning
     * a string formatted correctly as an "origin" key.
     */
    static std::string generate(int maxDist)
    {
        // Generate three random numbers between 0 and maxDist
        float x = maxDist * (float(std::rand()) / float(RAND_MAX));
        float y = maxDist * (float(std::rand()) / float(RAND_MAX));
        float z = maxDist * (float(std::rand()) / float(RAND_MAX));

        // Construct a vector and return the formatted string
        return string::to_string(Vector3(x, y, z));
    }
};