code: public void load(InputStream inputStream)
  	{
  
  		try (BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)))
  		{
  			while ((currentLine = reader.readLine()) != null)
  			{
  				lineNumber++;
  				currentLine = currentLine.replaceAll("\\s+", " ").trim();
  				matcher = linePattern.matcher(currentLine);
  
  				if (matcher.matches())
  				{
  					String type = matcher.group("type");
  					String data = matcher.group("data");
  
  					switch (type)
  					{
  						case "v":
  							addVertex(data);
  							break;
  						case "vn":
  							addNormal(data);
  							break;
  						case "vt":
  							addUV(data);
  							break;
  						case "f":
  							addFace(data);
  							break;
  						case "g":
  						case "o":
  							addShape(data);
  							break;
  
  						default:
  							MalisisCore.log.debug("[ObjFileImporter] Skipped type {} at line {} : {}", type, lineNumber, currentLine);
  							break;
  					}
  				}
  				else
  				{
  					MalisisCore.log.debug("[ObjFileImporter] Skipped non-matching line {} : {}", lineNumber, currentLine);
  				}
  			}
  
  			addShape("");
  		}
  		catch (Exception e)
  		{
  			MalisisCore.log.error("[ObjFileImporter] An error happened while reading the file : {}", e);
  		}
  	}
docs: Loads the shapes from {@link InputStream}.
  
  @param inputStream the input stream